STM32 红外遥控 正点原子代码 几行看不懂求解释

STM32 红外遥控 正点原子代码 几行看不懂求解释,第1张

哈哈,我来给你解释下吧!还有一个地方也对RmtSta变量的低四位进行来了 *** 作,

else if(Dval>2200&&Dval<2600)

RmtCnt++ //

RmtSta&=0XF0

接收地址码和数据码的时候,都清空了计数器TIM_SetCounter(TIM1,0),且都不会超过10ms;当接收完成之后,才会出现超过10ms的情况,这时才进入溢出中断。又不懂的可以追问!

常用的采用光探测物体的模块红外测距与激光测距,红外测距模块价格低廉,科技小制作中被广泛使用。

从小车底盘上可以发现,小车前部左右两侧各有一个红外避障探头(集成在底盘电路板上),用于探测左前或右前方在一定范围内是否有障碍物

红外避障探头具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过红外避障可调电阻调节检测距离,有效距离范围 2~30cm。

接线:

arduino A4 A5端口接底盘P4的OUT3 OUT4两个引脚,把arduino 5V与GND与底盘上的vcc GND相连。

测试探头:

将避障模块的红外探头对准墙壁或其他障碍物,距离为3 – 30cm厘米以内,此时指示灯亮,输出低电平。

通过读取arduino A4 A5电平状态,判断哪个方向有障碍物,以此改变小车的运行方向。

算法如下:

两个红外探头模块检测到物体(都是低电平)————停车

只有左探头模块检测到物体——右转

只有右探头模块检测到物体——左转

两个红外探头模块都没检测到物体(都是高电平)——前进

主程序代码如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11664643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存