基于单片机的直流伺服电机控制系统设计

发布者:RadiantEnergy最新更新时间:2024-08-15 来源: elecfans关键字:单片机  直流伺服电机  控制系统 手机看文章 扫描二维码
随时随地手机看文章

设计一个直流伺服电机控制系统,控制功能要求实现电机的启动、停止控制、正转、反转、加速、减速共六种功能,为了能实现人机交互,需要用到按键和数码管。


具体要求如下:K0为启动/停止控制、K1正转、K2反转;K3加速,K4减速,用3个发光二极管显示状态:正转时红灯亮,反转时黄灯亮,不转时绿灯亮。并利用4位LED数码管显示电机转速。


要求分析:

按键K1用来控制电机反转,若电机正在停止或正转状态,当按下k1时,电机开始反转;若电机处于反转状态,电机不响应按键命令。

按键K2用来控制电机正转,若电机正在停止或反转状态,当按下k2时,电机开始正转;若电机处于正转状态,电机不响应按键命令。

按键K3用来控制电机加速,当电机处于运行状态时,如果电机尚未达到最大转速,当按下按键K3时,电机会加速,每按一次,电机加速一个节拍,若需要一直加速,则需要多次按下按键K3,当电机到达最大速度时,电机将保持在最大速度运行,不再响应按键命令。

按键K4用来控制电机减速,当电机处于运行状态时,如果电机尚未达到最小转速,即停止状态,当按下按键K4时,电机会减速,每按一次,电机减速一个节拍,若需要一直减速,则需要多次按下按键K4,当电机到达最小速度时,即电机处于停止状态,电机将保持停止,不再响应按键命令。

为了知道电机是否按控制要求工作,需要知道电机的转速,这里用到了4位数码管来显示,最高位显示转动方向,正转显示“0”,反转显示“-”。后3位用来显示转速的数值大小。

此外,设置三个发光二极管,来显示电机的运行状态。当电机停止时,绿灯亮,当电机正转时,红灯亮,当电机反转时,黄灯亮。

2.控制方案设计

因为直流电机的工作电压和电流与控制电路的电压和电流不匹配,所以需要设计接口电路,用来把控制电路的指令转化为电机的工作信号,这种接口电路称为直流电机的驱动电路。直流电机的驱动电路有多种不同的设计方案,这里着重介绍了用分立元件构成的驱动电路和用集成芯片构成的驱动电路。

2.1用分立元件构成直流电机的驱动电路

利用晶体管,电阻等分立元件,来组成直流电机的全桥驱动电路。因为电机的工作电流较大,而一个三极管的电流放大能力有限,所以采用达林顿组成全桥(H桥)驱动电路控制电机,以满足电机工作的需要。如图1所示。图中的Q1~Q4是功率三极管,其中Q1和Q2组成一个桥臂,其中Q3和Q4组成一个桥臂。每个功率三极管旁边有一个续流二极管。当Q1和Q4打开时,直流电机的控制电流从A流向B,此时直流电机正转;当Q2和Q3打开时,直流电机的控制电流从B流向A,此时直流电机反转。这样,通过Q1~Q4的控制就可以控制直流电机的转向了。

d77d69e0-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图1直流电机全桥控制原理图

2.2用电机驱动芯片来构成直流电机的驱动电路

这里所用的驱动芯片是L298,L298起到方大电流的作用。L298有4路输入,4路输出,2个使能端。用L298构成的驱动电路如图2所示。

其工作原理为:L298芯片中,IN1对应OU1,IN2对应OUT2,IN3对应OU3,IN4对应OUT4,使能端ENA对应IN1和IN2,使能端ENB对应IN3和IN4。在使能端为高电平的状态下,当IN1输入高电平IN2输入低电平时,电机正转,当IN1输入低电平IN2输入高电平时,电机反转,当IN1和IN2输入电平相等时,电机不转。如果使能端为低电平,那么电机不受控制,而处于停止状态。

d78c21e2-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图2直流电机驱动电路图

L298的工作电压范围在7V~50V之间,输出电流可达2A,能够满足直流电机的控制需要。

2.3.方案选择

以上所给的两种直流电机的驱动方案都能满足要求,现在来对它们进行分析比较,选出合适的方案。

用分立元件构成的直流电机驱动电路,其优点是:电路由分立元件组成,通过分析电路,能直观的了解驱动电路的工作原理,对于理论学习是非常有帮助的。其缺点是:电路过于复杂,在制作实物时容易出错,另一方面,分立元件过多,其可靠性很难保证。

用集成芯片构成的直流电机驱动电路,其优点是,电路简单,元件减少,电路的可靠性高,制作实物时相对较容易。其缺点是,对于初学者很难知道期内的工作原理,只能简单的用。

通过上面的分析,我决定选用集成芯片L298来构成直流电机的驱动电路,这样实现起来较为容易。

2.4.总体方案设计

控制系统的核心控制芯片是AT89C51单片机,单片机作为整个系统的大脑,协调各个部件的工作。首先,当按键发出的控制指令时,单片机利用外部中断采集控制指令,并对控制指令进行处理,之后输出信号控制直流电机的驱动电路。与此同时,单片机要计算直流电机的转速,并且要把电机的转速在数码管上显示出来。直流电机的调速是通过单片机控制输出PWM的占空比实现的,为了提高单片机的工作效率,对按键的扫描采用中断方式。其原理框图如图3:

图3控制系统原理框图

3.硬件电路设计

3.1单片机最小工作系统

单片机最小工作系统指单片机能正常工作的最少配置,包括电源、时钟电路、复位电路和一块51单片机。

(1)89C51

AT89C51是一种带4K字节FLASH字节存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。如图4所示。

d7993134-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图4AT89C51

(2)时钟电路

MCS-51单片机的时钟有两种工作方式:一种是内部振荡方式,它是利用单片机内部的振荡电路,产生时钟信号,这种方式单片机的时钟引脚上接石英晶体和振荡电容;另外一种是外部振荡方式,它是把外部已有的时钟引入单片机。下面来介绍较为常用的内部振荡方式:

如图5,单片机内部有一个用于构成振荡器的高增益反相放大器,它的输入端为XTAL1引脚,输出端为XTAL2引脚,分别是8051单片机的19脚和18脚,其频率范围为fOSC=0~12MHZ。

d7aae668-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图5内部振荡方式时钟电路图

(3)复位电路

往单片机的复位引脚上输入24个时钟周期以上的高电平,即执行复位操作。在此次课设中我用的是按键复位,电路如图6所示,系统在运行时,按下复位按键,就能在RST引脚产生一段时间的高电平,使系统复位。此处,取12MHZ的晶振,电容取30pF。

d7b479da-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图6按键复位电路

3.2数码管显示电路

LED数码管是由a、b、c、d、e、f、g、h这8段发光二极管组成的“8”字形显示器件。LED数码管分为共阳极和共阴极两种,如图7所示,如果每段的阳极接在一起则为共阳极LED,如果每段的阴极接在一起则为共阴极LED。此次课设中,我所用的数码管为共阴极的。

d7e6c8a4-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图7LED数码管

这里用到了4位数码管,如图8所示,段选端接单片机的P0口,因为P0口内部没有上拉电阻,为高阻态,不能正常的输出高/低电平,所以这里需要上拉电阻。为了电路的简化,这里使用了排阻。数码管的位选端接单片机的P1.0~P1.3,当输出低电平时,表示该位数码管被选中。

d7f711e6-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图8数码管电路

3.3直流电机驱动电路

L298是一款高电压、高电流型的全桥驱动电路,输入为TTL电平,用来驱动如继电器、直流电机或步进电机等感性负载。两个独立的使能端,可以独立的控制两组四个输入。

直流电机的驱动电路由L298构成,51单片机通过P1.5~P1.7口控制L298的使能端口和输入端口,而驱动芯片则输出被放大的控制信号,用以控制电机运行。驱动电路如图9所示,图中所加4个二极管是起到保护作用。

d812f078-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图9直流电机驱动电路

3.4按键控制电路

单片机检测按键的原理是:单片机的I/O口既可作为输出也可以作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一个高电平,然后让单片机不断的检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O变为低电平则说明按键被按下,然后执行相应的指令。

这种按键在按下和松开时都会有抖动现象,可以采用硬件或者软件的方式来消除抖动,为了节约成本,采用软件延时的方式来消除抖动的影响。

为了提高单片机的工作效率,本次设计将5个按键通过一个与门连至单片机的外部中断输入口。当有按键按下时,单片机停下正在做的工作,转而执行按键扫描程序,然后执行相应指令。按键控制电路如图10所示:

d82ca4dc-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图10按键控制电路

4.软件设计

4.1主程序设计

当程序开始运行时,不断采集直流电机的转速并显示。其流程图如图11所示:

d83d20e6-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图11主程序流程图

4.2定时器0控制产生PWM波形

直流电机调速一般运用PWM原理来进行。对于直流电机来说,如果加在电枢两端的电压为脉动电压,可以看出,在T不变的情况下,改变t1和t2的宽度,电压将发生变化。

d847a4e4-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

d8553a3c-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

式中,d861a902-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000是常数。

利用PWM调速的原理,也就是通过改变占空比来改变加在电机两端的电压,从而改变电机的转速,其流程图如图12所示。

d875af42-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图12PWM波形控制流程图

直流电机在进行调速时,通过改变变量num的值实现。加速时,num的值增加,而TH0的初值则相应的减小,也就是一个周期中,高电平相应的时间延长,低电平的时间相应减小速度增加。减速时num的值减小,也就是TH0的初值增加,一个周期中,高电平的时间减小,低电平的时间增加,速度降低。

4.3按键扫描程序

当发生外部中断时,单片机进入外部中断程序,开始扫描按键,先扫描KEY0按键,看是否按下了起/停键,如果按下了该键,则执行起/停程序;如果没有则判断KEY1键,看是否按下了该键,若果按下了,则执行正转程序;若果没有判断KEY2键,若该键按下,则执行反转程序;若没有则检测KEY3键是否按下,若按下,则执行加速程序;若没有则检测KEY4键,若该键按下,则执行减速程序,否则退出中断程序。按键显示程序流程图如图13所示。在这段中断程序中,扫描按键,并执行相应的指令。因为把按键扫描程序放到外部中断程序中,单片机只有在接收到外部中断的申请时,才去扫描按键,在无按键按下时,不必浪费时间去扫描按键,提高了CPU的效率。

d88292b6-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图13外部中断按键扫描程序

5.仿真分析

5.1Proteus简介

Proteus开发平台不仅能够胜任PCB电路板设计制作的工作,同时还拥有进行交互式的仿真测试的功能。Proteus软件是目前用户最为青睐的仿真软件,它不仅能够完成单一电路以及混合电路的仿真与设计,同时能够很好的和市面上常见的微型控制器系统兼容匹配。它完美的完成了从设计原理图→仿真分析→代码调试→功能测试→形成PCB的完整过程。经过多年的发展与完善,如今无论是在性能上还是功能上都越来越值得广大用户的信赖。

5.2软件仿真

这部分仿真主要是解决程序中的语法错误。由于程序代码较长,在书写过程中难免出现语法错误和函数参数类型方面的错误,我选择使用keil4软件编写程序,通过这道程序的仿真,能基本解决这方面的错误,为下一步应用proteus软件仿真做好准备。其仿真结果见图14:

d8950018-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图14源程序仿真结果

由图可知,程序已无语法错误,编译成功,并且生成hex文件,利用该文件可以与proteus软件联合仿真,进一步检查程序的语法错误。

5.3运用proteus软件联合仿真

首先在proteus软件中画好硬件电路,并检查硬件电路是否满足要求。在确定硬件功能正常后,载入编译源程序生成的hex文件,在proteus软件中仿真运行,通过电路中各元件引脚显示的电平状态,检查软件逻辑上是否存在问题。再确认没有问题之后,开始进入仿真的环节。

点击左下角运行之后,电机显示0转速,数码管也显示速度为0000,右下角显示电机状态的LED灯全灭。如图15:

d8a15390-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图15开始运行

点击启动停止按钮,电机开始正转,并维持一定的速度,速度显示在数码管上为0209,右下角红灯亮,表示电机处在正转状态,如图16:

d8b48500-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图16点击启动停止按钮后画面

点击反转按钮,电机开始反转,并维持一定的速度,速度显示在数码管上为-209,右下角黄灯亮,表示电机处在反转状态,如图17:

d8c5dd0a-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图17点击反转按钮后画面

点击正转按钮,电机开始正转,并维持一定的速度,速度显示在数码管上为0209,右下角红灯亮,表示电机处在正转状态,如图18:

d8d9e6ce-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图18点击正转按钮后画面

点击加速按钮,电机开始正转加速,速度显示在数码管上为0220,右下角红灯亮,表示电

机处在正转状态,如图19:

d8f2be06-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图19点击加速后画面

点击两次减速按钮,电机开始正转减速,速度显示在数码管上为0199,右下角红灯亮,表示电机处在正转状态,如图20:

d910326a-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图20点击两次减速按钮后画面

点击启动停止按钮,电机停止转动,速度显示在数码管上为0000,右下角绿灯亮,表示电机处在停止状态,如图21:

d91e569c-1989-11ee-962d-dac502259ad0.jpg?imageView2/2/w/1000

图21点击启动停止按钮后画面


关键字:单片机  直流伺服电机  控制系统 引用地址:基于单片机的直流伺服电机控制系统设计

上一篇:定时器准确定时八位时钟
下一篇:数码管八位显示时钟

推荐阅读最新更新时间:2026-03-25 13:31

如何计算伺服电机功率?直流/交流伺服电机在特点、应用上有什么区别
一、如何计算伺服电机功率 伺服电机可以实现对电机位置、速度和加速度等参数的精确控制,提高设备的运动精度和效率,降低能量消耗和噪声。它在自动化控制、机器人、医疗设备、印刷包装、纺织机械等领域都有广泛应用。 伺服电机的功率计算需要考虑负载转矩、转速和效率等因素。 假设伺服电机的输出转矩为T,输出转速为n,电机效率为η,则其输出功率P为: P = T × 2π × n / 60 × η 其中,2π/60为将转速n从rpm(每分钟转数)转换为弧度制单位的换算系数。 需要注意的是,负载的转矩和转速会直接影响到伺服电机的输出功率。因此,在选型伺服电机和确定实际应用时,需要综合考虑负载特性、电机的规格和性能指标等多个因素,以确保伺服电机能够满足
[嵌入式]
交流伺服电机和无刷直流伺服电机的区别
“伺服”一词源于希腊语“奴隶”的意思。“伺服电机”可以理解为绝对服从控制信号指挥的电机:在控制信号发出之前,转子静止不动;当控制信号发出时,转子立即转动;当控制信号消失时,转子能即时停转。 伺服电机是自动控制装置中被用作执行元件的微特电机,其功能是将电信号转换成转轴的角位移或角速度。 伺服电机分为交流伺服和直流伺服两大类 交流伺服电机的基本构造与交流感应电动机(异步电机)相似。在定子上有两个相空间位移90°电角度的励磁绕组Wf和控制绕组WcoWf,接恒定交流电压,利用施加到Wc上的交流电压或相位的变化,达到控制电机运行的目的。交流伺服电机具有运行稳定、可控性好、响应快速、灵敏度高以及机械特性和调节特性的非线性度指标严格(要
[嵌入式]
永磁式直流伺服电机的电磁转矩与电枢电流之间的关系
永磁式直流伺服电机(Permanent Magnet DC Servo Motor)是一种广泛应用于自动化控制系统、机器人、数控机床等领域的电机。它具有高效率、高响应速度、高精度等特点。本文将详细探讨永磁式直流伺服电机的电磁转矩与电枢电流之间的关系。 永磁式直流伺服电机的基本原理 永磁式直流伺服电机主要由定子、转子和永磁体组成。定子是电机的固定部分,通常由硅钢片叠压而成,上面绕有电枢绕组。转子是电机的旋转部分,通常由导体材料制成,上面绕有励磁绕组。永磁体通常采用高性能的稀土永磁材料制成,如钕铁硼(NdFeB)等。 当电枢绕组通入直流电流时,电枢电流产生的磁场与永磁体产生的磁场相互作用,产生电磁转矩,使转子旋转。通过改变电枢
[嵌入式]
如何在直流供电下使用交流同步伺服电机
在如户外移动设备等一些应用场景中,使用交流同步伺服电机时往往需要直流供电。因此,了解如何在直流供电下使用交流同步伺服电机对于快速完成系统搭建和调试十分重要。本文将重点讨论在直流供电情况下,交流同步伺服电机如何正常使用,及使用时的注意事项。 虽然交流同步伺服电机中包含了交流字样,但实际上,并不是指其只能通过交流供电。伺服电机的控制单元——驱动器,可以起到整流和逆变的功能。在正常使用交流供电的情况下,供给的交流电仍需经过整流、滤波、稳压等过程,将交流转化为直流后,在直流母线上经逆变电路再变成电机所需要的交流电。 桥式整流电路 了解了这一点之后,不难发现:即使接入驱动器的电流是直流电,仍可经过整流电路,将直流电压输送到直流母线。
[嵌入式]
如何在<font color='red'>直流</font>供电下使用交流同步<font color='red'>伺服电机</font>?
直流和交流伺服电机的工作原理
伺服电机(servo motor ) 是指在伺服系统中控制机械元件运转的发动机 。伺服电机转子转速受输入信号控制,并能快速反应,在自动控制系统中,用 作执行元件 ,且具有机电时间常数小、线性度高、始动电压等特性,可把所收到的电信号转换成电动机轴上的角位移或角速度输出。分为直流和交流伺服电动机两大类。 工作原理 1、伺服系统(servo mechanism)是使物体的位置、方位、状态等输出被控量能够跟随输入目标(或给定值)的任意变化的自动控制系统。伺服主要靠****脉冲 来定位,基本上可以这样理解,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移 。 因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角
[嵌入式]
<font color='red'>直流</font>和交流<font color='red'>伺服电机</font>的工作原理
直流伺服电机的工作原理_直流伺服电机调速方法
  直流伺服电机的工作原理   直流伺服电机是一种常见的精密控制电机,其工作原理基于磁通定律和法拉第电磁感应定律。   直流伺服电机由直流电源、电机、编码器和控制器等组成。当直流电源施加到电机上时,会在电机中产生一个磁场,这个磁场是由电枢和永磁体之间的磁通线圈所产生的。接着,控制器会向电枢中施加一个控制信号,这个信号可以是脉冲宽度调制(PWM)信号,它的频率一般在几千赫兹到几十千赫兹之间。当控制信号改变时,会导致电机内部磁场的变化,这样电机就会转动。   编码器用于检测电机的角度和位置,通过将编码器的信号反馈给控制器,控制器可以实时控制电机的转动速度和方向。控制器通过比较编码器的反馈信号和期望信号,计算出控制信号的输出值,
[嵌入式]
直流伺服电机的控制方式_直流伺服电机调速方法
  直流伺服电机的控制方式   直流伺服电机的控制方式有多种,下面介绍几种常见的方式:   位置控制:这种控制方式主要是根据电机的角度或位置进行反馈控制,通过控制电机的转速和方向来实现位置控制,应用于需要精确位置控制的场合。   速度控制:这种控制方式主要是根据电机的速度进行反馈控制,通过控制电机的电压或电流来调整电机的转速,应用于需要精确速度控制的场合。   力控制:这种控制方式主要是根据电机的负载情况进行反馈控制,通过控制电机的电流或电压来调整输出的扭矩,应用于需要精确力控制的场合。   位置速度复合控制:这种控制方式是结合位置控制和速度控制,同时对电机的角度和速度进行反馈控制,通过控制电机的电流或电压来实现精确的位置和速度控
[嵌入式]
直流伺服电机与交流伺服电机对比分析
伺服电机是指在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。伺服电机可使控制速度,位置精度非常准确,可以将电压信号转化为转矩和转速以驱动控制对象。伺服电机转子转速受输入信号控制,并能快速反应,在自动控制系统中,用作执行元件,且具有机电时间常数小、线性度高、始动电压等特性,可把所收到的电信号转换成电动机轴上的角位移或角速度输出。 直流伺服电机与交流伺服电机 分为直流和交流伺服电动机两大类,其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。 直流伺服电机,它包括定子、转子铁芯、电机转轴、伺服电机绕组换向器、伺服电机绕组、测速电机绕组、测速电机换向器,所述的转子铁芯由矽钢冲片叠压固定在电机转轴
[机器人]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved