基于51单片机的红外遥控小车设计初稿

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

论文摘要:本文介绍一款红外线遥控小车,以AT89S51单片机为核心控制器,用L289驱动直流电机工作,控制小车的运行。本款小车具有红外线遥控手动驾驶、自动驾驶、寻迹前进等功能。本系统采用模块化设计,软件用C语言编写。

一、设计任务和要求

以AT98C51单片机为核心,制作一款红外遥控小车,小车具有自动驾驶,手动驾驶和循迹前进等功能。自动驾驶时,前进过程中可以避障。手动驾驶时,遥控控制小车前进、后退、左转、右转、加速等操作。寻迹前进时小车还可以按照预先设计好的轨迹前进。

二、系统组成及工作原理

本系统由硬件和软件两部分组成。硬件部分主要完成红外编码信号的发射和接受、障碍物检测、轨迹检测、直流电机运行的发生等功能。软件主要完成信号的检测和处理、设备的驱动及控制等功能。AT89S51单片机查询红外信号并解码,查询各个检测部分输入的信号,并进行相应处理,包括电机的正反转,判断是否遇到障碍物,判断是否小车其那金中有出轨等。系统结构框图如图1所示。

图1 系统结构框图

三、主要硬件电路

1、遥控发射器电路

该电路的主要控制器件为遥控器芯片HT6221,如图2所示。HT6221将红外码调制成38KHZ的脉冲信号通过红外发射二极管发出红外编码。图2中D1是红外发射二极管,D2是按键指示灯,当有按键按下时D2点亮。

HT6221的编码规则是:当一个键按下超过36ms,振荡器使芯片激活,如果这个按键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9~18ms),8位数据码(9~18ms)和这8位数据码的反码(9~18ms)组成,如果按键按下超过108ms仍未松开,接下来发射的代码将仅由起始码(9ms)和结束码(2.5ms)组成。按照上图的接法,K1~K8的数据码分别为:0x00,

0x01,0x02,0x03,0x04,0x05,0x06,0x07。

图2 遥控发射器电路原理图

2、红外线接收模块

该模块使用一体化红外接收头1838,其电路如图3所示。瓷片电容104为去耦电容,DOUT即是解调信号的输出端,直接与单片机的P3.2口相连。有红外编码信号发射时,输出为检波整形后的方波信号,并直接提供给单片机。

图3 红外接收原理图

3、电机驱动模块

该模块主要由芯片L298控制两个电机的正反转,以及改变电机的转速,其电路如图4所示。L298 芯片是一种高压、大电流双全桥式驱动器。其中SENSEA、SENSEB分别为两个H桥的电流反馈脚,不用时可以直接接地。VCC,VS是接电源引脚,电压范围分别是4.5~7V、2.5~46V,设计中VCC端与单片机电源端共用5V工作电源,VS端独立接9V电源。ENA,ENB为使能端,低电平禁止输出。IN1,IN2,IN3,IN4为数据输入引脚,OUT1,OUT2,OUT3,OUT4为数据输出引脚。D1~D8是保护二极管(IN5819),用于释放掉电机停车时产生的反响尖峰电势,否则会击坏L298。

图4 电机驱动原理图

4、障碍物检测和寻迹模块

障碍物检测和轨迹检测原理是相同的。从经济的角度考虑,该模块选用了反射式光耦,其电路如图5所示。反射式光耦由一个红外发射管和一个光敏三极管组成。LM324是电压比较器,当3脚的电平大于2脚时,输出端1脚输出高电平,反之输出低电平。高低电平的值取决于LM324的2脚电平,调整电位器R23使LM324的2脚电压为3V。

避障电路安装在小车的头部的左右两边,分别用于检测左右障碍物。工作过程是:当无障碍物时,不反射红外线,光敏三极管截止,LM324的3脚在R16的上拉作用下为高电平(5V),大于2脚电压(3V),输出高电平;当遇到障碍物时,反射红外线,光敏三极管导通,比较器3脚接地,小于2脚电压(3V),输出低电平。单片机根据电平的变化判断有无障碍物,当左边遇到障碍物时小车右转,当右边遇到障碍物时小车左转。

循迹电路安装在小车的底部的左右两边,循迹是通过辨别黑白色来行走。工作过程是:红外发射管发出红外光,当遇到黑色,不反射红外光,比较器输出为高电平;当遇到白线,红个光反射回来,比较器输出为低电平。当左边检测到白色时小车右转,当右边检测到白色时小车左转,当两边检测到的都是黑色时小车前进,当两边检测到的都是白色时小车停止。

图5 障碍物检测、轨迹检测原理图

四、软件设计

本系统的软件用C语言编写,分为主程序,外部中断解码子程序、自动驾驶子程序、手动驾驶子程序、障碍物检测子程序、轨迹检测子程序、定时器1中断调速子程序等。主程序完成系统硬件的初始化、子程序调用等功能。主程序、解码子程序如图6、图7所示。

图6 主程序流程图7 解码程序流程图

结束语:

经实践表明,本文所设计的红外线遥控小车运行稳定、遥控灵敏、占用系统硬件资源少。且在不改变硬件电路,仅通过软件编程小车就可以实现障碍物检测、报警等功能。

相关文档
最新文档