实验六:51单片机平台-------红外避障实验
1. 实验准备
图1-1 51单片机主控板
图1-2 2路红外避障模块
2、实验目的
单片机上电之后,启动红外避障功能,当左边传感器检测到障碍物时小车向右转,当右边传感器检测到时小车向左转。
3、 实验原理
红外传感器具有一对红外发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物时,红外线红外线反射回来被接收管接收。它常用于安装在小车上,判断前方是否有障碍物。可通过电位器设置阀值。正前方有障碍时绿灯亮起,OUT引脚为低电平,反之为高电平。
红外传感器避障的基本原理是利用物体的反射性质,在一定范围内,如果没有障碍物,发射出去的红外线,因为传播的距离越来越远而逐渐减弱,最后消失。如果有障碍物红外线遇到障碍物,被反射到达传感器接收头。我们本次实验采用的是两路红外传感器分别连接在51单片机主控板上的P1.6,P1.4引脚上。我们通过检测两端口的电平来判断障碍物的情况,并做出相应的避障动作。
另外有关于PWM的原理以及定时器的理论知识请见实验二以及实验三。
4、实验步骤
4-1.看懂原理图
图4-1 单片机主控板电路图
图4-2 左右两路红外传感器接线头
4-2 理解原理图
由电路原理图可知左边的红外传感器接在主控板上的P1.6(IN7)口上,右边的则接在P1.4(IN5)口上。
模块状态指示灯示意图:
注:
1.进行实验时,Arduino功能跳线不需要插跳线帽,这是51单片机上面。
2.本次实验中我们可以调整红外避障模块上的电位器来设置红外避障的距离,以达到比较好的实验效果。
调节方法:调节该模块上的电位器【SW1】,使得红外发射管【LEAS1】红外接收管【RC1】距离障碍物小于10cm时,LED灯【L1】亮起;否则,LED灯【L1】灭。
4-3.程序核心代码如下:
1.基本变量以及引脚的定义:
2. 电机驱动函数:
3. 小车运动控制函数:
4. 产生PWM函数:
5. 主函数