文档详情

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表.pdf

发布:2024-09-16约4.11万字共28页下载文档
文本预览下载声明

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表--第1页

51单片机智能小车红外循迹

程序源代码、电路原理图、电路器件表

1

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表--第1页

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表--第2页

智能小车循迹实验除了智能小车本身外,还需要用到红外循迹模

块。智能小车红外循迹运动原理如下:红外线有反射特性,对不同颜

色物体反射量不一样。对白色物体,红外线反射量会多一点,红外收

发管电压输出会高一点;对黑色物体,红外线反射减少,红外收发管

电压输出也低。红外收发管输出电压信号输入到LM393与电位器电压

输出进行比较(电压大小可以通过调节电位器来调整)。这样,只要

将电位器调节到合适范围,就可以使红外收发管对着白色物体时

LM393输出0(低电平),对应发光二极管亮;红外收发管对着黑色

物体时LM324输出1(高电平),对应发光二极管灭。单片机根据LM393

输出电平状态(高电平或低电平),可判断智能小车是否沿着黑色轨

迹运动,如果智能小车沿着黑色轨迹运动,红外收发管接收白色(地

板)反光,LM393输出0(低电平);如果智能小车跑偏了,红外收

发管接收黑色(轨迹线)反光,LM393输出1(高电平)。单片机根

据这一信号判断智能小车运动状态,及时对智能小车前进方向作出调

整。

下面我们看下红外循迹相关的代码(完整的智能小车红外循迹实

验代码在本文后段有提供),如下:

while(1)

{//探测到黑线为1,没有探测到黑线为0

if((HW_LEFT_WAI==0)(HW_LEFT_NEI==0)(HW_RIGHT_NEI==0)(HW_RIGHT_WAI==0))

//如果左外,左内,右内,右外循迹传感器都没有感应到黑线

{pwmval_left_init=5;//左电机占空比调节,调节值在0到20之间

pwmval_right_init=5;//右电机占空比调节,调节值在0到20之间

CAR_FORWARD();}//智能小车前进

1

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表--第2页

51单片机智能小车红外循迹程序源代码、电路原理图和电路器件表--第3页

elseif((HW_LEFT_WAI==1)(HW_LEFT_NEI==1)(HW_RIGHT_NEI==0)(HW_RIGHT_WAI==0))

//如果左外,左内循迹传感器都感应到黑线;右内,右外循迹传感器没有感应到黑线

{pwmval_left_init=6;//左电机占空比调节,调节值在0到20之间

pwmval_right_init=6;//右电机占空比调节,调节值在0到20之间

CAR_LEFT();}//智能小车左转

elseif((HW_LEFT_WAI==1)(HW_LEFT_NEI==0)(HW_RIGHT_NEI==0)(HW_RIGHT_WAI==0))

//如果左外循迹传感器都感应到黑线;左内,右内,右外循迹传感器没有感应到黑线

{pwmval_left_init=6;//左电机占空比调节,调节值在0到20之间

pwmval_right_init=6;//右电机占空比调节,调节值在0到20之间

CAR_LEFT();}//智能小车左转

elseif((HW_LEFT_WAI==

显示全部
相似文档