光电反射传感器 红外对管模块

 

模块描述

可通过电位器旋钮调节检测距离,有效距离范围 2~30mm,检测角度35度,工作电压为 3.3V-5V。

该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,

可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。

部件

两个灯管:白色灯管为发射管,发射红外光;黑色灯管为接收管,接受反射回来的红外光

两个指示灯:电源指示灯、输出指示灯

模块接口说明

  • VCC 外接 3.3V-5V 电压(建议3.3V
  • GND 外接 GND
  • OUT 接开发板或单片机的GPIO口(输出0 或 1)

使用时

  • 发射管(白色灯管)发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管(黑色灯管)接受,经过比较器电路处理后,输出指示灯会亮起,同时输出数字信号(低电平信号)。

两个指示灯,三种状态

通电时,电源指示灯常亮,

  • 距离较远、未感应到障碍物时,输出指示灯灭,OUT引脚输出高电平
  • 距离近,感应到障碍物时,输出指示灯亮,OUT端口输出低电平
  • 距离近,遇到黑色障碍物时,黑色灯管接收不到,输出指示灯灭,OUT引脚输出高电平

检测距离调节

检测距离2~30mm,可以通过电位器进行调节,顺时针调节电位器,检测距离增加;逆时针调节电位器,检测距离减少。

STM32驱动代码参考

#include "infrared.h"

void INFRARED_Init(void)
{
	RCC->APB2ENR|=1<<3;           // 使能GPIOB时钟

	GPIOB->CRH &= 0XFFF00FFF;     //PB11、PB12 浮空输入
	GPIOB->CRH |= 0X00004400;
}

寻迹/循迹

循迹是指自制的小车能够沿黑线(黑色电胶布)构成的直线或曲线行驶(行驶在指定区域内)。

安装好红外对管的小车正常放在地板上(无黑线)时,输出指示灯应

  • 一只红外对管

将红外对管安装在小车右前方(左前方),使小车可以沿着右(左)侧黑线行驶。

思路:让小车一直右转,碰到黑线时左转。

//沿右侧黑线循迹伪代码
while(1)
{
    if(输出指示灯灭)  //碰到黑线
        小车左转;
    小车右转;
}
//沿左侧黑线循迹同理
  • 两只红外对管
    • 一条黑线

两个红外对管均放置在小车前方,两个黑管的间距理论上应略大于黑线宽度的根号2倍(直角)。(跨于黑线两侧)

while(1)
{
    if(左对管输出指示灯灭 && 右对管输出指示灯亮)    //左对管碰到黑线
        小车左转;
    if(左对管输出指示灯亮 && 右对管输出指示灯灭)
        小车右转;
}

 

### 红外对管传感器工作原理 红外对管传感器通过利用红外光的发射与接收来实现其功能。具体而言,该类传感器由一个红外发光二极管(IR LED)和一个光电晶体管组成[^1]。当红外LED发出光线并照射到目标物体表面时,部分光线会被反射回来,并被光电晶体管接收到。如果没有任何物体阻挡,则光电晶体管无法接收到足够的反射信号;反之,若有物体靠近并对准红外光束路径,则会产生较强的反射信号。 这种机制使得红外对管能够感知前方是否存在障碍物或者特定材质的目标对象[^2]。为了提高灵敏度以及抗干扰能力,在实际产品设计过程中通常会对输出信号加以处理,比如采用施密特触发器进行波形整形以获得更加稳定的高低电平变化响应。 ### 应用场景分析 由于具备简单易用、成本低廉等特点,红外对管广泛适用于多种自动化控制领域中的近距离探测需求: #### 1. **机器人避障** 在移动机器人开发项目里,安装多个方向分布的不同角度朝向的红外对管可以帮助设备识别周围环境状况从而避开碰撞风险。 #### 2. **循迹小车** 对于自动导航的小型车辆来说,地面铺设黑色线条作为引导标志是非常常见的一种方式。此时可以借助白色背景下的深色轨迹所造成的明显反差效果让上方固定的红外对射装置区分出当前行驶路线位置信息。 #### 3. **物体计数** 当流水线上连续不断地输送物品经过固定监测点位时,每有一个实体穿过成对排列好的红外收发端之间就会引起一次短暂遮断现象发生,进而触发相应的脉冲记录动作完成数量统计任务。 #### 4. **碎纸机纸张检测** 利用同样的光学特性判断是否有待加工材料送入机器内部等待进一步操作前准备阶段确认状态反馈给控制系统执行下一步指令流程管理作业效率提升显著。 ```python # 示例代码展示如何读取红外对管模块的状态 (假设GPIO接口已配置好) import RPi.GPIO as GPIO import time sensor_pin = 17 # 假设红外对管连接至树莓派的第17号引脚 def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(sensor_pin, GPIO.IN) def loop(): while True: if GPIO.input(sensor_pin) == GPIO.LOW: # 如果检测到低电平表示有物体接近 print("Object detected!") else: print("No object.") time.sleep(0.5) if __name__ == '__main__': try: setup() loop() except KeyboardInterrupt: pass finally: GPIO.cleanup() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值