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 2022-07-24 11:18  史久超  阅读(420)  评论(0编辑  收藏  举报
知识改变命运