基于单片机与电机PWM控制的水族类喂养自动送氧送料系统
1 引言
现在家庭或餐厅饭店的水族饲养中,一般多为送氧泵一直通氧,这样即浪费电,又浪费氧,送料更是全手工操作,现代鱼类饲养科学表明:一般的水族类更喜欢夜间觅食,另外如果一次放过多的料,使水质变差,科学的饲养方法:多餐少食。
电机在现代社会中起着重要作用。现在90%的驱动来自电机。对运动控制最有用的方式是对运动源的控制,单片机在电机控制的发展中扮演了十分重要的角色。本系统通过单片机与电机的PWM控制,由控制速度达到控制送料量,实现了单片机能够顺利完成定时送氧,定时定量送料。对送料机械装置创新性的设计,即简单又方便,类似于洗衣机中摔水桶,靠电机转动的离心力把料撒出去,但只有半边有孔,这样可以控制撒出去的方向,防止漏料。
2 控制系统的组成及设计
基于的89C51单片机在电机PWM控制中的应用。精确的电机控制包括三部分,即控制,驱动,反馈。根据驱动信号PWM脉冲的产生过程,一般分为由单片机通过软件编程产生PWM脉冲和通过定时计数器等脉冲发生器 产生PWM脉冲,本文将对这两种方式进行介绍。
2.1 电机的驱动
方案一:
由单片机通过软件编程产生PWM脉冲。关键是产生一定频率占空比可调PWM 脉冲,这里可以用单片机的定时器T0与软件结合的方法。T0工作在方式1,即十六位计数器方式。对TL0置初值FFD6H,使定时器0每隔41微妙(12MHZ晶振)溢出中断一次,中断后重置初值,并使软件计数器SUB—div的值减1。SUB—div的初值为244,当此值减为0时,历经的时间为 244×41×10-6 =0.010004秒,SUB-div
的初值为244(11110100B),SUB-div的低三位可以构成8种状态.在0.01秒内8种状态的重复次数=11110B
=30。故把低3位的状态以某种形式组合起来,就可以形成一定占空比的3KHZ的PWM
基金项目:陕西省教育厅项目(2004JC07)资助、陕西科技大学创新基金资助
SUB-div.1 ORL SUB-div.2 形成占空比为12.5% --
SUB-div.0 ANL SUB-div.1 形成占空比25%
SUB-div.0 ORL SUB-div.1 ANL SUB-div.2 形成占空比为37.5%
SUB-div.0 形成占空比50%
SUB-div.1 ANL SUB-div.0 ORL SUB-div.2 形成占空比为62.5%
SUB-div.1 ORL SUB.div.2 形成占空比为75%
SUB-div.0 ORL SUB-div.1 OR SUB-div.2 形成占空比为87.5%
SUB-div位如下图: (上面位的运算结果为1)
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
× | × | × | × | × | 0 | 0 | 0 |
× | × | × | × | × | 0 | 0 | 1 |
× | × | × | × | × | 0 | 1 | 0 |
× | × | × | × | × | 0 | 1 | 1 |
× | × | × | × | × | 1 | 0 | 0 |
× | × | × | × | × | 1 | 0 | 1 |
× | × | × | × | × | 1 | 1 | 0 |
× | × | × | × | × | 1 | 1 | 1 |
我们可以看出SUB-div的低三位不同组合形成的占空比的个数=23 –1,所以N位的组合形成占空比的个数=2N-1.同时通过改变计数器T0的初值与软件计数器的值来产生不同频率的脉冲.这也就达到用单片机产生PWM脉冲的目的(频率范围从几HZ到几十KHZ。.它一般用于对电机的粗略调档控制。
方案二:
选用可编程芯片8253的计数器0作为PWM信号发生器,8253的计数器0工作在可编程单稳态方式,它的输出口产生宽度连续可调PWM脉冲,该输出脉冲宽度为:W=N/fi;输出的占空比为:G=fGATE×N/fi; 式中,W为输出脉冲宽度,单位是秒;G为占空比;fi为计数器时钟信号的频率;N为单片机为其置入的计数值。PWM的频率由GATE0上所加的信号频率决定;在计数器0的GATE0端输入一定频率的方波(频率值由PWM功放电路功放管的参数决定),该频率一般由555构成多谐振荡器产生。所以通过改变计数器值N来产生连续可调的PWM脉冲。由于它的频率是由 555产生的,所以频率范围很广,脉冲占空比连续可调,一般用于对电机的精确控制。
本系统采用由单片机通过软件编程产生PWM脉冲
2.2 PWM功率放大电路
最常用的PWM功率放大器是桥式功放电路,又称H型功放电路。图一中的晶体管T1,T2,T3,T4组成PWM的开关功放电路,晶体管T1,T4 和T2 ,T3 配对工作。T1 ,T4导通,T2 ,T3截止;反之,T1 ,T4导通,T2,T3截止。显然T1和T3,T2和T4不能同时导通,因此,T1,T4与T2,T3上所加脉冲频率相同,方向相反。如果T1T4导通时间比T 2T3导通时间长,则电机正转,反之电机反转。所以我们可以把从上面产生的PWM脉冲信号,经过反向和延时后变成两路互补的PWM1,PWM2输出至功放电路 的输入端。由于脉冲电平转换的延迟,可能出现T1T3同时导通的情况,以至于引起短路。解决的办法是通过软件或延时电路使T1 T3同时有很短的一段时间TW的截止(死区)。这里是用一片双路单稳集成芯片74HC221构成的延时电路。
现在市面上已有各种电机功放电路芯片,例如由美国半导体公司生产的LMD18245芯片,专用于直流或步进式电机的驱动。电源电压范围 12V~55V,额定电流3A,具有电流反馈控制电路及过流保护防止
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)