循迹模式——红外循迹模式使用介绍

红外循迹模块介绍

TCRT5000传感器的红外发射二极管不断发射红外线,当发射出的红外线没有被反射回来或被反射回来但强度不够大时,红外接收管一直处于关断状态,此时模块的输出端为高电平,指示二极管一直处于熄灭状态

被检测物体出现在检测范围内时,红外线被反射回来且强度足够大,红外接收管饱和,此时模块的输出端为低电平,指示二极管被点亮

总之一句话:没反射回来,D0输出高电平,灭灯

没反射——D0输出高电平——灭灯

反射——D0输出低电平——点亮

接线

1、VCC:接电源正极(3-5V)

2、GND:接电源负极

3、D0:TTL开关信号输出

4、A0:模拟信号输出(不同距离输出不同的电压,此脚一般可以不接)

循迹小车原理

黑色具有较强的吸收能力,当循迹模块发射的红外线照射到黑线时,红外线将会被黑线吸收,导致循迹模块上光敏三极管处于关闭状态,此时模块上一个LED熄灭。在没有检测到黑线时,模块上两个LED 常亮

所以普通的循迹跑道都是黑色的原因

也是一句话概括:感应到黑线,D0输出高电平,灭灯

循迹总结

1.左右循迹模块都照射到白色上——红外返回——都输出低电平——指示灯亮——直走

2.左循迹模块照射到黑色跑道上——左边红外被吸收不返回——左边输出高电平——指示灯灭——需要左转

3.右循迹模块照射到黑色跑道上——右边红外被吸收不返回——右边输出高电平——指示灯灭——需要右转

(上图小车反方向前进就是右转情况)

安装与接线

将两个红外发射头往下的循迹模块,分别装在小车车头的两边,可以用热熔胶固定好,VCC和GND都接到单片机的5V和GND上,左边的D0接到P2.7口,右边的D0接到P2.6口,当然接到其他引脚也是可以的,在程序中修改引脚号就行

程序

实现循迹功能还是比较简单的,所用的其他功能不多,就几个判断语句

程序文件:

1.main.c:主要是对两个红外循迹模块的输出引脚电平进行判断,接着调用电机驱动使小车左右转弯

2.Motor.c:小车前进、后退、左转、右转和停止的函数

3.Delay.c:延时函数

main.c:

whlie循环内不断判断左右传感器的信号引脚电平,分析当前状态,是前进还是转弯,后续可以将这些语句模块化,下次使用直接调用方法即可

/*循迹功能,增加引脚定义,然后判断两个传感器输出引脚的高低电平*///左右红外传感器的信号引脚sbit LeftSersor = P2^7;sbit RightSersor = P2^6;void main(){while(1){//两个都反射,都亮灯if(LeftSersor == 0 && RightSersor == 0){GoForward();}//左边反射,右边没反射,左亮,说明右边碰到黑线红外线被吸收,要右转if(LeftSersor == 0 && RightSersor == 1){GoRight();}//右边反射,左边没反射,右亮,说明左边碰到黑线红外线被吸收,要左转if(LeftSersor == 1 && RightSersor == 0){GoLeft();}//两个都不反射,都灭灯if(LeftSersor == 1 && RightSersor == 1){Stop();}}}