PWM 脉宽调制 驱动电机
摘要
本次
是针对计算机控制技术综合应用的考察,我们小组选择了pwm脉宽调制这一课题,通过单片机产生PWM控制信号从而实现对直流电动机的速度调控。本设计主要介绍了该系统的硬件以及软件具体设计,并对硬件方框图和软件
图作了一定的描述。根据硬件方框图设计了以下功能模块AT89C51芯片,系统核心控制模块,通过P1.1~ P1.2端口输出两互补的PWM脉冲;,通过L298全桥驱动芯片,对脉冲进行处理,放大,输出控制电机的转速。4个二极管组成的H桥主要起保护作用。从而构成了一个比较完整有效的直流电动机调速控制系统。系统设计合理、功能完善、性能优越,在实际生产中应用效果良好,具有控制方便、组态简单和灵活性大等优点。
目录
一:概述
1. 所做课题的意义
2. 本人所做的工作
3. 系统主要功能
二:硬件电路的设计及其描述
1.
的选择及设计思想
2. 原理框图及各元件之间的逻辑关系
3. 工作原理
4. 原理电路图以及各原件之间的实际连接关系
5. 元器件清单列
三:软件设计流程及其描述
1. 系统模块层次结构图
2. 程序流程图
3. 源程序代码
四:测试
五:总结
一:概述
1.意义
脉宽调制(PWM:(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。由于PWM可以同时实现变频变压反抑制谐波的特点。由此在交流传动及至其它能量变换系统中得到广泛应用。此次设计对于深入对PWM的了解,以其日后对其应用有着非常重要的作用
2.所做工作
本人主要工作是设计硬件电路,编写单片机程序,及在电脑上进行完整的仿真,确定设计没有错误。
3.主要功能
此系统的主要功能是通过两个按键,对系统的占空比进行调节通过改变占空比对直流电动机进行调速。按一下按键1可以对电机加一点速,继续按可以继续加。按一下开关2能使电动机减速,当减到一定程度后电动机停止转动,继续按电机就会反转,在按反转速度增加。就是通过两个按键开关实现对电动机的调速和正反转。
二:硬件电路的设计及其描述
1.方案的选择及设计思想
直流电动机以其良好的线性调速特性、简单的控制性能、高质高效平滑运转特性,一直在速度和位置控制方面处于主导地位,尤其是调速性能其他电动机无法比拟的。目前采用脉宽调制(PWM)控制方式已成为直流电动机数字控制的基础。
因为在硬件设计中,将电机驱动和逻辑控制分成了两个独立的模块,所以在软件设计时也将分别设计。
逻辑控制通过单片机完成,电机驱动通过L298芯片完成。
根据《电动机的单片机控制》中对直流电机驱动的描述,同样的H桥电路,使用不同的控制信号,可以实现两种不同的控制方式,其一是“双极性可逆PWM驱动”,其二是“单极性受限可逆PWM驱动”。
对于“双极性可逆PWM驱动”方式,电机在一个PWM周期中通过相反的电流,正转、停止、反转取决于两个方向电流的持续时间,如果相等则为停止。这个方式的好处是低速稳定,启动快,但是耗电大。
对于“单极性受限PWM驱动”方式,电机在一个PWM周期中的电流是同方向的,驱动电机的功率大小取决于电流的持续时间,也就是说在一个PWM周期中,电机的电流有为“0”的时候,称之为“断流”现象。无疑,这种方式在PWM值较小时断流的时间就较长,电机运行就不稳定,也就是低速性能不好,但是由于没有反向电流消耗,所以耗电少。
2.原理框图
3.工作原理
本设计使用AT89S51,基于51内核的单片机,外接12MHZ晶振,给单片机提时钟脉冲,
机器周期与晶振周期之间成12倍的关系。通过给51单片机编程,使单片机输出,两相反的PWM波形,PWM的周期是0.1s,初始占空比设置为50%,利用中断输出(每0.1ms中断一次),设置两按键,通过按键促发,一个键增加脉冲宽度,一个键减小脉冲宽度,调整单片机输出PWM脉冲的脉宽(占空比可实现0%-100%调整)。利用C51单片机输出PWM脉冲,简单方便,易于实现。
C51输出的PWM脉冲输入L298全桥驱动,控制L298的输出来控制电机的转速
L298N为SGS-THOMSONMicroelectronics所出产的双全桥步进电机专用驱动芯片(DualFull-BridgeDriver),内部包含4信道逻辑驱动电路,是一种二相?和四相步进电机的专用驱动器,可同时驱动2个二相或1个四相步进电机,内含二个H-Bridge的高电压、大电流双全桥式驱动器,接收
?TTL逻辑准位信号,可驱动46V、2A以下的步进电机,且可以直接透过电源来调节输出电压;此芯片可直接由单片机的IO端口来提供模拟时序信号。
L298芯片是一种高压、大电流双H桥式驱动器。298加驱动器组成的步进电机控制电路具有以下优点:使用元件少,组件的损耗低,可靠性高体积小,软件开发简单,并且计算机(或单片机)硬件费用大大减少。
PWM信号经过L298处理之后,驱动电动机。
PWM脉冲为正负脉冲,
电机可以实现 正、反转
通过调节占空比来控制输出电压,从而控制电机的转速。
初始占空比50% PWM脉冲正负各一半,相当于输出的电压为0
大于50%时正转,小于50%时反转。
四个二极管都是保护作用
上面接电源那个 当Vs断电后 电机的产生的磁场产生很大的电动势保护电机(因为电机可能正传或者反转 所以两个方向均要设计二极管)
接地那个作用在于保护单片机等元件 原理是一样的
可以试想一下 如果没有上面两个二极管 或者没有下面两个二极管 都可能因为电机产生的顺势电动势 烧毁元件的
不过一般小电机是没有问题的 如果功率大电的电机影响就严重了
EN A(B)
IN1(IN3)
IN2(IN4)
电机运行情况
H
H
L
正转
H
L
H
反转
H
同IN2(IN4)
同IN1(IN3)
快速停止
L
X
X
停止
4.原理电路图
5.元器件清单
名称 型号 数量
二极管 1N4007 4
单片机 AT89S51 1
全桥驱动 L298 1
直流电机 12V 1
晶振 12MHZ 1
电容 33pf 2
电容 10pf 1
电阻 10k 1
按键 2
三:软件设计流程及描述设计程序
1.系统模块层次结构图
2.程序流程图
3.源程序代码
#include
sbit PWMQ1=P1^1;
sbit PWMQ2=P1^2;
sbit k1=P1^3;
sbit k2=P1^4;
sbit k3=P1^5;
unsigned int pwmt=100; //周期0.1s
unsigned int pwmc=50; //脉宽0.05s
unsigned int pwmj; //0.1ms计数
void t0int() interrupt 1 //0.1ms
{
//确定定时器0时间
TH0=((-1000)>>8)&0xff; //获取0.1ms的高8位
TL0=-1000; //获取0.1ms的低8位
pwmj++;
if (pwmj>=pwmt) pwmj=0;
PWMQ1=(pwmj