基于51单片机的直流电机调速的方法
田云史洁黑龙江农业经济职业学院机电工程系157041
0 引言
许多单片机爱好者,在设计一些单片机控制系统的时候,都会采用小型直流电动机来制作各种各样的电子设备,因为直流电机调速范围广,易于平滑调速,启动、制动和过载转矩大,易于控制,可靠性较高。
对于直流电机的控制,无非是控制其转向,以及速度。
转向的控制方法比较简单,只要改变电机的通电极性就可改变其旋转方向。
在这里,我们重点讨论如何对其速度上的控制,对其调速可以采用多种办法。
对于直流电机转速的调节,最常用的办法是通过改变电枢端的电压来实现,传统的思路是通过调节电枢电路电阻R的阻值来改变端电压,以达到调速的目的。
但由于接入的电阻消耗了部分电压,因此这种传统的调速方法效率很低。
随着电力电子技术的发展,出现了许多新的电枢电压控制方法,其中PWM(Pulse Width Modulation)控制是常用的一种调速方法。
PWM控制是指在保持周期丁不变的情况下,通过调节开关导通的时间对脉冲宽度进行调制,从而达到调节电机转速的目的。
在脉宽调速系统中,电机电枢两端的电压是脉宽可调的脉冲电压,在输出脉冲频率足够快的情况下,由于惯性的存在,只要按照一定的规律改变通、断电的时间,即可使电机的速度达到并保持一个稳定值。
对于直流电机,采用PWM控制技术构成的无级调速系统,启停时对直流系统无冲击,并且具有启动功耗小、运行稳定的特点。
本文在给出直流电机调速和PWM实现方法的基础上,提供一种用51单片机软件实现PWM调速的方法。
1 PWM基本原理
PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。
PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。
在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。
通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。
因此,PWM又被称为“开关驱动装置”。
如图1所示,在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。
只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。
图1 PWM 控制原理
设电机始终接通电源时,电机转速最大为V
max
,占空比为t
t t
T t D 2
1
11/+=
=,则电机的平均速
度为
D V
V d
⨯=max
式中,
V d
——电机的平均速度;
V
max
——电机全通电时的速度(最大);
t t t
T
t D 2
11
1
/+=
=——占空比。
由公式(2)可见,当我们改变占空比
t
t t
T t D 2
1
11/+=
=时,就可以得到不同的电机平均速度
V
d
,
从而达到调速的目的。
严格地讲,平均速度
V
d
与占空比t t t
T
t D 2
11
1
/+=
=并不是严格的线性关系,
在一般的应用中,可以将其近似地看成线性关系。
一般可以采用定宽调频、调宽调频、定频调宽三种方法改变占空比的值,但是前两种方法在调速时改变了控制脉宽的周期,当控制脉冲的频率与系统的固有频率接近时将会引起振荡,因此常采用定频调宽法改变占空比的值,从而改变直流电动机电枢两端电压。
定频调宽法的频率一般在800H Z -1000H Z 之间比较合适。
2实现方法
PWM 信号的产生通常有两种方法:一种是软件的方法;另一种是硬件的方法。
硬件方法的实现已有很多文章介绍,这里不做赘述。
本文主要介绍采用定频调宽法来利用51单片机产生PWM 信号的软件实现方法。
MCS-51系列典型产品805l 具有两个定时器T0和T1。
通过控制定时器初值,,从而可以实现从
8051
最大值Vmax
平均值Vd
最小值Vmin
的任意输出口输出不同占空比的脉冲波形。
由于PWM 信号软件实现的核心是单片机内部的定时器,而不同单片机的定时器具有不同的特点,即使是同一台单片机由于选用的晶振不同,选择的定时器工作方式不同,其定时器的定时初值与定时时间的关系也不同。
因此,首先必须明确定时器的定时初值与定时时间的关系。
如果单片机的时钟频率为f ,,定时器/计数器为n 位,则定时器初值与定时时间的关系为:
()
f
N
n n
t ⨯-=01
2 式中, 1t 表示定时时间;
n 表示定时器的位数;
0n 表示定时器的计数初值;
N 表示单片机一个机器周期需要时钟数,8051需要12个时钟; f 表示单片机晶振频率。
N 随着机型的不同而不同。
在应用中,应根据具体的机型给出相应的值。
这样,我们可以通过设定不
同的定时初值1t ,,从而改变占空比D ,进而达到控制电机转速的目的。
根据占空比
t t t
T
t D 2
11
1
/+=
=,我们需要用到两个定时器,一个用来控制高电平时间,另外一个
控制低电平时间,但这样的话比较浪费单片机定时器资源。
为此我们这里价绍一种可以利用一个定时器来分别控制高电平和低电平持续的时间来调整占空比D ,详情见下面的利用51单片机的P1.0端口输出PWM 波形的流程图。
图2 P1.0端口输出PWM波形流程图
3具体实例
下面我们有主频为12MHZ的51单片机的方式1产生一个占空比为1/4的PWM信号。
这里面采用定频调宽法,采用PWM信号频率为1000HZ,周期为1毫秒,占空比为1/4,可以得知高电平持续的时间为250微秒,低电平持续的时间为750微秒,单片机的时钟频率为12MHZ,根据上面初值计算公式,可以得到高电平控制初值和低电平控制初值。
通过分析编写程序如下:#include<reg51.h>
sbit p1_0=P1^0;
void main()
{
TMOD=0x01; //计时器T0方式1
TH0=(65536-750)/256; //赋计时器初值高位
TL0=(65536-750)%256;//赋计时器初值低位
EA=1; //开总中断
ET0=1; //开计时器T0中断
TR0=1; //启动计时器T0
p1_0=0; //置P1.0为低
while(1); //等计时器T0中断
}
void timer0() interrupt 1
{
if (p1_0==1)
{
TH0=(65536-750)/256;//赋低电平控制计时器初值高位
TL0=(65536-750)%256;//赋低电平控制计时器初值低位
p1_0=0;
}
else
{
TH0=(65536-250)/256;//赋高电平控制计时器初值高位
TL0=(65536-250)%256;//赋高电平控制计时器初值低位
p1_0=1;
}
}
4结束语
通过对以上的1/4占空比PWM信号产生实例进行分析,便可以得到任意的占空比的PWM信号,只
需对计时器的初值进行调整。
这里对初值可以采取使用变量的形式,那么得到的占空比信号就更加的灵活多样。
另外也可以结合外部按键实现可控占空比的PWM信号,并可以将占空比由数码管或液晶显示器显示出来。
更多更大的功能交给同学们来完成吧!
通过单片机来实现电机调整有多种途径。
相对于其他用硬件或者硬软结合的方法实现对电机进行调整,采用PWM用纯软件的方法来实现调速过程,具有更大的灵活性和更低的成本,能够充分发挥单片机的效能,对于简易速度控制系统的实现提供了一种有效的途径。
由于单片机的引脚驱动能力较低,不能直接驱动直流电机,所以单片机产生的PWM信号只是一个控制信号,要想驱动电机,还需要有相应的驱动电路或驱动芯片,像L293D、L298N这样的集成驱动芯片都是驱动直流电机不错的选择。
对于软件,采用一个计时器分别产生两件时间设计的思路,为采用纯软件对电机速度的平滑调节提供了一种不错的解决方案。