资讯详情

树莓派4B ubuntu20.04 python驱动光电传感器实现计数 教程

光电传感器是将光信号转换为电信号的装置。其工作原理是基于光电效应。光电效应是指当光照射在某些物质上时,物质的电子吸收光子的能量,产生相应的电效应现象。光电效应根据光电效应现象分为外光电效应、内光电效应和光生伏特效三类。光电器件包括光电管、光电倍增管、光敏电阻、光敏二极管、光敏三极管、光电池等。分析了光电器件的性能和特性曲线。

这里使用的激光照射到目标物体,并通过反射的光来判断物体是否存在。该传感器可以调整激光与物体之间的距离。

光电传感器图

这种光电传感器一般用于工业,电源电压一般为24V。而树莓派的GPIO是3.3V,不能直接连接。我们之间有一个光耦合来隔离这两个电源。光电传感器有三条线(棕色) 、蓝色,黑色信号线)。v电源输出后,同2个500欧姆的电阻分压GPIO17。

当有物体遮挡光电传感器时,通过上述接线,gpio17接收高电平,否则接收低电平。我们可以根据这个信号进行计数。

import RPi.GPIO as GPIO import time  #设置警告信息不输出 GPIO.setwarnings(False) #设置gpio模式为bcm模式 GPIO.setmode(GPIO.BCM)  #设置GPIO17引脚为输入模式 GPIO.setup(17,GPIO.IN)   #定义检测有什么东西被阻挡,判断它是否离开了函数 def triggerup():  #获取gpio目前检测到17引脚的电平  input_value = GPIO.input(17)  #如果当前电平较低  if input_value == False:   #防止电平抖动造成误判,延时10ms后再次检测         time.sleep(0.01)   #获取gpio目前检测到17引脚的电平   input_value = GPIO.input(17)   #如果当前电平仍然很低,这个信号可以信任         if input_value == False:    #返回真实,物体离开传感器    return True   else :    #否则返回假期,为电平抖动,信号不可信    return False  else:   #返回假,目前还没有物体   return False  #定义检测物体阻挡的函数 def triggerdown():  #获取gpio目前检测到17引脚的电平  input_value = GPIO.input(17)  #如果电平为高  if input_value == True:   #防止电平抖动造成误判,延时10ms后再次检测   time.sleep(0.01)   #获取gpio目前检测到17引脚的电平   input_value = GPIO.input(17)   #如果电平仍然很高,你可以信任这个信号   if input_value == True:    #返回真,传感器被挡住了传感器    return True   else :    #返回假期,抖动电平,信号不可信    return False  else:   #返回假   return False  #计数变量 count = 0  #循环 while True:  #获取时,物体挡住传感器  input_value = triggerdown()  #如果input_value是true,传感器被挡住了传感器  if input_value == True:   #计数加一   count =1   #打印输入当前计数值   print("count:%d" % count)   #循环等待物体离开   while True:    #获取物体是否离开传感器    input_value = triggerup()    #如果input_value是true,物体离开了传感器    if input_value == True:     #跳出这个循环     break   GPIO.cleanup();

标签: 光电传感器挡住后不灭什么原因光电传感器lx11189ms1电压隔离传感器1472d光电传感器214111光电传感器4线的光电传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台