基于51单片机红外遥控小车制作报告(原创)PPT推荐.ppt
《基于51单片机红外遥控小车制作报告(原创)PPT推荐.ppt》由会员分享,可在线阅读,更多相关《基于51单片机红外遥控小车制作报告(原创)PPT推荐.ppt(47页珍藏版)》请在冰点文库上搜索。
,遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。
一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在4563ms之间,图4为发射波形图。
图4遥控连发信号波形,当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms18ms),高8位地址码(9ms18ms),8位数据码(9ms18ms)和这8位数据的反码(9ms18ms)组成。
如果键按下超过108ms仍未松开,接下来发射的代码(连发码)将仅由起始码(9ms)和结束码(2.25ms)组成。
3遥控信号接收接收电路可以使用一种集红外线接收和放大于一体的一体化红外线接收器,不需要任何外接元件,就能完成从红外线接收到输出与TTL电平信号兼容的所有工作,而体积和普通的塑封三极管大小一样,它适合于各种红外线遥控和红外线数据传输。
接收器对外只有3个引脚:
Out、GND、Vcc与单片机接口非常方便,如图7所示。
脉冲信号输出接,直接接单片机的IO口。
GND接系统的地线(0V);
Vcc接系统的电源正极(+5V);
2.4驱动原理的简介驱动模块的核心实际上是H桥驱动电路组成的L298芯片。
一、H桥驱动电路的内部原理解析如下图中所示为一个典型的直流电机控制电路。
电路得名于“H桥驱动电路”是因为它的形状酷似字母H。
4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:
图及随后的两个图都只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。
如图所示,H桥式电机驱动电路包括4个三极管和一个电机。
要使电机运转,必须导通对角线上的一对三极管。
根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。
例如,如图所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经Q4回到电源负极。
按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。
当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
图7所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。
当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
二、使能控制和方向逻辑驱动电机时,保证H桥上两个同侧的三极管不会同时导通非常重要。
如果三极管Q1和Q2同时导通,那么电流就会从正极穿过两个三极管直接回到负极。
此时,电路中除了三极管外没有其他任何负载,因此电路上的电流就可能达到最大值(该电流仅受电源性能限制),甚至烧坏三极管。
基于上述原因,在实际驱动电路中通常要用硬件电路方便地控制三极管的开关。
图所示就是基于这种考虑的改进电路,它在基本H桥电路的基础上增加了4个与门和2个非门。
4个与门同一个“使能”导通信号相接,这样,用这一个信号就能控制整个电路的开关。
而2个非门通过提供一种方向输人,可以保证任何时候在H桥的同侧腿上都只有一个三极管能导通。
(与本节前面的示意图一样,图所示也不是一个完整的电路图,特别是图中与门和三极管直接连接是不能正常工作的。
),采用以上方法,电机的运转就只需要用三个信号控制:
两个方向信号和一个使能信号。
如果DIRL信号为0,DIRR信号为1,并且使能信号是1,那么三极管Q1和Q4导通,电流从左至右流经电机(如图4.16所示);
如果DIRL信号变为1,而DIRR信号变为0,那么Q2和Q3将导通,电流则反向流过电机。
实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。
比如常用的L293D、L298N、TA7257P、SN754410等。
三、恒压恒流桥式2A驱动芯片L298NL298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。
可以方便的驱动两个直流电机,或一个两相步进电机。
L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;
可以直接用单片机的IO口提供信号;
而且电路简单,使用比较方便。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接457V电压。
4脚VS接电源电压,VS电压范围VIH为2546V。
输出电流可达25A,可驱动电感性负载。
1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。
L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。
5,7,10,12脚接输入控制电平,控制电机的正反转。
EnA,EnB连接控制使能端,控制电机的停转。
表1是L298N功能逻辑图。
In3,In4的逻辑图与表1相同。
由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。
同为低电平电机停止,同为高电平电机刹停等。
15脚是输出电流反馈引脚,其它与L298相同。
在通常使用中这两个引脚也可以直接接地。
下图是其与51单片机连接的电路图,2.5直流电机简介,一、直流电机的应用电动机简称电机,是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。
作为机电执行元部件,直流电机内部有一个闭合的主磁路。
主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;
另一个电路是用来传递功率的,称为功率回路或电驱回路。
现行的直流电机都是旋转电驱式,也就是说,激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电驱绕组和电驱铁芯结合构成直流电机的转子。
直流电机有以下4方面的优点:
1.调速范围广,且易于平滑调节。
2.过载、启动、制动转矩大。
3.易于控制,可靠性高。
4.调速时的能量损耗较小。
所以,在调速要求高的场所,如轧钢机、轮船推进器、电机、电气铁道牵引、高炉送料、造纸、纺织、拖动、吊车、挖掘机械、卷扬机拖动等方面,直流电机均得到广泛的应用。
二、直流电机的基本工作原理直流电机工作原理:
当电刷A,B接在电压为U的直流电源上时,若电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。
载流导体在磁场中要受到电磁力的作用,因此ab与cd两导体都受到电磁力的作用。
根据磁场方向和导体中的电流方向,利用电机左手定则判断,ab边受力的方向是向左的,而cd边则是向右的。
由于磁场是均匀的,导体中流过的又是相同的电流,所以ab边和cd边所受电磁力的大小相等。
这样,线圈上就受到了电磁力的作用而按逆时针转动。
当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。
线圈转过半周之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。
因此电磁力的方向仍然不变,线圈仍然受力按逆时针方向转动。
可见,分别处在N,S极范围内的导体中电流方向总是不变的,因此线圈两个边的受力方向也不变,这样线圈就可以按照受力方向不停地旋转,通过齿轮或皮带等机构的传动,便可以带动其他机械工作。
从以上分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围转到另一个异性磁极范围时(也就是导体经过中性面后),导体中电流的方向也要同时改变,换向器和电刷就是完成这一任务的装置。
在直流电机中,换向器和电刷把输入的直流电变为线圈中的交流电。
可见,换向器和电刷是直流电机中不可缺少的关键部件。
当然,在实际的直流电机中,不只有一个线圈,而是有许多线圈牢固地嵌在转子铁芯槽中,当导体中通过电流在磁场中因受力而转动时,就带动整个转子旋转,这就是直流电机的基本工作原理。
三、直流电机的参数转矩-电机得以旋转的力矩,单位为m或Nm。
转矩系数-电机所产生转矩的比例系数,一般表示每安培电驱电流所产生的转矩大小。
摩擦转矩-电刷、轴承、换向单元等因摩擦而引起的转矩损失。
启动转矩-电机启动时所产生的旋转力矩。
转速-电机旋转的速度,工程单位为r/min,即转每分。
在国际单位制中为rad/s,即弧度每秒。
电枢电阻-电枢内部的电阻,在有刷电机里一般包括电刷与换向器之间的接触电阻,由于电阻中流过电流时会发热,因此总希望电枢电阻尽量小。
电枢电感-因为电枢绕组由金属线圈构成,必然存在电感,从改善电机运行性能的角度来说,电枢电感越小越好。
电气时间常数-电枢电流从零开始达到稳定值的63.2%时所经历的时间。
测定电气时间常数时,电机应处于堵转的状态并施加阶跃性质的驱动电压。
工程上,常常利用电动机转子的转动惯量J、电枢电阻Ra、电机反电动势系数Ke和转矩系数Kt求出机械时间常数:
转动惯量-具有质量的物体维持其固有运动状态的一种性质。
反电动势系数-电机旋转时,电枢绕组内部切割磁力线所感应的电动势相对于转速的比例系数,也称发电系数或感应电动势系数。
功率密度-电机每单位质量所能获得的输出功率值。
功率密度越大,电机的有效材料的利用率就越高。
转子-rotor;
定子-stator;
电枢-armature;
励磁-excitation。
3.1车体设计,方案1:
自己制作电动车。
一般的说来,自己制作的车体比较粗糙,平衡感不好,车身重量以及车体比例都要有精确的测量,而且也要控制好小车行驶的轮胎与齿轮的力矩及角度的结合,这些都比较难实现。
方案2:
购买玩具电动车。
购买的玩具电动车具有组装完整的车架车轮。
玩具电动车具有如下优点:
首先,这种玩具电动车由于装配紧凑,使得各种所需电路的安装十分方便,看起来也比较美观。
其次,玩具电动车是依靠电机与相关齿轮一起驱动,能适应题目中小车准确前进、后退、转弯的要求,但是这种电动车一般都价格较贵。
基于以上分析,我们综合了方案一和方案二,还是选择了方案一,因为购买现成的小车价格较昂贵,而且它的功能固定,于是我并购买了三个车轮和两个直流电机,再自己组装完成了智能小车的车底。
4.1Keil的简介,单片机开发中除必要的硬件外,同样离不开软件,我们写的C语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
4.2protues的简介,Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
Protues软件具有其它EDA工具软件(例:
multisim)的功能。
这些功能是:
(1)原理布图
(2)PCB自动或人工布线(3)SPICE电路仿真。
支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。
软件仿真功能如下:
1)提供软件调试功能2)提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。
这样很接近实际。
在训练学生时,可以选择不同的方案,这样更利于培养学生。
3)提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。
4)具有强大的原理图绘制功能。
电路功能仿真特点如下:
在PROTUES绘制好原理图后,调入已编译好的目标代码文件:
*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。
PROTUES是单片机课堂教学的先进助手。
PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。
前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。
这在相当程度上替代了传统的单片机实验教学的功能,例:
元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
课程设计、毕业设计是学生走向就业的重要实践环节。
由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。
随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。
它具有设计灵活,结果、过程的统一的特点。
可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。
相信在单片机开发应用中PROTUES也能获得愈来愈广泛的应用。
软件缺点:
器件库溃乏,库中缺少很多重要芯片,严重影响电路仿真软件出错或乱码,此时仿真效果不及硬件仿真。
五、程序清单,#include#definec(x)(x*110592/120000)unsignedcharIr_Buf4;
sbitIRIN=P32;
unsignedcharIRCOM7;
voidIRdelay(unsignedcharx);
unsignedcharkeys=0xff;
sbitmotor=P20;
sbitzheng=P21;
sbitfan=P22;
sbitleft=P23;
sbitright=P24;
voiddelay1ms(int);
voidinc();
voiddec();
voidgo();
voidback();
voidturn_lef();
voidturn_rig();
voidstop();
charon=0;
chara,b,c,d;
/=主程序=main()IE=0x81;
TCON=0x01;
motor=0;
while
(1)switch(keys)case0xF3:
go();
break;
case0xA1:
back();
case0xF7:
turn_lef();
case0xA5:
turn_rig();
case0xE7:
inc();
case0xAD:
dec();
case0xE3:
stop();
default:
delay1ms(100-on);
motor=1;
delay1ms(on);
/=中断读取红外键值程序=voidint0(void)interrupt0unsignedcharj,k,N=0;
IRdelay(15);
if(IRIN=1)return;
/确认IR信号出现while(!
IRIN)/等IR变为高电平,跳过9ms的前导低电平信号。
IRdelay
(1);
for(j=0;
j4;
j+)/收集四组数据for(k=0;
k8;
k+)/每组数据有8位while(IRIN)/等IR变为低电平,跳过4.5ms的前导高电平信号。
while(!
IRIN)/等IR变为高电平IRdelay
(1);
while(IRIN)/计算IR高电平时长IRdelay
(1);
N+;
if(N=30)return;
/0.14ms计数过长自动离开。
/高电平计数完毕IRCOMj=IRCOMj1;
/数据最高位补“0”if(N=8)IRCOMj=IRCOMj|0x80;
/数据最高位补“1”N=0;
/endfork/endforjkeys=IRCOM2;
/=0.14ms延时=voidIRdelay(unsignedcharx)/x*0.14MSunsignedchari;
while(x-)for(i=0;
i13;
i+)/=加速程序=voidinc()if(on!
=100)on+=10;
keys=0;
/=延迟程序=voiddelay1ms(intx)inti,j;
for(i=0;
ix;
i+)for(j=0;
j120;
j+);
/=减速程序=voiddec()if(on!
=0)on-=10;
/=方向向前=voidgo()zheng=1;
fan=0;
left=1;
right=0;
/=方向向后=voidback()zheng=0;
fan=1;
left=0;
right=1;
/=左转=voidturn_lef()zheng=0;
/=右转=voidturn_rig()zheng=1;
/=停止程序=voidstop()on=0;
六、红外接收及驱动电路图,感谢您的关注,感谢您的关注,