ArduinoUNO---8字循迹基于循迹功能的智能小车实例:器件介绍:工作电压:3.3~5V检测反应距离:1~55mm红外寻迹模块背面有可调电阻,通过调整电阻,可以调节寻迹模块的阈值,实现数字信号的输出。红外寻迹模块有两组发射管、接收管,有四个引脚:GND、VCC、S1、S2。S1为左侧发射、接收引脚,S2为左侧发射、接收引脚。红外寻迹模块是由红外发射管、红外接收管及整形放大电路组成的。其工作原理:利用红外线对颜色的反射率不一样,将反射信号的强弱转化为电压信号。红外发射管发射光线到路面,红外光遇到白色则被反射,接收管接收到反射光,经整形电路输出低电平;红外发射管发射光线到路面,红外光遇到黑线则被吸收,接收管没有接收到反射光,经整形电路输出高电平。流程图:程序运行:在小车的前侧安装两个红外寻迹模块,分别分别位于两侧。根据红外模块的返回值,来控制小车的状态,左右两侧红外寻迹模块的数字返回值分别为:leftValue和rightValue已搭建好的智能小车一辆所需器件:项目十二:自律型自动跟随小车VCC——红S2——黄Gnd——黑12接口:11接口:S1——黄程序运行:小车巡线状态状态1-直线:左边和右边的传感器同时在黑色线里;状态2-十字路口:左边和右边的传感器同时在黑色线里;if((leftValue==1)&&(rightValue==1)){a=0;b=0;forward();}//******前进******//voidforward(){motor2.run(2,IntSpeed);motor1.run(1,IntSpeed);}8二一程序运行:状态3-左转弯:左边的传感器在黑色线里,右边传感器没有在黑色里。elseif((leftValue==1)&&(rightValue==0)){b=1;turnLeft();}//******左转******//voidturnLeft(){motor1.run(2,0);motor1.run(1,IntSpeed+10);}8三程序运行:状态4-右转弯:右边的传感器在黑色线里,左边传感器没有在黑色里。elseif((leftValue==0)&&(rightValue==1)){a=1;turnRight();}//******右转******//voidturnRight(){motor1.run(2,IntSpeed+10);motor1.run(1,0);}8四程序运行:状态5-双偏:左边和右边的传感器都没有在黑色线里。elseif((leftValue==0)&&(rightValue==0)&&(a>b)){//双偏(没有黑线)rotateRight();//原地左旋找到循迹线}elseif((leftValue==0)&&(rightValue==0)&&(a