賈文輝,陳越超
(長春師范大學(xué)工程學(xué)院,吉林 長春 130032)
電子臺燈是家居必用品,與人們的生活息息相關(guān),特別是對于學(xué)生來說更是必不可缺的學(xué)習(xí)工具。傳統(tǒng)的臺燈光型固定、功能單一,無法根據(jù)環(huán)境的改變來調(diào)節(jié)自身的亮度,這也是造成近年來學(xué)生近視度普遍增高的一個因素。普通的臺燈,對于節(jié)能減排方面,沒有做出相應(yīng)的改變,已經(jīng)無法滿足當今時代對智能化的要求了,因此設(shè)計了一款基于PWM 的智能電子調(diào)光臺燈,具有8 檔調(diào)光功能,可以滿足多種環(huán)境下的光照需求,適應(yīng)性大大提升,同時可以實現(xiàn)手動模式和自動模式的切換,更加靈活方便,方便不同的群體進行選擇。對于學(xué)生而言,使用臺燈的時間較長,容易影響視力,而這款智能電子臺燈的多檔調(diào)光可以提供最佳的照明環(huán)境,并且設(shè)計了久坐提醒的特殊功能,極具人性化,從而避免了學(xué)生用眼過度,降低患近視的概率。
本系統(tǒng)是采用ATMEGA2560 單片機作為主控板,使用情景分為手動和自動兩種模式。手動模式下,通過物理按鍵,實現(xiàn)8 檔亮度調(diào)節(jié);自動模式下,選擇光強度傳感器進行環(huán)境光采集,將采集到的信息傳輸?shù)紸TMEGA2560 主控板的模擬輸入口,經(jīng)過運算處理,進而實現(xiàn)自動調(diào)節(jié)臺燈亮度的功能。利用超聲波測距傳感器,檢測使用者與臺燈之間的距離,判斷人是否離開,若未離開,依據(jù)預(yù)定的使用時間,通過蜂鳴器模塊進行久坐提醒;若離開,則執(zhí)行熄滅命令。通過LCD1602 顯示模塊,對學(xué)習(xí)時間、光照亮度等級、使用者與臺燈的距離進行實時顯示,豐富系統(tǒng)功能,提高臺燈智能化。系統(tǒng)設(shè)計框圖如圖1所示[1-6]。
圖1 系統(tǒng)設(shè)計框圖
Arduino Mega2560 單片機其核心是ATMEGA2560。Mega2560 單片機的工作性能十分出眾,并且自身帶有很多的引腳,具有54 路數(shù)字的輸入輸出(其中有16 個可以作為PWM 輸出),16 路模擬輸入,4 路UART 接口,一個16MHz晶體振蕩器,USB口,電源插座,ICSP header和一個復(fù)位按鈕非常適合需要大量引腳的設(shè)計。相比于C51,STM32單片機,Arduino Mega2560 的編譯環(huán)境更加簡單、方便,各種功能的調(diào)用也是十分便捷,特別是AD轉(zhuǎn)換。Arduino Mega2560可以直接通過模擬輸入口將模擬量以數(shù)字量顯示出來,而C51需要做外部拓展才可以使用AD轉(zhuǎn)換。Arduino Mega2560可以滿足系統(tǒng)的功能要求,適合作為本次設(shè)計的主控芯片。
本系統(tǒng)采用光敏電阻模塊,利用其阻值會隨著外界光照強度的增大而減小的特性,進行環(huán)境光采集。
將光敏電阻與主控板的模擬輸入口相連,通過AD 轉(zhuǎn)換,將光照強度這個模擬量以數(shù)字量的形式顯示出來。在設(shè)計時,使用光敏電阻測量出在白天正常情況下以及在晚上黑暗狀態(tài)下外界光照強度的數(shù)值,利用AD轉(zhuǎn)換得到一個光照強度數(shù)字量的變化區(qū)間,然后將這個區(qū)間分成八等份,每一個小區(qū)間代表一個亮度檔位。
手動調(diào)光電路中最核心的部分是可控硅模塊,該模塊可以實現(xiàn)交流電的無觸點控制,以小電流控制大電流。在設(shè)計時,可控硅模塊的一端通過接線端子和外部220V 的交流電相連接,另一端分出5V 的電壓和主控板連接在一起,利用主控板I/O 口輸出的PWM 脈沖寬度控制可控硅模塊,調(diào)節(jié)220V 的電壓,通過不同的占空比使外接交流220V 電源轉(zhuǎn)變?yōu)轭A(yù)定的電壓值,進而控制小燈的亮度。最后經(jīng)過不斷實驗得出了對應(yīng)八檔亮度的脈沖寬度,使小燈實現(xiàn)了八檔調(diào)節(jié)。可控硅模塊電路原理圖如圖2所示。
圖2 可控硅模塊電路原理圖
在本系統(tǒng)中主要是利用超聲波測距傳感器來檢測使用者和臺燈的距離,HC-SR04 超聲波測距傳感器的電路原理圖如圖3 所示,超聲波測距傳感器的輸入端Trig 和輸出端Echo與主控板的IO口相連接,當IO口輸出一個高電平信號時,高電平所持續(xù)的時間就是超聲波從發(fā)出到返回的時間,測試的距離=(高電平時間/2)*(340m/s)。利用測得的距離可以實現(xiàn)臺燈的一些功能。一是久坐報警功能,系統(tǒng)內(nèi)部設(shè)定了一個距離范圍為測定的使用者正常使用時和臺燈的距離和一個久坐判定時間,當使用者在該距離下使用且時間達到設(shè)定的久坐判別時間時主控板控制蜂鳴器發(fā)出警報聲。二是人走燈滅的功能,使用者可自行設(shè)置一個距離為人離開的距離,當超聲波測距傳感器所測的距離大于等于該設(shè)定值并且達到設(shè)定時間的時候臺燈將會自動熄滅,當人回來的時候超聲波測距傳感器的測量值小于設(shè)定的距離值,臺燈重新點亮。
圖3 超聲波測距模塊電路原理圖
程序設(shè)計流程圖如圖4所示,智能電子調(diào)光臺燈的軟件系統(tǒng)采用模塊化的設(shè)計,基于Arduino 庫函數(shù)編程實現(xiàn),本系統(tǒng)主要包括主程序、光敏電阻檢測、PWM調(diào)光、超聲波距離檢測、蜂鳴器報警等模塊。
圖4 程序設(shè)計框流程圖
主程序模塊首先進行系統(tǒng)的初始化,然后調(diào)用子程序模塊來完成整體的邏輯控制。通過按鍵進行模式的選擇,手動模式下,通過掃描按鍵調(diào)用PWM調(diào)光子程序?qū)崿F(xiàn)手動調(diào)節(jié)臺燈亮度。自動模式下,通過調(diào)用光敏電阻檢測子程序?qū)崿F(xiàn)亮度自動調(diào)節(jié),然后調(diào)用超聲波距離檢測子程序來實時檢測使用者和臺燈的距離,實現(xiàn)人離開后一定時間臺燈自動熄滅的功能,同時當使用者正常使用臺燈達到預(yù)定時間時調(diào)用蜂鳴器報警程序?qū)崿F(xiàn)久坐報警功能。
本款智能電子臺燈采用Arduino Atmega2560作為系統(tǒng)主控制器,利用光強度傳感器、超聲波模塊進行外界信息檢測,從而實現(xiàn)雙模式調(diào)光功能,實用性大大提升,操作更加方便。針對學(xué)生使用臺燈時間過長問題,系統(tǒng)增加了久坐警報提醒功能,人性化程度高。通過測試,表明該款臺燈反應(yīng)敏銳、識別準確,各項功能都能正常實現(xiàn),具有結(jié)構(gòu)簡單、能耗小、成本低等特點,適合進行推廣。當然,電子產(chǎn)品迭代更新已成為必然,為了順應(yīng)時代發(fā)展的潮流,還需要不斷完善和創(chuàng)新,未來可以進行坐姿提醒、便攜等方面的優(yōu)化。