AVR 单片机实现直流电机PWM 的速度调整

分享到:

1  综 述
        直流电动机转速的控制方法可分为2 类,即励磁控制法与电枢电压控制法。励磁控制,控制磁通,其控制功率虽然小,但低速时受到磁饱和的限制,高速时受到换向火花和换向器结构强度的限制;而且由于励磁线圈电感较大,动态响应较差。所以常用的控制方法是改变电端电压调速的电枢电压控制法。
        设直流电源电压为Ud ,将电枢串联一个电阻R ,接到电源Ud ,则电枢两端的电压Ua 为Ua = Ud - IaR
显然,调节电阻R 即可改变端电压,达到调速目的。但这种传统的调压调速方法,其效率低。因此,随着电力电子技术的进步,发展了许多新的电枢电压控制方法。其中, PWM(脉宽调制) 是常用的一种调速方法。其基本原理如下图所示,设加在电机电枢两端的矩形波的幅值电压为Ud ,则电机电枢两端电压的平均值为:
图1  PWM 波形图
Ua =T1 - T2T1 + T2
Ud =(2T1T- 1) Ud = (2α - 1) Ud
α称为占空比。通过改变α的值,达到调压的目的。由于0 ≤α≤1 , Ua 值的范围是- Ud~+ Ud ,因而电机可以在正、反2 个方向调速运转。
AVR 单片机是美国ATMEL 公司生产的增强RISC、内载Flash 的高性能8 位单片机,它执行速度快,有良好的性能价格比,因而得到越来越广泛的应用。
AT90S2313 为20 引脚的单片机,它有1 个全双工的通用异步接收发送器,有B 口和D 口2 个双向I/ O 口,有2 个通用定时器/ 计数器,定时器/ 计数器0 ( T/ C0) 为8 位,定时器/ 计数器1 ( T/ C1) 为16 位。B 口( PB0~PB7) 是1 个8 位的双向I/ O 口,其中引脚PB3 的第二功能(OC1) 是定时器/ 计数器1 输出比较匹配(即PWM) 的输出。定时器/ 计数器1 可以从晶振时钟(CK) 、预定比例晶振时钟、或外部引脚中选择时钟源,这可在定时器/ 计数器1 控制寄存器B( TCCR1B) 的低3 位(CS12 ,CS11 ,CS10) 进行设置,如表1 所示。
表1  时钟源的选择
CS12 CS11 CS10 说  明
0 0 0 T/ C1 被停止
0 0 0 CK
0 1 0 CK/ 8
0 1 1 CK/ 64
1 0 0 CK/ 256
1 0 1 CK/ 1024
1 1 0 外部T1 引脚,下降沿
1 1 1 外部T1 引脚,上升沿
定时器/ 计数器1 控制寄存器A
( TCCR1A) 的格式如下:
COM1A1COM1A0保留保留保留保留PWM11 PWM10
在TCCR1A 中可以设置PWM 为8 位、9位或10 位,如表2 所示。当T/ C1 处于PWM模式时,可以通过COM1A1 和COM1A2 位来设置OC1 (PB3) ,如表3 所示。在PWM 输出之前,应先向定时器/ 计数器1 的16 位寄存器TCNT1H 和TCNT1L 赋计数最大值。当PWM 为8 位时,应赋0x00FF ,此时PWM 的频率为所选时钟的1/ 510 ;当PWM 为9 位时,应赋0x01FF ,此时PWM 的频率为所选时钟的1/1022 ;当PWM 为10 位时,应赋0x01FF ,此时PWM 的频率为所选时钟的1/ 2046. 最后,通过对定时器/ 计数器1 输出比较寄存器OCR1AH和OCR1AL 赋比较值来输出PWM ,改变输出比较寄存器中的比较值,即可改变PWM 的占空比α.
表2  PWM 位数选择
PWM11 PWM10 说  明
0 0 禁止PWM
0 1 PWM 为8 位
1 0 PWM 为9 位
1 1 PWM 为10 位
表3  OC1 方式选择
COM1A1 COM1A0 在OC1 上的作用
0 0 不连接
0 1 不连接
1 0
清比较匹配值,向上计数,置比较匹配值,向下计数。(PWM不翻转)
1 1
清比较匹配值,向下计数,置比较匹配值,向上计数。( PWM 翻转)
2  硬件电路
硬件电路如图2 所示。集成电路L298 是一种功率放大芯片,它有2 路完全相同的电路,本文中的电路只用到其中的1 路。工作原理如下:在使能端6 脚为高的情况下,当5 脚为高,7脚为低时,电机向右转;当5 脚为低,7 脚为高时,电机向左转;当5 脚和7 脚的状态相同时,电机快速停止。在6 脚为低的情况下,当5 脚和7 脚的状态相同时,电机自由停止。
测速反馈电路由光码盘、发光二极管、光电三极管及施密特触发器CD40106 组成。当光码盘上的孔经过发光二极管时,发光二极管发出的光使光电三极管导通,A 端输出低电平,B端输出高电平。当光码盘上的非孔部分经过发光二极管时,B 端输出低电平。反馈信号接到单片机的8 脚( PD0/ T0) 作为定时器/ 计数器0的外部触发信号。此时应将定时器/ 计数器0控制寄存器TCCR0 的低3 位设为110 (下降沿有效) 或111 (上升沿有效) 。脉冲发生电路用于产生计算速度的时间基准,它每隔一定时间产生一个脉冲,触发AT90S2313 单片机的外部中断0 ,在外部中断0 的中断服务程序中,计算出电机的转速。

3  软件设计
主程序首先从上位机( PC 机或单片机) 获得控制电机转速的命令字,命令字包括控制电机的速度、转向等信息,然后检查收到的数据是否有效,如果无效,则向上位机发出“命令错”信息,继续等待上位机发出命令字;否则,调用速度控制子程序,然后等待外部中断0 的产生。
速度控制子程序根据上位机发来的命令字输出一定占空比的PWM 波形,使电机朝一定方向按一定速度转动。外部中断0 的中断服务子程序根据计数器0 的数值计算出电机的速度,将计算值与命令字中的速度设定值进行比较,如果计算值大于设定值,则通过减小PWM 的占空比来降低电机转速,否则,应增加PWM 的占空比来升高电机的转速。
图3  主程序流程图     图4  速度控制子程序流程图     图5  中断服务程序

4  结 论
AVR 单片机是一种新型的单片机,有很好的应用前景。将其用于直流电机的PWM 调整,不仅调速精度高,响应速度快,而且经济可靠,因而具有极大使用价值。
参 考 文 献
[1 ]  宋建国. AVR 单片机原理及应用[M] . 北京:北京航空航天大学出版社,1998.
[2 ]  张立勋. 机械电子学[M] . 哈尔滨:哈尔滨工程大学出版社,1999.

继续阅读
Microchip推出两大全新单片机系列

Microchip 8位MCU产品部副总裁Steve Drehobl表示:“新一代Arduino开发板选用ATmega4809器件,不仅加强了两家公司的合作关系,还为Arduino平台带来了CIP和智能模拟的优势”。

51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

Microchip推出新款megaAVR单片机,结合特有耐辐射性能与低成本开发特性

为空间应用开发耐辐射系统不但需要很长的交期,而且成本非常高,因为系统必须具备极高的可靠性才能在恶劣的环境下长年工作。今天,NewSpace和其他重要的航空航天应用都要求加速开发,降低成本。为满足这些需求,Microchip Technology Inc.(美国微芯科技公司)推出了一种新型单片机(MCU),该器件结合了特有的耐辐射性能以及现有商用(COTS)器件的低成本开发特性。

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss