循迹电路
循迹电路由收发一体的红外收发管P1,P2;电位器R18,R29;发光二极管D6,D7和芯片LM324等组成。一共有两路,对应的红外电位器用于调节灵敏度。LM234用于信号的比较,并产生比较结果输出给单片机进行处理。
智能小车循迹运动的原理如下。红外光线具有反射特性,但对不同颜色的物体反射量是不一样的。对白色物体,红外光线的放射量就会多一点,红外收发管的电压输出就会高一点;而对黑色物体,红外反射量大量减少,红外收发管的电压输出也低。红外收发管的输出电压信号输入到LM324与电位器的电压输出进行比较(这个电压的大小可以通过调节电位器来调整)。这样,我们只要将电位器调节到合适的范围,就可以使红外收发管对着白色物体时LM324输出低电平,对应发光二极管亮;红外收发管对着黑色物体时LM324输出高电平,对应发光二极管灭。单片机根据LM324输出的电平状态,就能实时判断智能小车是否沿着黑色轨迹运动,如果智能小车是沿着黑色轨迹运动,红外收发管接收的是白色(地板)反光,LM324输出的是低电平;如果智能小车是跑偏了,红外收发管接收的是黑色(轨迹线)反光,LM324输出的是高电平。单片机根据这一信号判断智能小车的运动状态,及时对智能小车的前进方向作出调整。
循迹电路调节
电位器R18左红外信号强度调节---顺时钟调节电位器是增加灵敏度,反时钟调节电位器是减少灵敏度。没有接收到红外反射信号时,发光二极管D6不亮;接收到红外反射信号时,发光二极管D6亮。
电位器R29右红外信号强度调节---顺时钟调节电位器是增加灵敏度,反时钟调节电位器是减少灵敏度。没有接收到红外反射信号时,发光二极管D7不亮,接收到红外反射信号时,发光二极管D7亮。
调试注意事项:
调试时不要对着强光,建议在室内调试(最好和实验环境一致)。环境光线对红外线反射的检测有较大的影响,这是由红外线本身的特性决定的。调节电位器时,要缓慢,细致。调试时保持电池电量的稳定。
智能小车红外循迹运动程序源代码
//有信号为0 没有信号为1
if((left_led== 0) && (right_led == 0))
{forward();} //调用前进函数
elseif((left_led == 1) && (right_led == 1))
{forward();}
else
{
if((left_led == 1) && (right_led ==0)) //左边检测到黑线
{
delay(2,2);
if((left_led == 1) &&(right_led == 0))
{left_turn();} //调用小车左转函数
}
if((right_led == 1) && (left_led ==0)) //右边检测到黑线
{
delay(2,2);
if((right_led == 1) && (left_led ==0)) //右边检测到黑线
{right_turn();} //调用小车右转函数
}
}
当left_led= 0和right_led = 0,表明是由白色的物体(地面)反射红外线、黑色的轨迹线处于两个红外收发管的中间(智能小车没有跑偏),这时智能小车继续前行。
当left_led= 1和right_led = 0,表明左边红外收发管检测到黑线,右边红外收发管检测到白色的物体(地面)。这时智能小车是右偏了,程序就控制智能小车左转进行调节。
当right_led = 1和left_led = 0,表明右边红外收发管检测到黑线,左边红外收发管检测到白色的物体(地面)。这时智能小车是左偏了,程序就控制智能小车右转进行调节。