避障传感器模块(STM32F103C8T6)

本实验通过串口调试助手打印提示,并点亮LED灯。

一、概述

1.简介

该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理后,输出指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号)。

2.参数说明

  1. 当模块检测到前方有障碍物时,电路板上输出指示灯会被点亮,同时 OUT 端口持续 输出低电平信号,该模块检测距离 2-30cm,检测角度35 度,检测距离可以通过电位器进行调节,顺时针调电位器,检测距离会增加,逆时针调电位顺器,检测距离减少。
  2. 传感器主动红外反射探测,因此目标的反射率和形状是探测距离的关键。其中黑色 探测距离小,白色大,小面积物体距离小,大面积距离大。
  3. 传感器模块输出端口 OUT 可直接与单片机 IO 口连接即可,也可以直接驱动一个 5v 继电器。
  4. 比较器采用 LM393,工作稳定。
  5. 可采用 3-5v 直流电源对模块进行供电。当电源接通时,红色电源指示灯点亮。
  6. 不能够检测黑色物体

二、实验材料

  1. 最小系统STM32F10SC8T6。
  2. 避障传感器模块。
  3. 杜邦线若干。

三、硬件连接

模块引脚GPIO
VCCVCC
GNDGND
OUTPA1

注:0:检测到物体,1:没检测到物体

四、实现程序

  1. 初始化
void Infrared_Pin_Init(void)
{
	GPIO_InitTypeDef GPIO_InitStruct;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入
	GPIO_InitStruct.GPIO_Pin = GPIO_Pin_1;
	GPIO_Init(GPIOA,&GPIO_InitStruct);
}
  1. 数据读取
//0:检测到物体
int Infrared_Value(void) 
{
	uint8_t infrared_val = 0;
	
	infrared_val = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1);
	
	return infrared_val;
}
  1. 主函数
int main(void)
{
	Sys_Delay_Init();
	Infrared_Pin_Init();
	Usart1_Pin_Init(115200);
	printf("初始化成功\r\n");
	Led_Init();
	
	while(1)
	{
		if(!Infrared_Value())
		{
			printf("前方有物体\r\n");
			GPIO_SetBits(GPIOA,GPIO_Pin_0);//点亮led灯
		}
		else
		{
			GPIO_ResetBits(GPIOA,GPIO_Pin_0);//关闭led灯
		}
	}
}

五、实验效果在这里插入图片描述

完整程序及相关资料:
链接:https://pan.baidu.com/s/1WSxbwlZuh6QmhmGUC5YIsg
提取码:xlin

如有错误还望指出,谢谢!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员超庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值