李 瑾
(晉中職業(yè)技術學院 機電工程系,山西 晉中 030600)
相對于空調等高技術制冷設備而言,電風扇具有風力溫和、節(jié)能、價格低廉、操控簡單和便于移動等優(yōu)點,在生活中扮演著重要的“角色”[1-2]。當前,電風扇的調速控制系統(tǒng)種類較多,但此系統(tǒng)較復雜和昂貴[3-5]。本文設計的風扇控制系統(tǒng)不僅可以調整風扇的轉動速度,還可以調整風扇的轉動方向。風扇的轉速控制采用PWM調壓調速來實現,風扇的轉向控制采用一個典型的直流電機控制電路——H橋驅動電路來實現。
直流電機PWM調壓調速是指按一個固定的頻率來接通和斷開電源,并且根據需要改變一個周期內接通(高電平)和斷開(低電平)時間的長短,即調整所謂的“占空比”(占空比指高電平持續(xù)的時間與信號周期的比值)[6]。而占空比與一個周期內加在直流電機電樞上電壓的平均值成正比,占空比越大,一個周期內電壓的平均值越大,直流電機的轉速越快;反之,亦然。
H橋式直流電機轉向控制電路如圖1所示,它由4個三極管和一個電機組成。H橋上同側的兩個三極管不能同時導通,否則電流會從正極穿過兩個三極管(沒經其他任何負載)直接回到負極,電路電流會很大,甚至燒壞三極管。這就要靠H橋式直流電機轉向控制電路的外部驅動電路來實現[7-8],通過外部驅動電路保證在同一時刻只有對角線上的一對三極管能導通。根據不同三極管對的導通情況,電流可能會從左至右或從右至左流過電機,從而控制電機的轉向。
(1) 設計要求:能實現正反轉控制和3級風速調節(jié)。
(2) 設計思路:電路使用一個彈性按鍵S1來調整風扇的轉動方向,第一次按下該按鍵,電機正轉,第二次按下該按鍵,電機則反轉,第三次按下時回到第一次的電機正轉,依次反復。使用另一個彈性按鍵S2來調整風扇的轉速,風扇的轉速分為3檔:1檔(弱風)、2檔(正常風)、3檔(強風)。根據風速按鍵被按下的次數來循環(huán)選擇風速檔位,風扇控制系統(tǒng)電路如圖2所示。

圖1 H橋式直流電機轉向控制電路
風扇控制系統(tǒng)程序如下:
//程序:風扇控制系統(tǒng).c
//功能:風扇控制程序(實現三檔風速、正轉/反轉)
#include
#include
sbit DJA = P1^0; //電機控制A端
sbit DJB = P1^1; //電機控制B端
sbit S1=P3^2; //轉向按鍵連接P3.2引腳
sbit S2=P3^3; //風速按鍵連接P3.3引腳
bit flag; //轉向標志位,flag=0表示正轉,flag=1表示反轉
unsigned char number;//按下風速按鍵的次數
//函數名:delay
//函數功能:實現軟件延時
//形式參數:整型變量i,控制循環(huán)次數
//返回值:無
void delay (unsigned int i)
{
unsigned int k;
for(k=0;k
}
//函數名:pwm1
//函數功能:輸出占空比為30%的脈寬調制信號(正轉、弱風)
//形式參數:無
//返回值:無
void pwm1()
{
DJB=0;
DJA=1; //電機轉動
delay(720); //延時,調整電機轉動時長
DJA=0; //電機停轉
delay(1680); //延時,調整電機停轉的時長
}
//函數名:pwm2
//函數功能:輸出占空比為50%的脈寬調制信號(正轉、正常風)
//形式參數:無
//返回值:無
void pwm2()
{
DJB=0;
DJA=1; //電機轉動
delay(1250); //延時,調整電機轉動時長
DJA=0; //電機停轉
delay(1250); //延時,調整電機停轉的時長
}
//函數名:pwm3
//函數功能:輸出占空比為70%的脈寬調制信號(正轉、強風)
//形式參數:無
//返回值:無
void pwm3()
{
DJB=0;
DJA=1; //電機轉動
delay(1680); //延時, 電機轉動的時長
DJA=0; //電機停轉
delay(720); //延時,調整電機停轉時長
}
//函數名:pwm4
//函數功能:輸出占空比為30%的脈寬調制信號(反轉、弱風)
//形式參數:無
//返回值:無
void pwm4()
{
DJA=0;
DJB=1; //電機轉動
delay(720); //延時,調整電機轉動時長
DJB=0; //電機停轉
delay(1680); //延時,調整電機停轉的時長
}
//函數名:pwm5
//函數功能:輸出占空比為50%的脈寬調制信號(反轉、正常風)
//形式參數:無
//返回值:無
void pwm5()
{
DJA=0;
DJB=1; //電機轉動
delay(1250); //延時,調整電機轉動時長
DJB=0; //電機停轉
delay(1250); //延時,調整電機停轉的時長
}
//函數名:pwm6
//函數功能:輸出占空比為70%的脈寬調制信號(反轉、強風)
//形式參數:無
//返回值:無
void pwm6()
{
DJA=0;
DJB=1; //電機轉動
delay(1680); //延時,調整電機轉動的時長
DJB=0; //電機停轉
delay(720); //延時,調整電機停轉的時長
}
void main() //主函數
{
flag=0; //設置正轉標志位
number= 0x00; //風速檔置0,無風
DJA = 0; //電機停轉
DJB = 0;
while(1)
{
if(S1==0) //第一次檢測到轉向開關S1按下
{ delay(1200); //延時10 ms左右去抖動
if(S1==0) //再次檢測到S1按下
{
while(!S1); //等待S1鍵釋放
flag=~flag; //改變轉向標志位,反轉
}
}
if(S2==0) //第一次檢測到風速開關S2按下
{ delay(1200); //延時10ms左右去抖動
if(S2==0) //再次檢測到S2按下
{
while(!S2); //等待S2鍵釋放
if (number<=3) //判斷風速檔位是否強風檔
number++; //沒到強風檔位則風速加速
else
number=0x01; //已經是強風檔位則風速回到弱風檔位
}
}
if(!flag) //正轉
{
switch(number)
{
case 0x01: pwm1();break; //風速1檔,弱風
case 0x02: pwm2();break; //風速2檔,正常風
case 0x03: pwm3();break; //風速3檔,強風
default: ;
}
}
else //反轉
{
switch(number)
{
case 0x01: pwm4();break; //風速1檔,弱風
case 0x02: pwm5();break; //風速2檔,正常風
case 0x03: pwm6();break; //風速3檔,強風
default: ;
}
}
}
}
通過Keil C51和Proteus兩個工程專業(yè)軟件對本文設計的風扇控制系統(tǒng)進行軟硬件調試和仿真[9-10],證明本文中風扇控制系統(tǒng)的電路設計及程序設計能滿足風扇控制系統(tǒng)調速和轉向控制的要求。

圖2 風扇控制系統(tǒng)電路
參考文獻:
[1]范靈芝.基于單片機的無線溫控電風扇調速器設計[J].通信市場,2009(3):321-325.
[2]韓興國,蘇慶勇,王為慶.基于STC89C52單片機的智能風扇控制系統(tǒng)設計[J].裝備制造技術,2013(3):52-54.
[3]王冬星.風扇智能控制系統(tǒng)設計[J].智能計算機與應用,2008(6):12-13.
[4]丁建軍,陳定方,周國柱.基于AT89C5l的智能電風扇控制系統(tǒng)[J].湖北工業(yè)大學學報,2003,18(2):60-61.
[5]陳磊,魏鑫,魏林心.基于單片機的智能風扇控制系統(tǒng)設計[J].電子世界,2016(5):29-30.
[6]李維軍,韓小剛,李晉.基于單片機用軟件實現直流電機PWM調速系統(tǒng)[J].機電一體化,2004,10(5):49-51.
[7]謝圣昌,肖樂明.一種H橋式驅動電路的設計[J].廣州航海學院學報,2016,24(3):36-38.
[8]劉亞鋒,李奎,叱光輝.一種控制直流電機轉向的控制器設計[J].機電元件,2014(4):3-6.
[9]徐磊,申紅軍,蔡亞永.單片機開發(fā)Keil C51與Proteus仿真聯合應用研究[J].電子設計工程,2013,21(17):178-181.
[10] 于博,楊曉慶.基于Keil C51與Proteus仿真聯合的單片機應用研究[J].軟件工程師,2015,18(9):51-52.