posts - 33,  comments - 1,  views - 48511
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

1.11.1. 介绍

光电开关(光电传感器)是光电接近开关的简称,它是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。物体不限于金属,所有能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。安防系统中常见的光电开关烟雾报警器,工业中经常用它来记数机械臂的运动次数。

如:

wps6 wps7

栅式光电开关 对射型光电开关

wps8

漫反射光电开关

在工业控制中,这类元件常用作限位开关、检测有无、记录次数等。

这类元件的特点是按电气要求供电后,输出引脚会根据被检测量输出高低电平。比如:栅式光电开关,上电后,输出引脚根据栅格内是否有遮挡物输出高、低电平;对射型光电开关在上电后,根据发射、接受之间是否有遮挡物输出高、低电平;漫反射光电开关上电后,根据被测位置是否有物体输出高、低电平。

类似的元件还有霍尔元件、接近开关、限位开关等,如下图所示:

wps9wps10wps11

1.11.2. 硬件电路

硬件接法,以欧姆龙EE-SX671为例:

wps12

接上电源后1-vcc/4-gnd,out脚根据栅格中是否有遮挡物输出高、低电平。

1.11.3. 程序设计

案例:触摸按钮动作时,切换板载led的状态(由点亮切换为熄灭或有熄灭切换为点亮)。

分析:根据光电开关的特性,软件控制上实际上是读取对应Pin的高、低电平,并根据高、低电平判断接入控制系统中,代码实现同机械按钮,如下:

复制代码
 1 from machine import Pin,TouchPad
 2 from time import sleep
 3 
 4 led = Pin(2,Pin.OUT)
 5 tp = TouchPad(Pin(14,Pin.IN))
 6 
 7 tp_valve = 700
 8 cnt = 0
 9 max_value = 10
10 valve = 5
11 
12 def button_deal():
13     if(led.value() > 0):
14         led.off()
15     else:
16         led.on()
17     print("valid btn")
18 
19 while True:
20     #按钮部分
21     if(tp.read()<tp_valve):
22         if(cnt < max_value):
23             cnt = cnt +1
24     else:
25         cnt = 0
26 
27     if(cnt==valve):
28         button_deal()
29     sleep(0.01)
复制代码

 

posted on   史久超  阅读(532)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
知识改变命运
点击右上角即可分享
微信分享提示