1.总体方案设计
本任务要求设计与制作一个基于单片机控制的简易自动循迹小车,小车以AT89C51为控制核心,用单片机产生PWM波,控制小车速度。利用红外光电传感器对路面黑色轨迹进行检测,并将路面检测信号反馈给单片机。单片机对采集到的信号予以分析判断,及时控制驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。
本任务要求用Keil C51、Proteus等作开发工具,进行调试与仿真,并在万能板(或PCB板)上进行电路元器安装、电路参数测试与调整,下载程序并测试,实物如图9.34所示,最后需完成任务设计总结报告。
图9.34 自动循迹小车实物
自动循迹小车控制系统由单片机最小系统模块、稳压电源模块、红外检测模块、减速电机及电机驱动模块等部分组成,自动循迹小车控制系统结构框图如图9.35所示。
图9.35 自动循迹小车控制系统结构框图
2.硬件电路设计
根据图9.35的总体设计框图,设计出自动循迹小车控制系统的硬件电路图,如图9.36所示。
当光电传感器开始接收信号,通过比较器将信号传到单片机中。小车进入寻迹模式,即开始不停地扫描与探测器连接的单片I/O 口,一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机,从而纠正小车的状态。单片机采用T0定时计数器,通过来产生PWM波,控制电机转速。
图9.36 自动循迹小车控制系统原理图
1)单片机最小系统
单片机最小系统包括AT89C51单片机、复位电路、时钟电路,其中复位电路采用按键复位。
2)红外检测模块(www.xing528.com)
在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设4个红外探测头。红外检测传感器采用ST188器件,其3脚接在LM324的同向输入端,再接一个上拉电阻R3(10 kΩ)。在黑线检测电路中用来确定红外接收信号电平的高低,以电平高低判定黑线有无。在电路中,LM324的一个输入端需接滑动变阻器,通过改变滑动变阻器的阻值来提供合适的比较电压。
3)电机驱动模块
驱动模块采用L298N作为电机驱动芯片,L298N 是一个具有高电压大电流的全桥驱动芯片,其响应频率高,一片L298N可以分别控制两个直流电机。
4)减速电机
电机采用直流减速电机,直流减速电机转动力矩大、体积小、质量轻、装配简单、使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。选用减速比为1∶74的直流电机,减速后电机的转速为100 r/min。
3.软件设计
本系统采用PWM来调节直流电机的速度。通过控制51单片机的定时器T0的初值,从而可以实现P0.4和P0.5输出口输出不同占空比的脉冲波形。定时计数器若干时间(比如0.1 ms)中断一次,就使P0.4或P0.5产生一个高电平或低电平。将直流电机的速度分为100个等级,因此一个周期就有个100脉冲,周期为100个脉冲的时间。速度等级对应一个周期的高电平脉冲的个数。占空比为高电平脉冲个数占一个周期总脉冲个数的百分数。一个周期加在电机两端的电压为脉冲高电压乘以占空比。占空比越大,加在电机两端的电压越大,电机转动越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比。当改变占空比时,就可以得到不同的电机平均速度,从而达到调速的目的。准确地讲,平均速度与占空比并不是严格的线性关系,在一般应用中,可以将其近似地看成线性关系。
1)程序流程图
小车进入循迹模式后,即开始不停地扫描与探测器连接的单片I/O 口,一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。软件的主程序流程图如图9.37所示。
图9.37 主程序流程图
2)C语言程序
C语言源程序如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。