一起玩转树莓派(12)——U型光电传感器

简介: 一起玩转树莓派(12)——U型光电传感器

一、关于U型光电传感器


   U型光电传感器由于其有一个U型的凹槽而得名。其凹槽的一侧会发射红外光,凹槽的另一侧装有接收装置。通过对红外光的遮挡与导通,从而改变元件信号源引脚的电平高低。基于这种特性,我们很容易使用U型光电传感器来测量是否有物体遮挡光线。在测速领域,运用广泛。


   本实验使用的传感器模块如下图所示:


image.png


可以看到,此元件有3个引脚,GND引脚为接地引脚,VCC引脚为电源引脚,OUT引脚是输出引脚,当接收器能够接收到从发射源发出的光线时,输出引脚为低电平,当光线被阻断时,输出引脚为高电平。


二、计数器 OR 测速器


   U型光电传感器有着非常广泛的应用,试想一下,如果一个车间流水线在不停的生产商品,如何方便的对生产的商品数量进行自动计数?这时我们就可以将一个U型光电传感器安装到商品的传送带上,只要有商品从传送带上通过,即会挡住传感器发射源发出的红外光,从而触发电平的跳变,实现计数功能。除此之外,U型光电传感器也可以方便的实现测速,我们只要知道了物体的长度和物体通过U型传感器的时间,就可以使用公式**v = s / t**从而计算出物体运动的速度。下面我们就来编写代码实现这两个功能。


   首先,元件与树莓派连线如下:


U型光电传感器 树莓派

VCC 3.3V电源

GND GND

OUT GPIO17(BCM编码)

编写如下代码:


#coding:utf-8


import RPi.GPIO as GPIO

import time

# 采用物理编码

GPIO.setmode(GPIO.BOARD)

# BCM GPIO17的物理编码是11

out_pin = 11

# 0 计数模式 1 测速模式

MODE = 0

count = 0

# 测速模式下,需要初始化长度S 单位为毫米

S = 10

t1 = 0

t2 = 0


# 进行引脚的初始化,不被遮挡时为低电平,使用低电平的下拉电阻

GPIO.setup(out_pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)


# 定义回调函数

def switch_state(pin):

global count,t1,t2

# 如果是高电平

if GPIO.input(pin):

 print("物体遮挡")

 if MODE == 0:

  count += 1

 else:

  t1 = time.time()

else:

 print("物体遮挡消失")

 if MODE == 0:

  print('计数器-数量:%d'%(count))

 else:

  t2 = time.time()

  t = t2 - t1

  v = S / t

  print('测速器-速度%fmm/s'%(v))


GPIO.add_event_detect(out_pin, GPIO.BOTH, callback=switch_state)


while True:

pass

如上代码所示,我们可以设置MODE变量来让元件工作在计数模式下或者测速模式下。在树莓派上运行此代码,尝试下计数和测速的功能吧。

image.png

目录
相关文章
|
存储 Dragonfly 弹性计算
2023年阿里云服务器2核4G配置收费标准与活动价格参考,价格297.98元1年起
2核4G配置的云服务器通常是普通企业用户的首选配置,2023年新用户租用阿里云轻量应用服务器低至108元首年,2核4G配置目前活动价格仅需297.98元1年起,不过阿里云不同实例类型的2核4G云服务器配置,产品价格也各不相同。而在平时购买和活动期间买价格也是不一样的。本文主要为大家介绍目前阿里云服务器2核4G配置收费标准与活动价格,以供参考。
875 0
2023年阿里云服务器2核4G配置收费标准与活动价格参考,价格297.98元1年起
|
数据采集 机器学习/深度学习 算法
|
存储 JSON 物联网
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
本文我们将聚焦企业最普遍使用的 JSON 数据,分别介绍业界传统方案以及 Apache Doris 半结构化数据存储分析的三种方案,并通过图表直观展示这些方案的优势与不足。同时,结合具体应用场景,分享不同需求场景下的使用方式,帮助用户快速选择最合适的 JSON 数据存储及分析方案。
615 15
查询性能提升 10 倍、存储空间节省 65%,Apache Doris 半结构化数据分析方案及典型场景
|
SQL 数据库
SQL Server 还原 备份集中的数据库备份与现有的 'XXX' 数据库不同
SQL Server 还原 备份集中的数据库备份与现有的 'XXX' 数据库不同
1672 0
|
SQL 存储 关系型数据库
mysql数据库备份与恢复
mysql数据库备份与恢复
466 0
|
存储 资源调度 JavaScript
使用 Homebrew 安装 Node.js
使用 Homebrew 安装 Node.js
2030 0
|
缓存 NoSQL Java
springboot业务开发--springboot集成redis解决缓存雪崩穿透问题
该文介绍了缓存使用中可能出现的三个问题及解决方案:缓存穿透、缓存击穿和缓存雪崩。为防止缓存穿透,可校验请求数据并缓存空值;缓存击穿可采用限流、热点数据预加载或加锁策略;缓存雪崩则需避免同一时间大量缓存失效,可设置随机过期时间。文章还提及了Spring Boot中Redis缓存的配置,包括缓存null值、使用前缀和自定义过期时间,并提供了改造代码以实现缓存到期时间的个性化设置。
350 0
|
机器学习/深度学习 计算机视觉
深度学习原理篇 第四章:DEIT
简要介绍DEIT的原理和代码实现。
1008 0
|
Ubuntu
问题解决:Ubuntu安装ROS依赖出现ERROR: the following packages/stacks could not have their rosdep keys resolvedt
问题解决:Ubuntu安装ROS依赖出现ERROR: the following packages/stacks could not have their rosdep keys resolvedt
2685 0
|
传感器 自动驾驶 开发工具
Flir Blackfly S 工业相机:配置多个摄像头进行同步拍摄
Blackfly S 采用业内先进的冰块外形传感器。 具有强大功能,可以轻松生成所需的精确图像,并加速应用程序开发。 包括对图像捕获和相机预处理的自动和精确手动控制。 Blackfly S 提供GigE、USB3、套装和板级版本。 精确图像 索尼CMOS传感器中的选择包括:全局快门、偏振和高灵敏度BSI传感器。
Flir Blackfly S 工业相机:配置多个摄像头进行同步拍摄