一、红外避障传感器简介

红外避障是避障传感器的一种,(其他避障传感器有超声波传感器、激光避障传感器等),具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(信号输出接口输出低电平信号,可通过电位器旋钮调节检测距离。
二、传感器规格参数:
1.工作电压:DC 3.3V-5V
2.工作电流:≥20mA
3.工作温度:-10℃—+50℃
4.检测距离:2-30cm
5.输出信号:有障碍物或反射到地面输出低电平,无障碍物高电平
6.调节方式:多圈电阻式调节
7.有效角度:35°
三、连接方法

将VCC和GND连接在开发板对应的引脚上(此处选择普中STM32F103开发板),信号输出线接在PD1xz.net上
四、代码
老师给的代码是直接对寄存器操作,于是自己改写直接用库函数去操作,方便移植。
在infrared.h 文件中,我们先进行宏定义,方便移植
#define INFRARED_STATE() GPIO_ReadInputDataBit(infrared_PORT,infrared_PIN)//读红外的状态
#define infrared_PORT GPIOD
#define infrared_PIN GPIO_Pin_1
#define infrared_RCC RCC_APB2Periph_GPIOD
#define INFRARED_STATE() GPIO_ReadInputDataBit(infrared_PORT,infrared_PIN)//读红外的状态
定义完了之后,再对infrared.c文件中的PC4接收引脚进行初始化
//对红外避障的端口进行初始化
void infrared_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
RCC_APB2PeriphClockCmd(infrared_RCC,ENABLE);
GPIO_InitStructure.GPIO_Pin=infrared_PIN; //选择你要设置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //设置浮空输入
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
GPIO_Init(infrared_PORT,&GPIO_InitStructure); /* 初始化GPIO */
}
TIP:输入方式选浮空输入
最后,在main.c函数里面进行情况选择
int main()
{
LED_Init();
infrared_INIT();
while(1)
{
if(INFRARED_STATE()==0) //返回低电平,说明有障碍物
{
LED2=0;
printf("前方有障碍物!\r\n");
}
else //返回高电平,说明没有障碍物
{
LED2=1;
printf("前方没有障碍物!\r\n");
}
}
}
版权声明:本文为m0_46573394原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。