PWM控制的直流电动机调速系统的设计 - 毕业设计(4)

2019-08-02 00:44

1 1 0 停止

在直流电动机的驱动中对大功率的电动机常采用IGBT作为主开关元件,对中小功率的电机常采用功率场效应管作为主开关元件。另外还可以采用集成电路来完成对电机的驱动,系统采用集成电路L298来驱动电机,L298引脚接线图如图10所示:

图10 L298引脚接线图

L298是双H高电压大电流功率集成电路。直接采用L逻辑电平控制,可以驱动继电器、直流电动机、步进电动机等电感性负载。其内部有两个完全相同的功率放大回路[15]。其内部结构和引脚功能如图2-2所示。

L298引脚符号及功能:

SENSA、SENSB:分别为两个H桥的电流反馈脚,不用时可以直接接地 ENA、ENB:使能端,输入PWM信号

IN1、IN2、IN3、IN4:输入端,TTL逻辑电平信号

OUT1、OUT2、OUT3、OUT4:输出端,与对应输入端同逻辑 VCC:逻辑控制电源,4.5~7V GND:地

VSS:电机驱动电源,最小值需比输入的低电平电压高

4.5 LED数码管显示

4.5.1 LED简介

LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。

当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。除半导体激光器外,当电流激励时能发射光学辐射的半导体二极管。严格地讲,术语LED应该仅应用于发射可见光的二极管;发射近红外辐射的二极管叫红外发光二极管(IRED,Infrared Emitting Diode);发射峰值波长在可见光短波限附近,由部份紫外辐射的二极管称为紫外发光二极管;但是习惯上把上述三种半导体二极管统称为发光二极管。 4.5.2 LED数码管和单片机的连接

LED数码管接线如图11所示:

图11 LED数码管接线

电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码,然后选通该位LED,并保持一段延时时间。然后选通下一位,直到所有位扫描完,完成对PWM的占空比在LED上的实时显示。

4.6独立键盘控制模块

独立式按键就是各按键相互独立,每个按键各接入一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态可以很容易判断哪个按键按下了。独立式按键电路配置灵活,软件简单。但每个按键需要占用一个输入口线,在按键数量较多时,需要较多的输入口线且电路结构复杂,故此种键盘适用于按键较少或操作速度较高的场合。

消除键抖动。一般按键在按下的时候有抖动的问题,即键的簧片在按下时会有轻微的弹跳,需经过一个短暂的时间才会可靠地接触。若在簧片抖动时进行扫描就可能得出不正确的结果。因此,在程序中要考虑防抖动的问题。最简单的办法是在检测到有键按下时,等待(延迟)一段时间再进行“行扫描”,延迟时间为10~20ms。这可通过调用子程序来解决,当系统中有显示子程序时,调用几次显示子程序也能同时达到消除抖动的目的。按键控制模块如图12所示:

图12 按键控制模块

5系统的软件设计

5.1系统软件设计分析

在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在控制系统设计中占重要地位。

在程序中通过软件产生PWM,送出预设占空比的PWM波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。设PWM周期为T,高电平时间为TH,低电平时间为TL,电压为VCC,则输出电压的平均值为: =VCC*TH(TH+TL)=VCC*THT=aVCC,当VCC固定时,其电压值取决于PWM波形的占空比a,而PWM的占空比由单片机软件内部用于控制PWM输出的寄存器值决定。

软件主要由3部分组成:主程序、键盘扫描程序、中断处理程序。主程序流程如图12所示:

图12 主程序流程图

5.2系统程序设计分析

5.2.1主程序设计

该主程序主要完成初始化,设置定时常数和中断入口程序,主程序不断的循环处于等待中断状态。

main() {

Time0_int();

while(1) {

if(KSW==0) { }

if(KLR==0)

检测左转、右转

检测开始、停止

延时去抖

**********按键处理*****************************************

DelayM(20); if(KSW==0) {

SW=~SW; }

while(KSW==0); 等待键释放

{ }

if(KSPU==0) {

DelayM(20); if(KSPU==0) {

pwmH++; if(pwmH==pwm) {

pwmH=pwm-1; } }

延时去抖

检测加速

DelayM(20); if(KLR==0) LR=~LR; }

等待键释放

延时去抖

{

while(KLR==0);

while(KSPU==0); }

if(KSPD==0) {

DelayM(20); if(KSPD==0) {

pwmH--; }

while(KSPD==0);

if(pwmH==0) {

pwmH=1;

延时去抖

检测减速

}

}

if(SW==0) {

****************************************************************

}

M1=0; M2=0; bn=0; clearRAM(); } if(SW==1)

{ bn=0; }

clearRAM(); putin(pwm); putin(pwm10); putin(12);

putin(pwmH); putin(pwmH10); if(LR==0) { M1=0; } if(LR==1) { } } ledxs();

数码管显示

M1=M; M2=0; putin(10);

显示右转R

M2=M; putin(11);

显示左转L

显示PWM个位 显示-

显示PWMH个位 显示PWMH十位 显示PWM十位

5.2.2按键延时程序

通过按键延时程序来判断按键的按下与否,消除按键的抖动

void Delay(unsigned int i) 延时单次6us {

while(i--); }

void DelayM(unsigned int t)

延时单次1ms


PWM控制的直流电动机调速系统的设计 - 毕业设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:别出心裁的广告让你的产品走出误区

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: