动手学arduino智能车(4)红外避障小车

有一些基本物理知识的童鞋都知到,除了用超声波,还能用光线探测物体的距。

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

动手学arduino智能车(4)红外避障小车

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

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

动手学arduino智能车(4)红外避障小车

接线:

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

动手学arduino智能车(4)红外避障小车

测试探头:
将避障模块的红外探头对准墙壁或其他障碍物,距离为3 – 30cm厘米以内,此时指示灯亮,输出低电平。
通过读取arduino A4 A5电平状态,判断哪个方向有障碍物,以此改变小车的运行方向。
算法如下:

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

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

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

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

主程序代码如下:

动手学arduino智能车(4)红外避障小车

在“ 动手学arduino(3)两款智能灯”中有介绍分支结构,引用如下:

程序的分支结构:

分支结构就是做选择。例如:如果天气好,那么我就出门和朋友一起玩;如果下雨,那么我就在家里写作业。

下面两个命令都是分支命令。

动手学arduino智能车(4)红外避障小车

分支命令要与关系运算和逻辑运算配合使用:关系运算就是比较两个量的关系,有大于,小于,等于

逻辑运算是“与”“或”“非”的运算。

动手学arduino智能车(4)红外避障小车

主程序中的代码:

动手学arduino智能车(4)红外避障小车

表示:A4 A5都是高电平(两个红外探头没有探测到障碍物),

结果应该是执行:小车前进。

另一句代码:

动手学arduino智能车(4)红外避障小车

表示:A4是高电平(为1),并且A5低电平(A5低电平为0,取“非”后为1)

则执行右转向。

复合分支结果逻辑分析难度大,有编程基础的学生容易理解。

上传代码到小车,观察小车运行情况,不断调整代码,让小车正常运行。