您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 电气技术 > 基于8051单片机的电机控制系统
智能人机交互平台设计与开发基于8051单片机的电机控制系统摘要:将不同种类的电机与AT89C51单片机紧密结合起来,通过对电机驱动芯片编程的方法,对电机的正转、反转以及速度快慢等进行控制,使其在一定范围内运行,可以方便灵活地控制步进电机的运行状态,以实现传统的电机控制的高度自动化。控制的电机包括直流电机、步进电机、以及舵机。关键词:单片机;驱动芯片;编程;电机DesignofMotorControlSystemBasedonSingle-chip8051LiuTong(SchoolofMechanicalElectronicandControlEngineering,Classof0808,StudentID:08222016)Abstract:Thepaperintegratedmotorwithsingle-chip8051monolithiccircuitclosely,throughtheprogrammingmethodtocontrolthemotortoreverse,causesittomoveundercertainscope,alsofacilitatecontrolsnimblymotor’srunningstatus,realizesthetraditiontomotortoautomatehighly.ThecontrolledmotorincludesDCmotor,steppingmotorandsteeringengine.Keywords:Single–chip;DriveIC;program;motor1.直流电机驱动1.1直流电机驱动电路直流电机驱动电路我们选择的驱动芯片是L298N电机驱动芯片。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7V电压。输出电流可达2.5A,可驱动电感性负载。其管脚图如图表1所示。控制直流电机我们采用AT89S52为中央处理芯片通过L298N与电机相连接,与此同时外扩8个按钮电路以实现对管脚的控制功能。蜂鸣器提示占空比为0或者达到极限。连接电路图如图表2所示。图表1图表21.2直流电机驱动程序直流电机的驱动程序由于加入了按钮检测所以主要由4个模块组成。分别为:时间延时模块、定时中断模块、蜂鸣器子程序模块以及按钮检测模块。时间延时模块是为了防止按钮检测出现错位的信号,当按钮被按下时即单片机检测到相应端口的高电平时会延时一定时间后再次读取端口电平,如果再次读入的电平确实为高电平则单片机确认有按钮被按下,执行相应程序。定时中断程序是用来控制L298N使能端的占空比,通过改变中断时间常数即可时间不同占空比的调节。蜂鸣器的作用是当调节的占空子等于0或1时发出报警声。按键检测模块的作用是通过相应的按键是L298N的输入端电平改变。其程序流程图如图2.步进电机驱动2.1步进电机驱动电路驱动步进电机仍然是使用L298N电机驱动芯片其电路图如图3所示。驱动芯片与单片机接法与直流电机不同的是驱动芯片的两个使能端全部接地。输出的4个引脚分别接到步进电机的A,A’,B,B’上。两相四线式步进电机的四拍工作方式,其各相通电顺序为A-A’-B-B’依次循环。通电控制脉冲必须严格按照这一顺序分别控制4相得通断。如果给定的工作方式正序换相通电,步进电机正传,如果按反序通电换相,则电机就反转。如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转的越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。但是如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象。图表32.2步进电机驱动程序两相四线式步进电机的四拍工作方式,其各相通电顺序为A-A’-B-B’依次循环。通电控制脉冲必须严格按照这一顺序分别控制4相得通断。如果给定的工作方式正序换相通电,步进电机正传,如果按反序通电换相,则电机就反转。如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转的越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。但是如果脉冲频率的速度大于了电机的反应速度,那么步进电机将会出现失步现象。步进电机细分驱动系统的软件主要由主控程序、细分驱动程序、键处理程序等。细分驱动电路的主控制程序控制整个程序的流程,主要完成程序的初始化、中断方式的设置、计数器工作方式的设置及相关子程开始反向按钮被按下?电机反转占空比按钮被按下?调整定时中断时间调整占空比返回YESNOYESNO序的调用等。细分驱动程序中,细分电流控制信号的输出采用单片机片内EEPROM软件查表法,用地址选择来实现不同通电方式下的可变步距细分,从而实时控制步进电机的转角位置。其流程图如图所示。3.舵机驱动3.1舵机资料在机器人机电控制系统中,舵机控制效果是性能的重要影响因素。舵机可以在微机电系统和航模中作为基本的输出执行机构,其简单的控制和输出使得单片机系统非常容易与之接口。舵机是一种位置伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是:控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。一般舵机的控制要求如图1所示。图表43.2单片机实现舵机转角控制可以使用FPGA、模拟电路、单片机来产生舵机的控制信号,但FPGA成本高且电路复杂。对于脉宽调制信号的脉宽变换,常用的一种方法是采用调制信号获取有源滤波后的直流电压,但是需要50Hz(周期是20ms)的信号,这对运放器件的选择有较高要求,从电路体积和功耗考虑也不易采用。5mV以上的控制电压的变化就会引起舵机的抖动,对于机载的测控系统而言,电源和其他器件的信号噪声都远大于5mV,所以滤波电路的精度难以达到舵机的控制精度要求。也可以用单片机作为舵机的控制单元,使PWM信号的脉冲宽度实现微秒级的变化,从而提高舵机的转角精度。单片机完成控制算法,再将计算结果转化为PWM信号输出到舵机,由于单片机系统是一个数字系统,其控制信号的变化完全依靠硬件计数,所以受外界干扰较小,整个系统工作可靠。单片机系统实现对舵机输出转角的控制,必须首先完成两个任务:首先是产生基本的PWM周期信号,本设计是产生20ms开始初始化有关单元设置中断方式,开中断设置计数器工作方式,启动计数器按钮检测子程序,读细分档设置细分驱动子程序的周期信号;其次是脉宽的调整,即单片机模拟PWM信号的输出,并且调整占空比。3.3具体的设计过程例如想让舵机转向左极限的角度,它的正脉冲为2ms,则负脉冲为20ms-2ms=18ms,所以开始时在控制口发送高电平,然后设置定时器在2ms后发生中断,中断发生后,在中断程序里将控制口改为低电平,并将中断时间改为18ms,再过18ms进入下一次定时中断,再将控制口改为高电平,并将定时器初值改为2ms,等待下次中断到来,如此往复实现PWM信号输出到舵机。用修改定时器中断初值的方法巧妙形成了脉冲信号,调整时间段的宽度便可使伺服机灵活运动。为保证软件在定时中断里采集其他信号,并且使发生PWM信号的程序不影响中断程序的运行(如果这些程序所占用时间过长,有可能会发生中断程序还未结束,下次中断又到来的后果),所以需要将采集信号的函数放在长定时中断过程中执行,也就是说每经过两次中断执行一次这些程序,执行的周期还是20ms。软件流程如图所示。在实际应用中,采用51单片机简单方便地实现了舵机控制需要的PWM信号。对机器人舵机控制的测试表明,舵机控制系统工作稳定,PWM占空比(0.5~2.5ms的正脉冲宽度)和舵机的转角(-90°~90°)线性度较好。4.结束语在这个系统中我们使用了不同种类的电机,是为了满足机器人不同功能的转弯和行进需要。基于单片机的步进电机控制系统应用于工业被控设备对位移和角度精度要求较高的场合,而单片机因其体积小、兼容性强、高速度、低功耗等特点,成为驱动步进电机的最佳控制单元。本系统运用51系列单片机控制电机系统,由单片机产生驱动脉冲信号,进行了接口及控制程序设计实现了步进电机的准确控制。参考文献:[1].朱美玲.超声马达传动机理的研究(二)[J].振动、测试与诊断,1997,17(1):13—17.[2].蔡自兴.机器人原理及应用[M].长沙:中南工业大学出版社.1988.[3].胡汉才.单片机原理及接口技术.清华大学出版社.1996YESNOYESNO开始是否为长中断?定时器初始化,开定时中断有中断?改变定时时间,输出管脚取反运行其他中断程序
本文标题:基于8051单片机的电机控制系统
链接地址:https://www.777doc.com/doc-2567937 .html