基于PWM原理的红外遥控电机设计_第1页
基于PWM原理的红外遥控电机设计_第2页
基于PWM原理的红外遥控电机设计_第3页
基于PWM原理的红外遥控电机设计_第4页
基于PWM原理的红外遥控电机设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测控仪器设计课程设计,当改变励磁电流If时,可以改变磁通量的大小,从而达到变磁通调速的目的。但由于励磁线圈发热和电动机磁饱和的限制,电动机的励磁电流If,和磁通量只能在低于其额定值的范围内调节,故只能弱磁调速。而对于调节电枢外加电阻Rad时,会使机械特性变软,导致电机带负载能力减弱。对于他励直流电机来说,当改变电枢电压时UN,分析人为机械特性方程式,得到人为特性曲线如图1-1。如图1-1所示。理想空载转速随电枢电压升降而发生相应的升降变化。不同电枢电压的机械特性曲线相互平行,说明硬度不随电枢电压的变化而改变,电机带负载能力恒定。当我们平滑调节他励直流电机电枢两端电压时,可实现电机的无级调速。基于以上特性,改变电枢电压,实现对直流电机速度调节的方法被广泛采用。改变电枢电压可通过多种途径实现,如晶闸管供电速度控制系统、大功率晶体管速度控制系统、直流发电机供电速度控制系统及晶体管直流脉宽调速系统等。 图1-1 直流电动机机械特性曲线 图1-2电枢电压“占空比”与平均电压关系1.2PWM基本原理及其实现方法1.2.1PWM基本原理PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。设电机始终接通电源时,电机转速最大为Vmax,设占空比为D=t1/T,则电机的平均速度为:=*(1.2)式中,Vd电机的平均速度;Vmax电机全通电时的速度(最大);D=t1/T占空比。由公式1-2可见,当我们改变占空比时D=t1/T,就可以得到不同的电机平均速度,从而达到调速的目的。严格地讲,平均速度Vd与占空比D=t1/T并不是严格的线性关系,在一般的应用中,可以将其近似地看成线性关系.1.2.2实现方法PWM信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。硬件方法的实现已有很多文章介绍,这里不做赘述。本文主要介绍利用单片机对PWM信号的软件实现方法。STC89C51单片机具有两个定时器T0和T1。通过控制定时器初值T0和T1,从而可以实现输出口输出不同占空比的脉冲波形。由于PWM信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。因此,首先必须明确定时器的定时初值与定时时间的关系。如果单片机的时钟频率为f,定时器/计数器为N位,则定时器初值与定时时间的关系为:(1.3)式中,T定时器定时初值;N一个机器周期的时钟数。N随着机型的不同而不同。在应用中应根据具体的机型给出相应的值。这样,我们可以通过设定不同的定时初值,从而改变占空比D=t1/T,进而达到控制电机转速的目的。1.3控制程序设计控制程序的设计有两种方法:软件延时法和计数法。软件延时法的基本思想是:首先求出占空比D=t1/T,再根据周期T分别给电机通电M个单位时间t0,所以M=t0/t1。然后,再断电M'个单位时间,所以M'=t2/t0。改变M和M'的值,从而也就改变了占空比D。计数法的基本思想是:当单位延时个数M求出之后,将其作为给定值存放在某存储单元中。在通电过程中,对通电单位时间t0的次数进行计数,并与存储器的内容进行比较。若不相等,则继续输出控制脉冲,直到计数值与给定值相等,使电机断电。软件采用定时中断进行设计。如图2-12所示,单片机上电后,系统进入准备状态。当按动按钮后,执行相应的程序,根据P2.6或P2.7输出的高电平决定直流电机的正反转。根据不同的加、减速按钮,调整P2.6或P2.7输出高低电平时的占空比,从而可以控制P2.6或P2.7输出高低电平时的延时时间,进而控制电压的大小来决定直流电机转速。2.系统硬件设计2.1系统方案本设计以STC89C51单片机为核心,以红外遥控器的5个按键作为输入达到控制直流电机的停止、加速、减速、正转、反转。在设计中,采用PWM技术对电机进行控制,通过对占空比的改变达到调速的目的。2.2功能简介直流电动机具有优良的调速特性,调速平滑、方便,调速范围广;过载能力大,能承受频繁的冲击负载,可实现频繁的无级快速起动、停止和反转;能满足生产过程自动化系统各种不同的特殊运行要求。电动机调速系统采用微机实现自动控制,是电气传动发展的主要方向之一。采用微机控制后,整个调速系统实现自动化,结构简单,可靠性高,操作维护方便,电动机稳态运转时转速精度可达到较高水平,静动态各项指标均能较好地满足工业生产中高性能电气传动的要求。由于单片机性能优越,具有较佳的性能价格比,所以单片机在工业过程及设备控制中得到日益广泛的应用。PWM调速系统与可控整流式调速系统相比有下列优点:由于PWM调速系统的开关频率较高,仅靠电枢电感的滤波作用就可获得平稳的直流电流,低速特性好:同样,由于开关频率高,快速响应特性好,动态抗干扰能力强,可以获得很宽的频带;开关器件只工作在开关状态,主电路损耗小,装置效率高。本文所介绍的系统就是一个采用典型的开环调速原理组成的单片机PWM调速系统。2.3主要内容采用单片机构成的直流电动机数字PWM调速系统,其控制核心主要由51单片机、电源模块、电机驱动电路、按键(加速、减速、停止、正转、反转)、直流电机组成。系统采用L298N芯片作为PWM驱动直流电动机的供电主回路。单片机通过软件处理输出PWM信号,实现了直流电动机的速度控制,在运行中获得了良好的动静态性能。在介绍了基于单片机用PWM实现直流电机调整的基本方法,直流电机调速的相关知识,及PWM调整的基本原理和实现方法。重点介绍了基于STC89C51单片机的用软件产生PWM信号的途径,并介绍了一种独特的通过软件定时中断实现PWM信号占空比调节的方法。由于单片机的驱动能力不强,驱动直流电机需要很强的电流所以必须有外围的驱动电路,因此本设计采用L298芯片放大单片机微弱的电流。控制原理:以STC89C51单片机为核心的直流电机控制系统控制,由软件转换成PWM信号,并由P1.4、P1.5输出,经驱动电路输出给电机,从而控制电机得电与失电。软件采用定时中断进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P2.6为高电平实现电机正转,P1.4为高电平时实现电机反转。根据不同的加减速按钮,调整P1.4/P1.5输出高低电平时的预定值,从而可以控制P1.4/P1.5输出高低电平时的占空比,进而控制电压的大小。控制程序应用于电机的加减速。2.4电机调速控制模块2.4.1方案选择方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对电机的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用驱动芯片L298N驱动直流电机,L298N具有驱动能力强,外围电路简单等优点,因此我们采用方案三。2.4.2PWM调速工作方式方案一:双极性工作制。双极性工作制是在一个脉冲周期内,单片机两控制口各输出一个控制信号,两信号高低电平相反,两信号的高电平时差决定电动机的转向和转速。方案二:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。由于单极性工作制电压波开中的交流成分比双极性工作制的小,其电流的最大波动也比双极性工作制的小,所以我们采用了方案二。2.5系统分析与硬件设计键盘向单片机输入相应控制指令,由单片机通过P1.4与P1.5其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过信号放大、驱动电动机控制电路,实现电动机转向与转速的控制,电动机正转,反转,加速,减速、停止。总体设计方案的硬件部分详细框图如图2-1所示:图2-1系统硬件框图2.5.1设计部分分析1、STC89C51STC89C51内有8位的CPU、4K的ROM程序存贮器,128个字节RAM数据存贮器,4个8位并行口,2个16位定时器T0和T1,一个异步串行口UART。STC89C51是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造。另外,STC89C51可降至0HZ静态逻辑操作,支持两种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切停止工作,直到下一个中断或硬件复位为止。2、复位电路及时钟电路复位电路和时钟电路是维持单片机最小系统运行的基本模块。复位电路通常分为两种:上电复位和手动复位。图2-2上电复位图2-3手动复位有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,经常需要手动复位。所以本次设计选用手动复位。2.5.2直流电机驱动电路设计由于单片机P3口输出的电压最高才有5V,难以直接驱动直流电机。所以我们需要使用恒压恒流桥式2A驱动芯片L298N来驱动电机。L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB接控制使能端,控制电机的停转。同时需要加四个二极管在电机的两端,防止电机反转的时候产生强大的冲击电流烧坏电机。具体驱动电路如下图2-9:2.6红外遥控电路设计2.6.1红外系统方框图发射端电路:由单片机系统、红外发射电路及红外遥控按键,电源电路等组成。其设计原理图如下:图2-4遥控器方框图2.6.2系统功能需求本遥控系统要求用单片机作为控制芯片制作一个遥控器,使一个单片机系统能被遥控操作。本系统要求遥控器能够实现直流电机的启停、加速、减速、正转、反转功能。用STC89C51来作主芯片控制,采用红外接收头,具有红外遥控功能。2.6.3红外发射电路本遥控发射器采用码分制遥控方式,码分制红外遥控就是指令信号产生电路以不同的脉冲编码(不同的脉冲数目及组合)代表不同的控制指令。在确定选择STC89C51作为本设计发射电路核心芯片和点触式开关作为控制键后,加上一个简单红外发射电路和12M晶体振荡器便可实现红外发射。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它发出的便是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通二极管相同,只是颜色不同。图2-5红外发射电路2.6.4红外检测接收电路在接收过程中,脉冲通过光学滤波器和红外二极管转换为40KHZ的电信号,此信号经过放大,检波,整形,解调,送到解码与接口电路,从而完成相应的遥控功能。接收电路如图通常,红外遥控器将遥控信号(二进制脉冲码)调制在40KHZ的载波上,经缓冲放大后送至红外发光二极管,产生红外信号发射出去。将上述的遥控编码脉冲对频率为40KHZ的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。根据遥控信号编码和发射过程,遥控信号的识别——即解码过程是去除40KHZ载波信号后识别出二进制脉冲码中的0和1。由ST89C51单片机、一体化红外接收头、还原调制和红外发光管驱动电路组成。接收部分主要元件是红外接收管,它是一种光敏二极管(实际上是三极管,基极为感光部分)。在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。2.7设计所需部分器件变压器、单片机STC89C51、直流电机驱动芯片L298N、12MHZ晶振、7805、四位共阳数码管、电容、电阻、红外遥控器、5V直流电动机等。2.8应用软件的编制、调试使用Keil软件工具时,项目开发流程和其它软件开发项目的流程极其相似。(1)创建一个项目,从器件库中选择目标器件,配置工具设置。(2)用C语言或汇编语言创建源程序。(3)用项目管理器生成应用。(4)修改源程序中的错误。(5)测试,连接应用。3.系统软件的设计3.1电机控制系统程序的总体设计利用P2口,编制程序输出一串脉冲,经放大后驱动直流电机,改变输出脉冲的电平的持续时间,达到使电机正转、反转、加速、减速、停转等目的。由软件编程从P1.4/P1.5管脚产生PWM信号,经驱动电路输出给电机,从而控制电机得电与失电。软件采用延时法进行设计。单片机上电后,系统进入准备状态。当按动启动按钮后,根据P1.4为高电平时实现电机正转,P1.5为高电平时实现电机反转。根据不同的加减速按钮,调整P1.4/P1.5输出高低电平时的占空比,从而可以控制P1.4/P1.5输出高低电平时的有效值,进而控制电机的加减速。其总体流程图如图3-1示:图3-1总体程序流程图3.2红外遥控器的程序设计3.2.1遥控码的发射(1)遥控码的发射当某个操作按键按下时,单片机先读出键值,然后根据键值设定遥控码得脉冲个数,再调制成40KHZ方波由红外线发光管发射出去。通常,红外遥控是将遥控信号(二进制脉冲码)调调制在40KHZ的载波上,经缓冲放大后送至红外发光二极管,转化为红外信号发射出去的。为了提高抗干扰性能和降低电源消耗,将上述的遥控编码脉冲对频率为40KHZ(周期为26us)的载波信号进行脉幅调制(PAM),再经缓冲放大后送到红外发光管,将遥控信号发射出去。红外信号发射过程:首先装入发射脉冲个数(发射时为3ms脉冲,停发时为1ms脉冲),此时若发射脉冲个数为1则返回主程序,若不为1则发1ms脉冲,然后停发1ms脉冲,这样结束整个发射过程。在实践中,采用红外线遥控时,由于受遥控距离、角度等影响,使用效果不是很好,如采用调频或调幅发射接收码,可提高遥控距离,并且没有角度影响。发射端程序流程图图3-2遥控发射主程序流程图图3-3遥控发射器遥控码发射程序流程图3.2.2红外接收遥控接收部分的主程序及初始化及延时过程如下:首先初始化,然后判断是否有按键按下,若有,则发送相应信号;若无按键按下,则返回。接收端程序流程图图3-4遥控接收器主程序流程图中断过程:首先判断低电平脉宽是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并对低电平脉冲计数,接下来看判断高电平买宽度是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序,此时中断返回。图3-5遥控接收器中断程序流程图4.系统的电路原理图图4-1红外信号接收图图4-2电路原理图总结和体会经过努力,我们终于完成这次课程设计任务。在这次的单片机课程设计中我感觉受益匪浅,不用说我在其中学到的新知识是多么有价值,也不用说它拓宽了我多少的眼界,只是说它让我的能力得到了提高就已足以成为我努力付出的回报。通过课程设计,我增强了对单片机的理解,学会查寻资料﹑比较方案,学会单片机的设计﹑计算;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化;通过典型程序的设计与制作,加深对基本原理的了解,增强了实践能力。做程序设计时,有些指令读不懂,不会用,要翻书上网查看,所亮的灯不是所预想的,经过仔细检查发现程序赋值问题并解决。同时也做出了实物,基本上实现了直流电机的停止、加速、减速以及转向控制。个人感觉其中还有许多不够完善的地方,例如:对红外遥控器控制时加速和减速控制不能连续进行,另外,电机驱动电路的设计也不是很成熟。通过此次设计,我们的学习能力和解决问题的信心都得到了提高。在设计的过程中,遇到了很多困难,但是在查阅了很多有关书籍和向同学请教后终于解决了。通过这次设计,我不仅对理论有了更深一步的认识,还培养了自学能力和解决问题的能力,更重要的是,培养了克服困难的勇气和信心。参考文献(1)张迎新.单片微型计算机原理、应用及接口技术[M].国防工业出版社,2009.(2)单片机原理与接口技术(作者:赵嘉蔚,)出版社:清华大学出版社(3)C语言程序设计学习辅导(作者:谭浩强)出版社:清华大学出版社附录1实物图2程序#include<reg52.h>//包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义sbitIR=P3^2;//红外接口标志#defineDataPortP0//定义数据端口程序中遇到DataPort则用P0替换#defineuintunsignedintsbitLATCH1=P2^6;//定义锁存使能端口段锁存sbitLATCH2=P2^7;//位锁存sbitINPUT1=P1^0;//控制口sbitINPUT2=P1^1;sbitINPUT3=P1^2;sbitINPUT4=P1^3;sbitENA=P1^4;//产生PWM波sbitENB=P1^5;uintMA=0,MB=0,JIAN=20;staticintflag=1,JIA=20;uintSpeedA=20;//50%占空比uintSpeedB=20;/*全局变量声明*/unsignedcharcodedofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示段码值0~9unsignedcharirtime;//红外用全局变量bitirpro_ok,irok;unsignedcharIRcord[4];unsignedcharirdata[33];/*函数声明*/voidIr_work(void);voidIrcordpro(void);/*延时函数*/voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=125;y>0;y--);}/*定时器0中断处理*/voidtim0_isr(void)interrupt1using1{irtime++;//用于计数2个下降沿之间的时间}/*外部中断0中断处理*/voidEX0_ISR(void)interrupt0//外部中断0服务函数{staticunsignedchari;//接收红外信号处理staticbitstartflag;//是否开始处理标志位if(startflag){if(irtime<63&&irtime>=33)//引导码TC9012的头码,9ms+4.5msi=0; irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i++; if(i==33) { irok=1; i=0; }}else{irtime=0; startflag=1; }}/*定时器0初始化*/voidTIM0init(void)//定时器0初始化{TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值TH0=0x00;//重载值TL0=0x00;//初始化值ET0=1;//开中断TR0=1;}/*定时器1初始化*/voidtime1_init()interrupt3using1{ TR1=0; TH1=(65536-10000)/256; TL1=(65536-10000)%256; MA=MA+1;if(flag==1){ENB=0; if(MA<JIA){ ENA=1; } elseENA=0; if(MA==40){ MA=0; }}else{ENA=0; if(MA<JIA){ ENB=1; } elseENB=0; if(MA==40){ MA=0; }} TR1=1;}/*外部中断0初始化*/voidEX0init(void){IT0=1;//指定外部中断0下降沿触发,INT0(P3.2)EX0=1;//使能外部中断EA=1;//开总中断}/*键值处理*/voidIr_work(void)//红外键值散转程序{switch(IRcord[2])//判断第三个数码值 { case0x0c:ET1=1;ENA=1;DataPort=dofly_DuanMa[1];break;//1显示相应的按键值 case0x18:ET1=0;ENA=0;DataPort=dofly_DuanMa[2];break;//2 case0x5e:flag=1;DataPort=dofly_DuanMa[3];break;//3 case0x08:flag=0;DataPort=dofly_DuanMa[4];break;//4 case0x1c:JIA++;DataPort=dofly_DuanMa[5];break;//5 case0x5a:JIA--;DataPort=dofly_DuanMa[6];break;//6 case0x42:DataPort=dofly_DuanMa[7];break;//7 case0x52:DataPort=dofly_Du

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论