激光传感器由发射端和接收端组成,通过检测激光束的通断实现精准探测。相较于红外传感器,具有抗干扰强、检测距离远(可达100米)等特点。

| 激光发射传感器 | 激光接收传感器 |
| VCC正极3.3-5V | VCC正极3.3-5V |
| GND负极 | GND负极 |
| S信号输入 (当传感器有高电平时,发射激光) | OUT信号输出 (当传感器检测到激光时,输出低电平) |

| 激光发射 | 激光接收 |
| VCC-5V | VCC-5V |
| GND-GND | GND-GND |
| S-5V | OUT-GPIO27(BCM) |

已知激光传感器探头如果有激光照射在上面,那么OUT引脚会输出低电平,我们只需要简单写个实时监测引脚是否有低电平输入就可以判断接收端是否有激光照射。
import RPi.GPIO as GPIO
import time
# 初始化设置
GPIO.setmode(GPIO.BCM) # 使用BCM引脚编号
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP) # 启用内部上拉电阻
try:
print("激光监测系统运行中(按 Ctrl+C 退出)")
while True:
if GPIO.input(27) == GPIO.LOW: # 检测低电平
print("\033[92m检测有激光\033[0m", end='\r') # 绿色文字
else:
print("\033[91m检测无激光\033[0m", end='\r') # 红色警告
time.sleep(0.1) # 降低CPU占用率
except KeyboardInterrupt:
print("\n程序已安全退出")
finally:
GPIO.cleanup() # 清理GPIO资源
运行结果,无激光照射在探头时显示:

有激光照射在探头时显示:
