模块描述
可通过电位器旋钮调节检测距离,有效距离范围 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(左对管输出指示灯亮 && 右对管输出指示灯灭)
小车右转;
}
模块描述
可通过电位器旋钮调节检测距离,有效距离范围 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(左对管输出指示灯亮 && 右对管输出指示灯灭)
小车右转;
}
举报