驱动光电传感器实现计数

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

工作方式

这里用的这款是通过射出的激光,照射到目标物体,通过反射回来的光来判断物体是否有无。这种传感器可以调整激光到物体起作用的距离。

光电传感器图示

接线方式

一般这种光电传感器是工业用的,电源电压一般都是24V。而树莓派的GPIO是3.3V,不能直接接上去。我们再两者之间接个光耦,隔离这两个电源。光电传感器一共3条线(棕色+、蓝色-、黑色信号线)。通过5v电源输出后同个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():#获取gpio17引脚当前检测到的电平input_value = GPIO.input(17)#如果当前的电平为低if input_value == False:#防止电平抖动造成误判,延时10ms后再次检测time.sleep(0.01)#获取gpio17引脚当前检测到的电平input_value = GPIO.input(17)#如果当前的电平任然为低,此信号可以信任if input_value == False:#返回真,物体离开了传感器return Trueelse :#否者返回假,为电平抖动,信号不可信return Falseelse:#返回假,当前并无物体return False#定义检测有物体挡住的函数
def triggerdown():#获取gpio17引脚当前检测到的电平input_value = GPIO.input(17)#如果电平为高if input_value == True:#防止电平抖动造成误判,延时10ms后再次检测time.sleep(0.01)#获取gpio17引脚当前检测到的电平input_value = GPIO.input(17)#如果电平任然为高,可以信任此信号if input_value == True:#返回真,有物体挡住了传感器return Trueelse :#返回假,为电平抖动,信号不可信return Falseelse:#返回假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:#跳出此循环breakGPIO.cleanup();

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

  1. 树莓派4B ubuntu20.04 python点亮LED 教程

    关于如何在ubuntu上配置python控制gpio的环境参见这篇博客 https://blog.csdn.net/ourkix/article/details/113417800 关于GPIO引脚 ...

  2. 树莓派4B——Ubuntu20.04 mate

    树莓派4B--Ubuntu20.04 mate 安装操作系统 安装必要的库 安装软件 VNC和SSH 开机启动 问题 安装操作系统 1.从树莓派官网下载镜像烧写工具,点这里,如图选择对应系统地烧写工具 ...

  3. 树莓派4B ubuntu20.04 UART 多串口配置通信

    相比树莓派0.1.2 以及 3 的双串口 UART0(PL011)和 UART1(mini UART),树莓派 4 中新增了 4 个 PL011 串口共计有 6 个 UART,整理此笔记用作记录和配置 ...

  4. 树莓派4B开机自启动Python程序,发送WIFI-IP至指定邮箱

    树莓派4B开机自启动Python程序,发送WIFI-IP至指定邮箱 树莓派开机自启动Python并发送IP地址到指定邮箱 环境 用Python发送邮件 获取WIFI的IP地址 整合发送邮件和获取WIF ...

  5. Ubuntu20.04无线网卡驱动安装

    文章目录 一.未安装无线网卡驱动的Ubuntu20.04联网方式 二.Ubuntu20.04无线网卡驱动安装 UbuntuU盘启动盘安装好Ubuntu 20.04之后,发现没有无线网络,不过有线可以用 ...

  6. ubuntu20.04显卡驱动掉了之后重装出现的各种问题

    问题三:ubuntu20.04显卡驱动掉了之后重装出现各种问题: 问题描述: 装完驱动配置好环境隔了一段时间打开Ubuntu发现装好的驱动又掉了,nvidia-smi查找不到驱动.根据网友的经验应该是 ...

  7. Mobility Radeon HD 4530 @ubuntu20.04 显卡驱动不支持[GPU无法使用]

    Mobility Radeon HD 4530 @ubuntu20.04 显卡驱动不支持[GPU无法使用] 1. 源由 2. 显卡型号 3. 驱动安装 3.1 问题1:内核version.h文件缺失 ...

  8. ubuntu20.04+gpu驱动下载+cuda10.2+cudnn+pytorch深度学习搭建记录(一路爬坑的一天...)

    ubuntu20.04+gpu驱动下载+cuda10.2+cudnn+pytorch 深度学习环境搭建记录(一路爬坑的一天-) 1.gpu驱动下载 参考:https://blog.csdn.net/f ...

  9. 树莓派4 ubuntu20.04安装PyInstaller

    1.正常情况下,我们是通过pip3来安装PyInstaller,但是在树莓派的ubuntu20.04上安装时,会报错如下: In function 'strncpy',inlined from 'sp ...

最新文章

  1. ruby 工程的创建 使用JetBrains RubyMine建立rails 工程
  2. google nexus5 root 安装Xposed框架教程
  3. 关于sql中的with(nolock)
  4. 日本电影《摇摆》:男人之间的心灵碰撞
  5. python获取屏幕文字_详解:四种方法教你对Python获取屏幕截图(PyQt , pyautogui)...
  6. MongoDB 设置权限认证
  7. JAVA IO系列----ObjectInputStream和ObjectOutputStream类
  8. 建模股票价格数据并进行预测(统计信号模型):随机信号AR模型+Yule-Walker方程_Python...
  9. Elasticsearch--高级-分词 安装ik分词---全文检索引擎ElasticSearch工作笔记020
  10. c语言手机教程,【图片】【教程】手机c语言入门与手机c编程【mrp吧】_百度贴吧...
  11. 编程之美 1.4买书问题常数时间空间解法
  12. Nginx介绍及安装配置
  13. 大数据时代的小数字感:数据再有价值,别人听不懂照样没用
  14. 转码解密挖矿 显卡计算能力大对比
  15. 星座 member.php,php 通过生日获取对应的星座
  16. InnoDB 存储引擎详细解析
  17. 方便的U盘量产工具不刻盘装系统
  18. m1 Mac zshrc 环境变量
  19. 阿里云天池超级码力在线编程大赛初赛 第2场 ABCD(A.计算几何 判断点在三角形内 D.大施罗德数/超级卡特兰数)
  20. 《电子病历系统》管理员手册

热门文章

  1. springCloud Euraka知识讲解、问题解决方案、优化方案
  2. IDEA的下载和安装
  3. UBNT EdgeRouter-X对于某些网址ipv6下加载存在问题的解决方法
  4. 【项目实战】 改造原前端ViewUI框架,使其支持ElementUI 与 Avue
  5. Jpg图片怎么变成gif动图?教你快速三步在线做gif
  6. keil 5.37安装AC5编译器
  7. 详解哈希数据结构,手写哈希表
  8. 年轻人,我这里有一本防封号秘籍
  9. excel制作动态数据分析报表
  10. GE IFix OPC服务分析