李 瑾
(晉中職業(yè)技術(shù)學(xué)院 機(jī)電工程系,山西 晉中 030600)
相對(duì)于空調(diào)等高技術(shù)制冷設(shè)備而言,電風(fēng)扇具有風(fēng)力溫和、節(jié)能、價(jià)格低廉、操控簡(jiǎn)單和便于移動(dòng)等優(yōu)點(diǎn),在生活中扮演著重要的“角色”[1-2]。當(dāng)前,電風(fēng)扇的調(diào)速控制系統(tǒng)種類(lèi)較多,但此系統(tǒng)較復(fù)雜和昂貴[3-5]。本文設(shè)計(jì)的風(fēng)扇控制系統(tǒng)不僅可以調(diào)整風(fēng)扇的轉(zhuǎn)動(dòng)速度,還可以調(diào)整風(fēng)扇的轉(zhuǎn)動(dòng)方向。風(fēng)扇的轉(zhuǎn)速控制采用PWM調(diào)壓調(diào)速來(lái)實(shí)現(xiàn),風(fēng)扇的轉(zhuǎn)向控制采用一個(gè)典型的直流電機(jī)控制電路——H橋驅(qū)動(dòng)電路來(lái)實(shí)現(xiàn)。
直流電機(jī)PWM調(diào)壓調(diào)速是指按一個(gè)固定的頻率來(lái)接通和斷開(kāi)電源,并且根據(jù)需要改變一個(gè)周期內(nèi)接通(高電平)和斷開(kāi)(低電平)時(shí)間的長(zhǎng)短,即調(diào)整所謂的“占空比”(占空比指高電平持續(xù)的時(shí)間與信號(hào)周期的比值)[6]。而占空比與一個(gè)周期內(nèi)加在直流電機(jī)電樞上電壓的平均值成正比,占空比越大,一個(gè)周期內(nèi)電壓的平均值越大,直流電機(jī)的轉(zhuǎn)速越快;反之,亦然。
H橋式直流電機(jī)轉(zhuǎn)向控制電路如圖1所示,它由4個(gè)三極管和一個(gè)電機(jī)組成。H橋上同側(cè)的兩個(gè)三極管不能同時(shí)導(dǎo)通,否則電流會(huì)從正極穿過(guò)兩個(gè)三極管(沒(méi)經(jīng)其他任何負(fù)載)直接回到負(fù)極,電路電流會(huì)很大,甚至燒壞三極管。這就要靠H橋式直流電機(jī)轉(zhuǎn)向控制電路的外部驅(qū)動(dòng)電路來(lái)實(shí)現(xiàn)[7-8],通過(guò)外部驅(qū)動(dòng)電路保證在同一時(shí)刻只有對(duì)角線上的一對(duì)三極管能導(dǎo)通。根據(jù)不同三極管對(duì)的導(dǎo)通情況,電流可能會(huì)從左至右或從右至左流過(guò)電機(jī),從而控制電機(jī)的轉(zhuǎn)向。
(1) 設(shè)計(jì)要求:能實(shí)現(xiàn)正反轉(zhuǎn)控制和3級(jí)風(fēng)速調(diào)節(jié)。
(2) 設(shè)計(jì)思路:電路使用一個(gè)彈性按鍵S1來(lái)調(diào)整風(fēng)扇的轉(zhuǎn)動(dòng)方向,第一次按下該按鍵,電機(jī)正轉(zhuǎn),第二次按下該按鍵,電機(jī)則反轉(zhuǎn),第三次按下時(shí)回到第一次的電機(jī)正轉(zhuǎn),依次反復(fù)。使用另一個(gè)彈性按鍵S2來(lái)調(diào)整風(fēng)扇的轉(zhuǎn)速,風(fēng)扇的轉(zhuǎn)速分為3檔:1檔(弱風(fēng))、2檔(正常風(fēng))、3檔(強(qiáng)風(fēng))。根據(jù)風(fēng)速按鍵被按下的次數(shù)來(lái)循環(huán)選擇風(fēng)速檔位,風(fēng)扇控制系統(tǒng)電路如圖2所示。
圖1 H橋式直流電機(jī)轉(zhuǎn)向控制電路
風(fēng)扇控制系統(tǒng)程序如下:
//程序:風(fēng)扇控制系統(tǒng).c
//功能:風(fēng)扇控制程序(實(shí)現(xiàn)三檔風(fēng)速、正轉(zhuǎn)/反轉(zhuǎn))
#include
#include
sbit DJA = P1^0; //電機(jī)控制A端
sbit DJB = P1^1; //電機(jī)控制B端
sbit S1=P3^2; //轉(zhuǎn)向按鍵連接P3.2引腳
sbit S2=P3^3; //風(fēng)速按鍵連接P3.3引腳
bit flag; //轉(zhuǎn)向標(biāo)志位,flag=0表示正轉(zhuǎn),flag=1表示反轉(zhuǎn)
unsigned char number;//按下風(fēng)速按鍵的次數(shù)
//函數(shù)名:delay
//函數(shù)功能:實(shí)現(xiàn)軟件延時(shí)
//形式參數(shù):整型變量i,控制循環(huán)次數(shù)
//返回值:無(wú)
void delay (unsigned int i)
{
unsigned int k;
for(k=0;k
}
//函數(shù)名:pwm1
//函數(shù)功能:輸出占空比為30%的脈寬調(diào)制信號(hào)(正轉(zhuǎn)、弱風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm1()
{
DJB=0;
DJA=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(720); //延時(shí),調(diào)整電機(jī)轉(zhuǎn)動(dòng)時(shí)長(zhǎng)
DJA=0; //電機(jī)停轉(zhuǎn)
delay(1680); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)的時(shí)長(zhǎng)
}
//函數(shù)名:pwm2
//函數(shù)功能:輸出占空比為50%的脈寬調(diào)制信號(hào)(正轉(zhuǎn)、正常風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm2()
{
DJB=0;
DJA=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(1250); //延時(shí),調(diào)整電機(jī)轉(zhuǎn)動(dòng)時(shí)長(zhǎng)
DJA=0; //電機(jī)停轉(zhuǎn)
delay(1250); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)的時(shí)長(zhǎng)
}
//函數(shù)名:pwm3
//函數(shù)功能:輸出占空比為70%的脈寬調(diào)制信號(hào)(正轉(zhuǎn)、強(qiáng)風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm3()
{
DJB=0;
DJA=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(1680); //延時(shí), 電機(jī)轉(zhuǎn)動(dòng)的時(shí)長(zhǎng)
DJA=0; //電機(jī)停轉(zhuǎn)
delay(720); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)時(shí)長(zhǎng)
}
//函數(shù)名:pwm4
//函數(shù)功能:輸出占空比為30%的脈寬調(diào)制信號(hào)(反轉(zhuǎn)、弱風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm4()
{
DJA=0;
DJB=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(720); //延時(shí),調(diào)整電機(jī)轉(zhuǎn)動(dòng)時(shí)長(zhǎng)
DJB=0; //電機(jī)停轉(zhuǎn)
delay(1680); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)的時(shí)長(zhǎng)
}
//函數(shù)名:pwm5
//函數(shù)功能:輸出占空比為50%的脈寬調(diào)制信號(hào)(反轉(zhuǎn)、正常風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm5()
{
DJA=0;
DJB=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(1250); //延時(shí),調(diào)整電機(jī)轉(zhuǎn)動(dòng)時(shí)長(zhǎng)
DJB=0; //電機(jī)停轉(zhuǎn)
delay(1250); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)的時(shí)長(zhǎng)
}
//函數(shù)名:pwm6
//函數(shù)功能:輸出占空比為70%的脈寬調(diào)制信號(hào)(反轉(zhuǎn)、強(qiáng)風(fēng))
//形式參數(shù):無(wú)
//返回值:無(wú)
void pwm6()
{
DJA=0;
DJB=1; //電機(jī)轉(zhuǎn)動(dòng)
delay(1680); //延時(shí),調(diào)整電機(jī)轉(zhuǎn)動(dòng)的時(shí)長(zhǎng)
DJB=0; //電機(jī)停轉(zhuǎn)
delay(720); //延時(shí),調(diào)整電機(jī)停轉(zhuǎn)的時(shí)長(zhǎng)
}
void main() //主函數(shù)
{
flag=0; //設(shè)置正轉(zhuǎn)標(biāo)志位
number= 0x00; //風(fēng)速檔置0,無(wú)風(fēng)
DJA = 0; //電機(jī)停轉(zhuǎn)
DJB = 0;
while(1)
{
if(S1==0) //第一次檢測(cè)到轉(zhuǎn)向開(kāi)關(guān)S1按下
{ delay(1200); //延時(shí)10 ms左右去抖動(dòng)
if(S1==0) //再次檢測(cè)到S1按下
{
while(!S1); //等待S1鍵釋放
flag=~flag; //改變轉(zhuǎn)向標(biāo)志位,反轉(zhuǎn)
}
}
if(S2==0) //第一次檢測(cè)到風(fēng)速開(kāi)關(guān)S2按下
{ delay(1200); //延時(shí)10ms左右去抖動(dòng)
if(S2==0) //再次檢測(cè)到S2按下
{
while(!S2); //等待S2鍵釋放
if (number<=3) //判斷風(fēng)速檔位是否強(qiáng)風(fēng)檔
number++; //沒(méi)到強(qiáng)風(fēng)檔位則風(fēng)速加速
else
number=0x01; //已經(jīng)是強(qiáng)風(fēng)檔位則風(fēng)速回到弱風(fēng)檔位
}
}
if(!flag) //正轉(zhuǎn)
{
switch(number)
{
case 0x01: pwm1();break; //風(fēng)速1檔,弱風(fēng)
case 0x02: pwm2();break; //風(fēng)速2檔,正常風(fēng)
case 0x03: pwm3();break; //風(fēng)速3檔,強(qiáng)風(fēng)
default: ;
}
}
else //反轉(zhuǎn)
{
switch(number)
{
case 0x01: pwm4();break; //風(fēng)速1檔,弱風(fēng)
case 0x02: pwm5();break; //風(fēng)速2檔,正常風(fēng)
case 0x03: pwm6();break; //風(fēng)速3檔,強(qiáng)風(fēng)
default: ;
}
}
}
}
通過(guò)Keil C51和Proteus兩個(gè)工程專業(yè)軟件對(duì)本文設(shè)計(jì)的風(fēng)扇控制系統(tǒng)進(jìn)行軟硬件調(diào)試和仿真[9-10],證明本文中風(fēng)扇控制系統(tǒng)的電路設(shè)計(jì)及程序設(shè)計(jì)能滿足風(fēng)扇控制系統(tǒng)調(diào)速和轉(zhuǎn)向控制的要求。
圖2 風(fēng)扇控制系統(tǒng)電路
參考文獻(xiàn):
[1]范靈芝.基于單片機(jī)的無(wú)線溫控電風(fēng)扇調(diào)速器設(shè)計(jì)[J].通信市場(chǎng),2009(3):321-325.
[2]韓興國(guó),蘇慶勇,王為慶.基于STC89C52單片機(jī)的智能風(fēng)扇控制系統(tǒng)設(shè)計(jì)[J].裝備制造技術(shù),2013(3):52-54.
[3]王冬星.風(fēng)扇智能控制系統(tǒng)設(shè)計(jì)[J].智能計(jì)算機(jī)與應(yīng)用,2008(6):12-13.
[4]丁建軍,陳定方,周?chē)?guó)柱.基于AT89C5l的智能電風(fēng)扇控制系統(tǒng)[J].湖北工業(yè)大學(xué)學(xué)報(bào),2003,18(2):60-61.
[5]陳磊,魏鑫,魏林心.基于單片機(jī)的智能風(fēng)扇控制系統(tǒng)設(shè)計(jì)[J].電子世界,2016(5):29-30.
[6]李維軍,韓小剛,李晉.基于單片機(jī)用軟件實(shí)現(xiàn)直流電機(jī)PWM調(diào)速系統(tǒng)[J].機(jī)電一體化,2004,10(5):49-51.
[7]謝圣昌,肖樂(lè)明.一種H橋式驅(qū)動(dòng)電路的設(shè)計(jì)[J].廣州航海學(xué)院學(xué)報(bào),2016,24(3):36-38.
[8]劉亞鋒,李奎,叱光輝.一種控制直流電機(jī)轉(zhuǎn)向的控制器設(shè)計(jì)[J].機(jī)電元件,2014(4):3-6.
[9]徐磊,申紅軍,蔡亞永.單片機(jī)開(kāi)發(fā)Keil C51與Proteus仿真聯(lián)合應(yīng)用研究[J].電子設(shè)計(jì)工程,2013,21(17):178-181.
[10] 于博,楊曉慶.基于Keil C51與Proteus仿真聯(lián)合的單片機(jī)應(yīng)用研究[J].軟件工程師,2015,18(9):51-52.