☰
【CanMV K210】传感器实验 U 型光电传感器遮挡检测与 LED 提示
2026/9/28 7:59:11 网站建设 项目流程

在智能硬件项目中,光电传感器常用于判断“物体是否经过某个位置”。例如计数器、限位检测、物料经过检测、小车测速、闸机识别和自动分拣设备,背后的基础逻辑都离不开传感器状态读取。对于 Python 硬件编程而言,这类实验非常适合作为输入检测入门案例,因为程序不只是控制 LED 发光,还会根据外部环境变化做出判断。

本实验使用 CanMV K210 开发板读取 U 型光电传感器的信号状态。当传感器光路无遮挡时,绿色 LED 点亮;当光路被物体遮挡时,红色 LED 点亮,并统计遮挡发生次数。程序还加入了稳定采样和状态变化判断,只在遮挡状态发生变化时打印信息,避免控制台不断刷屏。

学习目标说明
理解光电检测认识 U 型光电传感器如何通过光路遮挡判断物体经过
掌握 GPIO 输入使用 GPIOHS 输入读取传感器输出电平
掌握 GPIO 输出使用普通 GPIO 控制红色 LED 和绿色 LED 显示状态
理解状态变化判断只在遮挡和恢复之间发生变化时更新输出,避免重复打印
建立检测类项目思路为计数器、限位检测、小车测速和自动分拣实验打基础

U 型光电传感器的特点是结构直观,一端发射光,一端接收光。当中间光路被物体挡住,输出电平会发生变化;开发板通过 GPIO 输入读取这个电平,再用代码控制不同颜色的 LED 显示状态。这个过程完整体现了“传感器采集状态,程序判断逻辑,硬件输出反馈”的基本控制链路。

文章目录

  • 理论基础
  • 硬件设施
  • 软件代码
  • 扩展应用
  • 总结

理论基础

U 型光电传感器可以理解成一个“光路开关”。无遮挡时,发射端的光能够被接收端检测到,传感器输出一种电平状态;有物体插入 U 型槽中时,光路被挡住,传感器输出另一种电平状态。开发板不需要知道物体的颜色、形状或材质,只需要读取传感器信号端的高低电平,就能判断是否发生遮挡。

本实验中,U 型光电传感器的信号端接入 IO6,红色 LED 接入 IO7,绿色 LED 接入 IO8。代码中约定BLOCKED_LEVEL = 0表示光路被遮挡,CLEAR_LEVEL = 1表示光路无遮挡。红色 LED 和绿色 LED 采用低电平点亮方式,因此LED_ON = 0,LED_OFF = 1。如果实际模块的电平逻辑与代码不同,只需要调整这些常量,主循环和函数结构不需要重写。

传感器输入实验和普通 LED 输出实验的区别在于,程序需要先读取外部环境,再根据读取结果决定输出状态。LED 实验通常是程序主动控制硬件;传感器实验则是外部环境先变化,程序再响应。这个思路更接近真实自动化项目,例如物体经过检测、设备到位判断、通道计数、机械限位和异常停留识别。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询