陳梨芳
基于Arduino的多功能溫控風(fēng)扇系統(tǒng)設(shè)計(jì)
陳梨芳
(福建經(jīng)濟(jì)學(xué)校 電子工程教研組,福建 福州 350003)
為了滿足人們對(duì)風(fēng)扇的多重使用需求,根據(jù)目前風(fēng)扇在使用過(guò)程中出現(xiàn)的操作不靈活、耗能大、風(fēng)速無(wú)法隨溫度變化自動(dòng)調(diào)節(jié)等實(shí)際情況,保留傳統(tǒng)風(fēng)扇按鍵擋位調(diào)節(jié)風(fēng)速功能,增加配置Arduino控制器及外圍電路,實(shí)現(xiàn)風(fēng)扇多功能控制設(shè)計(jì)要求。多功能溫控風(fēng)扇系統(tǒng)有兩種工作模式,默認(rèn)為溫控自動(dòng)調(diào)速模式,該模式下Arduino控制器根據(jù)環(huán)境溫度及周?chē)藛T活動(dòng)情況控制PWM引腳輸出不同的脈沖寬度以驅(qū)動(dòng)風(fēng)扇不同的轉(zhuǎn)速。系統(tǒng)調(diào)試表明,該風(fēng)扇系統(tǒng)可在紅外檢測(cè)距離4m之內(nèi)、溫度25~40℃之內(nèi)自動(dòng)準(zhǔn)確調(diào)節(jié)風(fēng)速,滿足設(shè)計(jì)要求。經(jīng)過(guò)改造后的多功能溫控風(fēng)扇系統(tǒng)造價(jià)成本低、操作靈活,對(duì)于滿足人們多樣化生活需求和節(jié)能減排社會(huì)要求具有積極的應(yīng)用價(jià)值。
Arduino;人體感應(yīng);溫控調(diào)速;PWM脈沖寬度調(diào)制
隨著電子技術(shù)的飛速發(fā)展和人們生活水平的不斷提高,城市以及大部分鄉(xiāng)鎮(zhèn)地區(qū)都已經(jīng)用上空調(diào)了,而農(nóng)村地區(qū)特別是有老人的家庭還在大面積使用風(fēng)扇。在科技的帶動(dòng)下,家用電器功能越來(lái)越智能化,而傳統(tǒng)的風(fēng)扇雖然也在不斷地經(jīng)歷著技術(shù)革新,但仍然無(wú)法滿足人們現(xiàn)代化生活需求。目前,市面上常見(jiàn)的風(fēng)扇操作模式主要有兩種類型:純手動(dòng)按鍵選擇風(fēng)速的人工操作模式,以及遙控器遙控加手動(dòng)按鍵選擇風(fēng)速的智能操作模式。用戶在使用這兩種風(fēng)扇過(guò)程中都有一些共同的感受:風(fēng)扇的風(fēng)速無(wú)法隨著周?chē)h(huán)境溫度的變化而自我調(diào)節(jié),引發(fā)諸如在炎熱的夏季上半夜因風(fēng)扇風(fēng)速較小而無(wú)法很好地入睡,而在氣溫較低的下半夜因風(fēng)扇風(fēng)速過(guò)大容易著涼感冒等問(wèn)題[1];經(jīng)常忘記關(guān)閉風(fēng)扇,使風(fēng)扇長(zhǎng)時(shí)間開(kāi)著,既不安全也造成電能資源的浪費(fèi)。
已有關(guān)于溫控風(fēng)扇系統(tǒng)的研究主要集中在基于STM、STC或51系列單片機(jī)開(kāi)發(fā)設(shè)計(jì)。如楊秀秀和晏菁[2]選用STM系列單片機(jī),配合溫度檢測(cè)傳感器、液晶顯示器、按鍵、供電電源等外圍設(shè)備,研究開(kāi)發(fā)出多功能溫控風(fēng)扇系統(tǒng)。鮑夢(mèng)[3]在分析傳統(tǒng)風(fēng)扇的噪聲大、耗能高、手工操作不靈活等缺陷的基礎(chǔ)上,結(jié)合人工智能技術(shù),以STC單片機(jī)為微控制器,將溫度采集模塊采集到的溫度及人體感應(yīng)模塊檢測(cè)到的人員活動(dòng)情況信息反饋給微控制器,以實(shí)現(xiàn)對(duì)風(fēng)扇開(kāi)啟及溫度的自動(dòng)調(diào)控。
在借鑒各種風(fēng)扇技術(shù)的基礎(chǔ)上,針對(duì)目前風(fēng)扇在使用過(guò)程中出現(xiàn)的功能簡(jiǎn)單、耗能過(guò)大以及不夠靈活等諸多問(wèn)題,本文提出了新的風(fēng)扇設(shè)計(jì)思路——基于Arduino的多功能溫控風(fēng)扇系統(tǒng)。該設(shè)計(jì)保留傳統(tǒng)風(fēng)扇手動(dòng)按鍵調(diào)節(jié)風(fēng)速的需求,增加環(huán)境溫度檢測(cè)及風(fēng)扇智能調(diào)控功能,可根據(jù)用戶自身體感溫度需求,便捷智能地設(shè)置溫度閾值,既讓用戶處于最舒適的狀態(tài)也符合當(dāng)前社會(huì)環(huán)保節(jié)能的要求。
在設(shè)計(jì)多功能溫控風(fēng)扇系統(tǒng)時(shí),鑒于老年人是構(gòu)成風(fēng)扇用戶的龐大群體,結(jié)合老年人生活習(xí)慣,傳統(tǒng)的按鍵擋位調(diào)節(jié)風(fēng)扇風(fēng)速加于保留。增加配置Arduino控制器及外圍電路的多功能溫控風(fēng)扇系統(tǒng),根據(jù)周?chē)h(huán)境溫度的不同,由Arduino控制器調(diào)控PWM引腳輸出不同脈沖寬度,實(shí)現(xiàn)對(duì)風(fēng)扇電機(jī)轉(zhuǎn)速的控制;較傳統(tǒng)風(fēng)扇增加了風(fēng)扇轉(zhuǎn)速智能控制功能,實(shí)現(xiàn)了對(duì)風(fēng)扇手動(dòng)調(diào)速、智能溫控的多重使用需求。
圖1是基于Arduino的多功能溫控風(fēng)扇系統(tǒng)架構(gòu)圖。其主要由Arduino控制器、溫度檢測(cè)模塊、液晶顯示模塊、人體熱釋電紅外感應(yīng)模塊、風(fēng)扇電機(jī)驅(qū)動(dòng)模塊和按鍵模塊組成。該風(fēng)扇有兩種工作模式,即手動(dòng)按鍵調(diào)速模式及溫控自動(dòng)調(diào)速模式。手動(dòng)按鍵調(diào)速模式下,風(fēng)扇有三個(gè)風(fēng)速擋位,用戶可根據(jù)自己的需求選擇相應(yīng)的按鍵擋位固定風(fēng)速。溫控自動(dòng)調(diào)速模式下,系統(tǒng)首先探測(cè)有效距離范圍內(nèi)是否有人員活動(dòng),其次檢測(cè)實(shí)時(shí)環(huán)境溫度,從而控制風(fēng)扇的自動(dòng)開(kāi)啟或關(guān)閉,且風(fēng)扇電機(jī)的轉(zhuǎn)速按照程序預(yù)先設(shè)定好的溫度區(qū)間自動(dòng)調(diào)節(jié)[4]。默認(rèn)情況下,系統(tǒng)處于溫控自動(dòng)調(diào)速模式,用戶可以通過(guò)手動(dòng)按鍵使系統(tǒng)進(jìn)入手動(dòng)按鍵調(diào)速模式,手動(dòng)按鍵調(diào)速模式工作一段時(shí)間后,系統(tǒng)將自動(dòng)切換到自動(dòng)調(diào)速模式,避免了因人為忘記關(guān)閉風(fēng)扇而造成的電能資源浪費(fèi)。
圖1 基于Arduino的多功能溫控風(fēng)扇系統(tǒng)架構(gòu)圖
多功能溫控風(fēng)扇系統(tǒng)采用Arduino UNO作為主控制器。首先,通過(guò)LM35DZ溫度傳感器實(shí)時(shí)檢測(cè)當(dāng)前環(huán)境溫度,并將檢測(cè)到的溫度數(shù)據(jù)顯示在1602 LCD液晶顯示器上。然后,檢測(cè)手動(dòng)按鍵是否被按下。如果按鍵被按下,則風(fēng)扇啟動(dòng)手動(dòng)按鍵調(diào)速模式,在手動(dòng)按鍵調(diào)速模式下設(shè)置三個(gè)按鍵供用戶選擇三個(gè)不同的風(fēng)速擋位;如果按鍵沒(méi)有被按下,則風(fēng)扇啟動(dòng)溫控自動(dòng)調(diào)速模式,并通過(guò)HC-SR501人體熱釋電紅外傳感器檢測(cè)風(fēng)扇的有效距離范圍內(nèi)人員活動(dòng)情況以實(shí)現(xiàn)電路的自動(dòng)通斷,當(dāng)檢測(cè)到有人員活動(dòng)時(shí),再根據(jù)當(dāng)前環(huán)境溫度匹配不同的溫度區(qū)間輸出4個(gè)不同的PWM脈沖寬度以驅(qū)動(dòng)風(fēng)扇直流電機(jī)不同的轉(zhuǎn)速。最后,無(wú)論風(fēng)扇是處于手動(dòng)按鍵調(diào)速模式還是溫控自動(dòng)調(diào)速模式,經(jīng)過(guò)一段時(shí)間后都將切換到溫控自動(dòng)調(diào)速模式。
Arduino硬件發(fā)展至今,已推出多種型號(hào)控制器,根據(jù)多功能溫控風(fēng)扇系統(tǒng)設(shè)計(jì)需求,選擇目前使用最廣泛的Arduino UNO為系統(tǒng)控制器。此控制器采用Atmel 公司的ATmega328處理器作為主控單元,可通過(guò)USB接口、DC電源輸入接口以及電源接口三種方式供電,1個(gè)復(fù)位按鍵,14個(gè)數(shù)字輸入/輸出端口,6個(gè)模擬輸入端口,容量分別為32KB、2KB、1KB的Flash、SRAM、EEPROM三種存儲(chǔ)空間,采用串口、SPI以及IIC三種常見(jiàn)的通信方式連接外部設(shè)備形成相應(yīng)的串行通信模式[5]。圖2是Arduino UNO控制器及外圍電路連接示意圖,通過(guò)USB接口給Arduino UNO控制器提供+5V直流電源,由Arduino UNO統(tǒng)一管理外圍功能模塊,以實(shí)現(xiàn)環(huán)境溫度采集及顯示、有效距離范圍內(nèi)人員活動(dòng)情況檢測(cè)、風(fēng)扇轉(zhuǎn)速控制以及工作模式切換等功能。
圖2 系統(tǒng)連接示意圖
人體熱釋電紅外傳感器是一種對(duì)人體發(fā)射出的紅外線高度敏感的傳感器,本設(shè)計(jì)采用HC-SR501人體熱釋電紅外傳感器來(lái)檢測(cè)周?chē)h(huán)境是否有人員活動(dòng)。該傳感器為全自動(dòng)感應(yīng)模式,工作電壓在4.5~20V,靜態(tài)電流不超過(guò)50 uA,輸出3.3V的高電平或0V的低電平,通過(guò)跳線可選擇重復(fù)觸發(fā)方式和不可重復(fù)觸發(fā)方式兩種之一,感應(yīng)角度達(dá)100°,檢測(cè)范圍在3~7m[6]。當(dāng)有人員在檢測(cè)范圍內(nèi)活動(dòng)時(shí),模塊一直輸出高電平脈沖信號(hào),當(dāng)無(wú)人員在檢測(cè)范圍內(nèi)活動(dòng)時(shí),模塊保持輸出低電平。在電路中,Arduino控制器的2號(hào)引腳與HC-SR501的OUT引腳相連,接收人體熱釋電紅外傳感器輸出的脈沖信號(hào)。
溫度檢測(cè)模塊采用LM35DZ傳感器,其檢測(cè)范圍為0℃~100℃,工作電壓在4~30V,工作電流為133 uA,檢測(cè)精度可達(dá)±0.5℃。該溫度傳感器輸出電壓與攝氏溫度值呈線性變化趨勢(shì),線性相關(guān)系數(shù)為10.0mV/℃,即溫度每上升1℃,輸出電壓上升10mV,使用式(1)可以將從Arduino模擬輸入口讀取的LM35DZ傳感器輸出的模擬電壓值換算為當(dāng)前環(huán)境對(duì)應(yīng)的攝氏溫度值。
Temp=(5.0′analogRead(LM35DZ)′100.0)/1024 (1)
LM35DZ有3個(gè)引腳,分別為VCC、OUT和GND,其中VCC引腳與Arduino的5V電源引腳相連,GND引腳與Arduino的地引腳相連,OUT引腳與Arduino的模擬輸入I/O口A0相連,將檢測(cè)到的溫度轉(zhuǎn)換成模擬電壓值傳遞給Arduino控制器。
顯示模塊選用并口液晶顯示器1602 LCD進(jìn)行溫度顯示,該顯示器顯示屏幕分兩行,每行最多可以呈現(xiàn)16個(gè)字符。1602 LCD液晶顯示器通過(guò)LiquidCrystal類庫(kù)提供的API可以很方便地顯示英文字母和一些符號(hào),采用5V電源供電,具有兩種接線方式,即4位數(shù)據(jù)線接法和8位數(shù)據(jù)線接法,常見(jiàn)的1602 LCD有16個(gè)引腳,具體各引腳與Arduino控制器的連接情況見(jiàn)表1。
表1 1602 LCD液晶顯示器引腳說(shuō)明
多功能溫控風(fēng)扇系統(tǒng)中風(fēng)扇電機(jī)驅(qū)動(dòng)電路運(yùn)用PWM脈沖寬度調(diào)制原理,由Arduino控制器輸出不同的PWM脈沖寬度實(shí)現(xiàn)對(duì)電機(jī)速度的控制。由于Arduino引腳輸出的電流不足以驅(qū)動(dòng)風(fēng)扇電機(jī)的轉(zhuǎn)動(dòng),所以需要一個(gè)三極管放大Arduino引腳輸出的電流信號(hào),以驅(qū)動(dòng)風(fēng)扇電機(jī)。風(fēng)扇電機(jī)驅(qū)動(dòng)電路如圖3所示,三極管9013的基極通過(guò)1kΩ電阻連接到Arduino具有PWM功能的3號(hào)引腳,二極管吸收電機(jī)線圈產(chǎn)生的反向電壓,防止三極管受到反向電壓沖擊而損壞;同時(shí)電容吸收電機(jī)電刷接通和關(guān)閉時(shí)產(chǎn)生的反向電壓,進(jìn)一步保護(hù)三極管[7]。
圖3 風(fēng)扇電機(jī)驅(qū)動(dòng)模塊電路圖
本系統(tǒng)設(shè)有3個(gè)獨(dú)立按鍵S1、S2、S3,3個(gè)按鍵的一端分別連接到Arduino控制器的4、5、6引腳,另一端接地。3個(gè)獨(dú)立按鍵均未接上拉電阻,而是將與之相連的Arduino控制器I/O口設(shè)置為輸入上拉模式,使用該引腳內(nèi)部的上拉電阻,等效于在電源與該引腳之間接入一個(gè)阻值為20kΩ~50kΩ的電阻,以簡(jiǎn)化硬件電路設(shè)計(jì)。當(dāng)S1按下時(shí),系統(tǒng)進(jìn)入手動(dòng)按鍵調(diào)速模式,同時(shí)風(fēng)扇電機(jī)中速運(yùn)轉(zhuǎn);當(dāng)S2按下時(shí),風(fēng)扇電機(jī)低速運(yùn)轉(zhuǎn);當(dāng)S3按下時(shí),風(fēng)扇電機(jī)高速運(yùn)轉(zhuǎn)。
系統(tǒng)軟件設(shè)計(jì)使用Arduino IDE集成開(kāi)發(fā)環(huán)境,代碼編寫(xiě)使用C/C++語(yǔ)言。系統(tǒng)程序流程圖(圖4),包括系統(tǒng)初始化、溫度檢測(cè)、液晶顯示、按鍵掃描、人體感應(yīng)以及風(fēng)扇電機(jī)轉(zhuǎn)速控制等部分。
圖4 系統(tǒng)程序流程圖
溫度采集及顯示設(shè)計(jì)包含溫度檢測(cè)傳感器、Arduino控制器以及液晶顯示器。首先,通過(guò)溫度傳感器LM35DZ檢測(cè)當(dāng)前環(huán)境溫度;接著,Arduino控制器通過(guò)模擬輸入端口A0讀取LM35DZ傳感器輸出的模擬電壓值,并通過(guò)相應(yīng)的轉(zhuǎn)換公式換算為對(duì)應(yīng)的當(dāng)前溫度;最后,將當(dāng)前溫度輸出到液晶顯示器1602 LCD進(jìn)行顯示。溫度采集及顯示程序如下:
//讀取溫度傳感器模擬值,并計(jì)算出當(dāng)前溫度
float temp=(5.0*analogRead(A0)*100.0)/1024;
//串口輸出溫度
Serial.print("Tempeature: ");
Serial.print(temp);
Serial.println('c');
//在LCD上顯示溫度
lcd.setCursor(0,0);
lcd.print("Tempeature:");
lcd.print(temp);
在手動(dòng)按鍵調(diào)速模式啟動(dòng)開(kāi)關(guān)S1沒(méi)有被按下情況下,系統(tǒng)默認(rèn)進(jìn)入溫控自動(dòng)調(diào)速模式。
3.2.1 PWM脈沖寬度調(diào)制
生活中接觸的大部分信號(hào)都是模擬信號(hào),如語(yǔ)音、溫度、壓力以及電流的變化等。在Arduino中,用0~5V的電壓表示模擬信號(hào)。對(duì)于模擬輸入功能,Arduino控制器通過(guò)A0,A1,…,A5這6個(gè)模擬輸入引腳使用analogRead(pin)函數(shù)進(jìn)行處理;對(duì)于模擬輸出功能,由analogWrite(pin,value)函數(shù)進(jìn)行處理,函數(shù)中參數(shù)pin表示PWM引腳,參數(shù)value表示PWM脈沖寬度,取值范圍為0~255。analogWrite(pin,value)函數(shù)輸出的值并不是真正意義上的模擬值,而是采用PWM(Pulse Width Modulation)脈沖寬度調(diào)制方式來(lái)達(dá)到輸出模擬值的效果。
PWM是對(duì)模擬電路采用數(shù)字技術(shù)加以控制從而輸出模擬量的脈沖寬度調(diào)制技術(shù)。通過(guò)數(shù)字技術(shù)控制逆變電路中開(kāi)關(guān)通斷的時(shí)間,使PWM引腳輸出一個(gè)個(gè)高低電平不斷轉(zhuǎn)換的周期固定而高低電平持續(xù)時(shí)間不等的方波信號(hào)。通過(guò)改變高電平(開(kāi)關(guān)閉合)與低電平(開(kāi)關(guān)斷開(kāi))在一個(gè)方波周期內(nèi)所持續(xù)時(shí)間的比例即占空比,就得到一個(gè)0~5V的近似模擬電壓值[8]。
圖5 PWM輸出波形及對(duì)應(yīng)電壓示意圖
結(jié)合圖5,可以直觀地看出PWM輸出的波形圖與輸出電壓值之間的對(duì)應(yīng)關(guān)系。T表示方波的周期,在一個(gè)方波周期內(nèi),當(dāng)占空比為25%時(shí),analogWrite (pin,value)函數(shù)中的value參數(shù)為64,對(duì)應(yīng)的輸出電壓值為1.25V;當(dāng)占空比為50%時(shí),value參數(shù)為127,對(duì)應(yīng)的輸出電壓值為2.5V;當(dāng)占空比為75%時(shí),value參數(shù)為191,對(duì)應(yīng)的輸出電壓值為3.75V;當(dāng)占空比為100%時(shí),value參數(shù)為255,對(duì)應(yīng)的輸出電壓值為5V。
3.2.2 溫控自動(dòng)調(diào)速程序設(shè)計(jì)
當(dāng)系統(tǒng)進(jìn)入溫控自動(dòng)調(diào)速模式后,首先通過(guò)人體熱釋電紅外感應(yīng)模塊判斷檢測(cè)范圍內(nèi)是否有人員出沒(méi),如果沒(méi)有感應(yīng)到人員活動(dòng),則處于等待狀態(tài);如果感應(yīng)到有人員活動(dòng),則進(jìn)一步判斷周?chē)h(huán)境溫度是否處于設(shè)定區(qū)間,最后根據(jù)周?chē)鷮?shí)時(shí)環(huán)境溫度進(jìn)行風(fēng)扇電機(jī)調(diào)速。根據(jù)當(dāng)前環(huán)境溫度進(jìn)行風(fēng)扇電機(jī)調(diào)速程序流程如圖6所示。
圖6 溫控自動(dòng)調(diào)速流程圖
系統(tǒng)是通過(guò)掃描手動(dòng)按鍵調(diào)速模式啟動(dòng)開(kāi)關(guān)S1來(lái)選擇工作模式,如果手動(dòng)按鈕S1被按下,系統(tǒng)將進(jìn)入手動(dòng)按鍵調(diào)速模式,手動(dòng)按鍵調(diào)速模式運(yùn)行5分鐘后,系統(tǒng)將自動(dòng)切換到自動(dòng)模式,避免使用者在手動(dòng)模式下忘記關(guān)閉風(fēng)扇而引起諸多安全隱患及電能浪費(fèi)現(xiàn)象。手動(dòng)按鍵調(diào)速程序分為兩部分,即按鍵去抖檢測(cè)和根據(jù)所選按鍵擋位調(diào)節(jié)風(fēng)扇電機(jī)轉(zhuǎn)速。
3.3.1 按鍵去抖檢測(cè)
在按鍵被按下或松開(kāi)的瞬間,由于按鍵接觸點(diǎn)反彈產(chǎn)生雜散信號(hào),使按鍵輸出信號(hào)不會(huì)馬上由高電平變低電平或由低電平變高電平,會(huì)伴隨短暫的抖動(dòng)過(guò)程,這種因按鍵機(jī)械抖動(dòng)現(xiàn)象而產(chǎn)生的錯(cuò)誤讀數(shù)將通過(guò)運(yùn)用相關(guān)軟件去解決。軟件解決按鍵機(jī)械抖動(dòng)問(wèn)題程序如下:
function keyDebounce(pin:integer):boolean
var state:boolean;
var previousState:boolean;
begin
previousState<—digitalRead(pin);
for counter:=0 to debounceDelayTime do
begin
delay(1);
state<—digitalRead(pin);
if state!=previousState then
begin
counter<—0; △如果開(kāi)關(guān)狀態(tài)發(fā)生變化,計(jì)數(shù)器復(fù)位
previousState<—state;
end;
end;
if state=LOW then
return true;
else
return false;
end;
去抖動(dòng)時(shí)間用debounceDelayTime變量定義,該變量值應(yīng)根據(jù)按鍵機(jī)械彈性大小進(jìn)行相應(yīng)的調(diào)整。按鍵在被按下時(shí)將調(diào)用keyDebounce函數(shù),keyDebounce函數(shù)的功能為在去抖動(dòng)時(shí)間范圍內(nèi)反復(fù)檢測(cè)按鍵的狀態(tài),如果在去抖周期內(nèi)按鍵保持穩(wěn)定,函數(shù)返回真;如果在去抖周期內(nèi)按鍵狀態(tài)發(fā)生改變,計(jì)算器將復(fù)位,按鍵狀態(tài)檢查重新開(kāi)始,直到按鍵狀態(tài)在去抖時(shí)間內(nèi)不再發(fā)生改變?yōu)橹?,按鍵沒(méi)有被按下或尚未穩(wěn)定,函數(shù)返回假[9]。
3.3.2 根據(jù)所選擋位進(jìn)行調(diào)速
結(jié)合風(fēng)扇日常使用習(xí)慣,當(dāng)系統(tǒng)進(jìn)入手動(dòng)按鍵調(diào)速模式后,設(shè)置風(fēng)扇電機(jī)中速運(yùn)轉(zhuǎn);當(dāng)S2按下時(shí),風(fēng)扇電機(jī)低速運(yùn)轉(zhuǎn);當(dāng)S3按下時(shí),風(fēng)扇電機(jī)高速運(yùn)轉(zhuǎn)。根據(jù)所選的手動(dòng)按鍵擋位進(jìn)行風(fēng)扇電機(jī)轉(zhuǎn)速調(diào)節(jié)的程序如下:
function manualmode():void
begin
if keyDebounce(S2)=true then
begin
analogWrite(motorpin,180);
end;
else if keyDebounce(S3)=true then
begin
analogWrite(motorpin,255);
end;
else
begin
analogWrite(motorpin,210);
end;
end;
本文設(shè)計(jì)的多功能溫控風(fēng)扇系統(tǒng)以Arduino UNO控制器為主控芯片,利用LM35DZ模擬溫度傳感器檢測(cè)環(huán)境溫度數(shù)據(jù),HC-SR501人體熱釋電紅外傳感器判斷周?chē)臻g人員活動(dòng)情況,并根據(jù)環(huán)境溫度的變化或人工按鍵擋位的選擇,通過(guò)PWM引腳輸出可調(diào)電壓使風(fēng)扇電機(jī)驅(qū)動(dòng)電路獲得不同的輸入電流以實(shí)現(xiàn)風(fēng)扇不同的轉(zhuǎn)速,通過(guò)液晶顯示器實(shí)時(shí)顯示環(huán)境溫度,實(shí)現(xiàn)了對(duì)風(fēng)扇手動(dòng)調(diào)速、智能溫控的多重使用需求。經(jīng)過(guò)系統(tǒng)調(diào)試發(fā)現(xiàn),基于Arduino的多功能風(fēng)扇系統(tǒng)既可以在受人為控制的人工按鍵調(diào)速模式下工作,也可以在紅外檢測(cè)距離4m之內(nèi)、溫度25~40℃之內(nèi)伴隨周?chē)h(huán)境變化而自我調(diào)節(jié)的溫控自動(dòng)調(diào)速模式下工作,多種工作模式滿足了人們的多樣化需求。
[1] 趙苗慧,楊兵,張儀.基于單片機(jī)的感應(yīng)式溫控風(fēng)扇設(shè)計(jì)[J].無(wú)線互聯(lián)科技,2021,18(8):40–41+59.
[2] 楊秀秀,晏菁.基于STM32的多功能溫控風(fēng)扇設(shè)計(jì)[J].電子測(cè)試,2021(19):35–37.
[3]鮑夢(mèng).智能溫控風(fēng)扇的設(shè)計(jì)研究[J].南方農(nóng)機(jī),2021,52(16):150–152.
[4] 梁娟.基于單片機(jī)的智能溫控風(fēng)扇系統(tǒng)[J].軟件,2019,40(12):146–149.
[5] 陳呂洲. Arduino程序設(shè)計(jì)基礎(chǔ)(第2版)[M].北京:北京航空航天大學(xué)出版社,2015:12–14.
[6] 賴紫燁,馮媛媛,關(guān)智仁, 等.基于熱釋電紅外傳感器的人體檢測(cè)報(bào)警系統(tǒng)的研究與設(shè)計(jì)[J].科學(xué)技術(shù)創(chuàng)新,2021(3):169–170.
[7] Michael Margolis著. Arduino權(quán)威指南(第2版)[M].楊昆云, 譯.北京:人民郵電出版社,2015:264–268.
[8] 張興,張崇巍. PWM整流器及其控制[M].北京:機(jī)械工業(yè)出版社,2017:120–124.
[9] 郭星辰.機(jī)械按鍵的四種軟件消抖處理方法分析[J].集成電路應(yīng)用,2021,38(11):70–71.
Design of Multi-functional Temperature Control Fan System Based on Arduino
CHEN Li-fang
(Department of Electronic Engineering, Fujian Economic School, Fuzhou Fujian 350003, China)
In order to meet people’s multiple needs for fans, according to the actual conditions of inflexible operation, high energy consumption and inability of automatic adjustment of wind speed with temperature change in the current use of fans, the traditional button-position adjustment function of wind speed is retained, and Arduino controller and peripheral circuit are configured to realize the design requirements of multi-functional control of fans. The multi-functional temperature control fan system has two working modes. The default is the temperature control automatic speed regulation mode. In this mode, the Arduino controller controls the PWM pin to output different pulse widths according to the ambient temperature and the activities of surrounding personnel to drive different speeds of the fan. The system debugging shows that the fan system can automatically and accurately adjust the wind speed within the infrared detection distance of 4 meters and the temperature of 25 ℃ - 40 ℃, which meets the design requirements. The modified multi-functional temperature control fan system has low cost and flexible operation. It has positive application value to meet diversified living needs and the social requirements of energy conservation as well as emission reduction.
Arduino; human body induction; temperature control and speed regulation; PWM pulse width modulation
2022-03-17
2021年度福建省職業(yè)技術(shù)教育中心職業(yè)教育教學(xué)改革研究課題(ZB2021073)
陳梨芳(1981—),女,福建莆田人,講師,碩士,研究方向:電子信息工程。
TP273.2
A
2095-9249(2022)03-0041-05
〔責(zé)任編校:陳楠楠〕
萍鄉(xiāng)學(xué)院學(xué)報(bào)2022年3期