请选择 进入手机版 | 继续访问电脑版

DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2311|回复: 1

[家电] 基于AVR169单片机电风扇360度内摇头角度自由调节的实现

  [复制链接]
发表于 2012-1-27 19:43:07 | 显示全部楼层 |阅读模式
  
         
    摘要:本文介绍了一种基于AVR单片机Atmel 169,与旋转编码器AS5040及3966控制直流电机构成的电风扇360度内摇头角度调节装置的实现,设计了AS5040旋转编码器接口电路、PWM驱动接口电路和防积分饱和的PI控制算法。
关键词:AVR单片机169,旋转编码器AS5040,直流电机,PWM
市场上大多数落地电风扇的摇头角度一般都在90度左右,而且摇头速度不可调节,人们在不同的环境和场合,常常根据实际情况希望能调节风扇的摇头角度和摇头的速度。在各类机电系统中,由于直流电机具有良好的起动、制动和调速性能,直流调速技术已广泛运用于工业领域,最常用的直流调速技术是脉宽调制(PWM) 直流调速技术,它具有调速精度高、响应速度快、调速范围宽和耗损低等特点。本文介绍了基于新型AVR单片机169、旋转编码器AS5040及3966控制的直流电机构成的电风扇调节装置,能实现落地电风扇360度内摇头自由角度调节和摇头速度调节。

1  360度内摇头角度调节装置硬件设计
1.1 系统设计与工作原理
AVR169单片机是新一代RISC结构微控制器,具有高性能、低功耗、非易失性和CMOS技术等特点,AVR169还具有32个寄存器和丰富的指令集,带有四路8/9/10位PWM功能的16位定时器,8道的10位ADC,16KB可编程Flash,1KBSRAM,可以擦写10000次,接近1MIPS/MHZ的运行速度。
AS5040是Austria microsystems公司推出的世界上最小的10位多输出旋转磁性编码器, 是将现场传感霍尔(Hall)元件、A/D转换、数字信号处理和输出接口集成到单个芯片的系统级芯片(SoC),利用其包含的小磁体,可通过磁体的360度旋转探测1024个绝对位置,即每360度提供10位分辨率的1024 个绝对位置,同时提供了积分A/B、单通道和U-V-W交换等三种不同的增量输出模式,既可根据用户的特定要求设置,也可设置为脉宽调制(PWM)输出信号。PWM 数字输出所需外部元件最少,使用方便简单。本装置采用了AS5040旋转编码器PWM_LSB端输出PWM脉冲,计算出电风扇摇头偏离初始位置的角度,其控制系统工作原理如图1 所示。   




                      图1 系统的工作原理
控制电风扇摇头速度以及使其角度在一定范围内摇动,其工作原理为:把AS5040传感器装在电风扇摇头的转轴上,就能感应出电扇转过的角度与初始位置的夹角,计算出当前风扇摇头的速度,在下一个采样周期到来时,AS5040旋转编码器测得的速度信号及电机位置反馈信号通过AS5040接口反馈到AVR单片机169,单片机再根据给定的运动速度与速度的反馈信号相减,得出偏差,给定的位置信号与电机目前的位置信号进行比较,经过防积分饱和的控制算法得出控制量,单片机最终将控制量以PWM的形式输出,经过3966功率放大,驱动直流电机,进入下一个采样周期,实现根据设定值的调节,使电风扇以一定的速度并且摇头角度在设定值范围内转动。

1.2 旋转编码器AS5040接口电路设计
AS5040旋转编码器把圆周分成1024份,当转离初始位置后,PWM_LSB端输出PWM脉冲。在0位置处,对应高电平宽度为1us,位置每加1,PWM高电平脉宽相应增加1us。通过对电机PWM的控制可以控制电机的转动,而AS5040旋转编码器随电机转轴转动,可以根据LSB端口输出脉冲计数得出电风扇摇头的速度变化,通过检测PWM_LSB输出脉冲可以得出此时刻转动的位置。AS5040引脚B_Dir_V可以直接检测出电机的正转和反转(输出1为顺时针,0为逆时针转动)。根据编码器工作原理,设计编码器硬件电路如下图2所示:
        

               
图2   旋转编码器接口电路
电机的转速ω为:
ω= c ×ΔN×(终止角-起始角) ÷360 ÷Ts              (1)
式中 C为标度变换系数, 可根据转速的量纲来选择,ΔN 为一个采样周期中的一次从起始到终止角的计数值,加上PWM输出值,再与1024比值,Ts 为采样周期。
1.3  3966 驱动接口电路设计
AVR 单片机169 输出的脉宽调制( PWM) 信号需经过功率放大才能驱动电机,调速控制系统采用的是3966 驱动芯片, 双极性工作方式是指在一个PWM 周期内电机电枢两端的电压呈正负变化,系统采用的双极性PWM控制,采用PI控制算法进行速度调节。驱动接口电路如图3 所示。单片机PWM引脚PF7直接接电机的ENABLE端,它控制着电机的转速的大小。




                          图3 电机接口电路
2  360度内摇头角度调节装置软件设计
2.1 主程序模块化设计
  在主程序的循环中,单片机系统自行给定, 获得电机转动的命令字,包括控制电机的速度和转动方向及转动位置。调用读旋转编码器模块,获得电机的实际转速和转动位置,把给定速度与实际速度作差,得出控制量偏差;把给定的位置与实际位置进行比较作差,得出位置偏差。然后,调用PI控制算法模块控制电风扇的转速。若定时到了,调用PWM 驱动模块,驱动电机,形成控制系统的速度闭环。
读编码器模块程序原理:AS5040的PWM_LSB端输出PWM脉冲,高电平1us对应0位置,位置加1,PWM高电平脉宽增加1us,所以高电平脉宽可以表示出此时电机转动的位置。由(1) 式可以计算出电机的转速。系统软件采用模块化设计方法,主程序模块化设计框图如图4所示。
2.2  PI控制算法模块设计
在主程序中得到速度的偏差信号和电机转动的位置偏差信号,输入到控制算法模块。系统在每一次采得速度信号的同时也获得风扇转动的位置信息,系统根据输入的位置信号与系统的运行状态判断是否反向运行。对于电机转动的速度偏差,系统通过软件对转速进行防饱和的PI调节方法,算得PWM脉宽。PI控制算法模块框图如5所示。
其中Kp为比例系数,Ki为积分系数,Ui为给定值;Uk是第k次采样的测量值;Qk 相当于校正量中的积分部分,初始值可取Qk= 0。在数字PI 控制系统中,当系统启、停或大幅度变动给定值时,系统输出会出现较大的偏差,经过积分项累积后,可能会出现积分饱和,从而增加了系统的调整时间和超调量,影响控制效果。所以,在PI 算法中加入了防止积分饱和措施,即在速度偏差较大时(即E(k)>Emax)采用比例调节方式,这样调节速度很快,且防止积分饱和,当速度偏差较小时(即E(k)A起始)则电扇开始摇头。(注:A终止和A起始都为零,A终止<A起始,不摇头)
2、可以设置定时摇头时间,改变在面板上按向上向下键改变摇头速度。
3、若摇头过程中,需改变摇头角度,需重新输入起始终止角后按确认键后摇头角度更新。
4  结束语
针对市场上的落地电风扇的摇头角度都在90度左右,不能进行调节摇头速度,和摇头角度,本文创新点是采用了AVR新型单片机169为微控制器,加上了AS5040旋转编码器及3966驱动,构成对直流电机控制,实现了电风扇360度内摇头角度自由调节的功能。




                       图4 系统程序总的控制流程图



                                图5  PI控制算法模块框图                        
参考文献
[1] 朱欣华,姚天忠,邹丽新,智能仪器原理与设计[M],北京:中国计量出版社,2002
[2] 金春林,邱慧芳,张皆喜,AVR 系列单片机C语言编程与应用实例[M],北京:清华大学出版社,2003
[3] 耿德根,宋建国,AVR 高速嵌入式单片机原理与应用(修订版)[M]  北京:北京航空航天大学出版社 2002.10
[4]宋绍民,何继江,廖代文,AVR单片机在腐蚀性介质温度动态测量中的应用[J],微计算机信息, 2004年第12期

      
发表于 2012-6-2 19:44:10 | 显示全部楼层
众里寻他千百度,蓦然回首在这里!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-3-29 15:13 , 耗时 0.091648 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表