劉相中,張建文,唐李生,王宇廷,仇懷利
(合肥工業(yè)大學(xué)電子科學(xué)與應(yīng)用物理學(xué)院,安徽 合肥 230000)
人們?cè)谔幚聿煌聞?wù)時(shí)需要適宜的亮度和光色的燈光照明,在不同活動(dòng)場(chǎng)所需要不同顏色的燈光來(lái)營(yíng)造氛圍。近年來(lái),隨著LED照明技術(shù)的發(fā)展,智能家居及室內(nèi)照明系統(tǒng)解決方案不斷被推出[1,2], 照明的舒適性和光色的可控性需求變得愈發(fā)重要。為研制依據(jù)環(huán)境亮度、色度而自動(dòng)轉(zhuǎn)變顏色的LED燈,本文設(shè)計(jì)了一種依據(jù)環(huán)境實(shí)現(xiàn)亮度和顏色調(diào)控的“變色龍”LED燈,其主要由顏色傳感器、Arduino單片機(jī)[3]、LED發(fā)光矩陣三大模塊構(gòu)成。
我們采用的元件材料主要有:Arduino UNO R3主板、GY-33(TCS34725)顏色傳感器、WS2812BLED發(fā)光矩陣、LCD1602A顯示屏、測(cè)試用面包板、Arduino Power Shield、光敏傳感器、紅外接收器、紅外遙控板、旋鈕滑動(dòng)變阻器等各1件,杜邦線、電阻若干件。設(shè)計(jì)時(shí)分別采用軟件Arduino、matlab、Protues、Fritzing進(jìn)行程序設(shè)計(jì)、數(shù)據(jù)處理和電路仿真繪圖。
方案實(shí)施的難點(diǎn)在于色度識(shí)別和顏色信息處理。色度識(shí)別能力在于傳感器的顏色測(cè)量能力。GY-33工作原理是,內(nèi)置照明LED發(fā)光,照射到被測(cè)物體后,返回光經(jīng)過(guò)檢測(cè)濾鏡,通過(guò)光電積分法測(cè)算RGB的比例值,從而識(shí)別顏色。具體情況見(jiàn)圖1。顏色信息處理需在耦合發(fā)光程序和傳感器程序時(shí)需要建立控制算法,讓輸出光的顏色特征值與采樣相吻合。輸出機(jī)理為L(zhǎng)ED的PWM調(diào)制理論,通過(guò)改變方波的占空比以達(dá)到調(diào)節(jié)LED光度和顏色特征量(主波長(zhǎng)和顏色純度)的效果。從而起到調(diào)節(jié)三基色混色比例的作用,實(shí)現(xiàn)情景照明系統(tǒng)的混色功能[4]。
圖1 顏色傳感器工作機(jī)理
經(jīng)過(guò)探討,我們最終確立2套發(fā)光方案。方案一:為發(fā)光矩陣的三色驅(qū)動(dòng)使用color函數(shù),這個(gè)函數(shù)引用了三個(gè)數(shù)據(jù),分別將模擬量輸送到三色LED燈珠的三個(gè)發(fā)光核心,而這三個(gè)核心為三基色發(fā)光基點(diǎn),根據(jù)格拉斯曼色光混合原理,不同基色的配比決定了總體發(fā)光顏色的色調(diào)與飽和度;方案二:通過(guò)對(duì)比色卡的CIE 1931標(biāo)準(zhǔn)色域分析,換算并建立了RGB顏色庫(kù),分析GY33的RGB數(shù)值分布特點(diǎn),采用條件語(yǔ)句,由劃定的區(qū)間進(jìn)行篩選,設(shè)置了高飽和度的發(fā)光數(shù)據(jù),從而實(shí)現(xiàn)對(duì)七彩色的準(zhǔn)確識(shí)別與顯示。方案一的優(yōu)勢(shì)在于LED呈現(xiàn)的色域更寬,但顏色飽和度不足。方案二的優(yōu)勢(shì)在于顏色的飽和度高、輸出穩(wěn)定,但色域識(shí)別模糊。綜合兩種方案,紅外遙控模塊的按鍵編碼可進(jìn)入對(duì)應(yīng)模式的子程序中,從而實(shí)現(xiàn)發(fā)光模式控制。
在日光燈做背景光源的使用環(huán)境下,讓LED燈呈現(xiàn)不同顏色,使用色度計(jì)測(cè)量其CIE 1931標(biāo)準(zhǔn)下的色品坐標(biāo),繪制典型顏色的徑跡圖。確立典型色品點(diǎn)的位置后,分析X-Y-Z系統(tǒng)和R-G-B系統(tǒng)的對(duì)應(yīng)關(guān)系,這樣就可以在算法中實(shí)現(xiàn)RGB數(shù)值的相對(duì)變化來(lái)調(diào)制顏色特征值。傳感器可對(duì)光源顏色和物體顏色進(jìn)行檢測(cè),依據(jù)LED燈使用環(huán)境,可進(jìn)行修正算法的改良。分析離散RGB數(shù)據(jù),由GY33顏色識(shí)別程序計(jì)算的8種關(guān)鍵顏色的RGB值見(jiàn)表1。
表1 RGB數(shù)據(jù)對(duì)比
采樣前進(jìn)行白平衡校正[5],依據(jù)RGB顏色庫(kù)的統(tǒng)計(jì)分析,建立顏色判定的隸屬函數(shù),從而使用模糊控制算法[6]讓采樣RGB值與比色卡標(biāo)定值基本相符,從而優(yōu)化了LED顏色與比色卡標(biāo)定顏色的匹配度。通過(guò)控制不同外界光照條件,大致分為光敏傳感器完全遮擋、部分遮擋、自然日光、強(qiáng)光照射四個(gè)區(qū)間,通過(guò)光照度間斷變化收集傳感器的離散反饋數(shù)據(jù),程序標(biāo)定參數(shù)控制LED的驅(qū)動(dòng)電壓,從而改變LED的光強(qiáng),光敏傳感器程序的數(shù)值線性擬合情況如圖2所示。
圖2 光敏線性度測(cè)試(光照度-傳感器采樣值關(guān)系)
程序結(jié)構(gòu)融匯了硬件系統(tǒng)的控制方法,顏色識(shí)別程序使用了PID控制,其顏色測(cè)量能力受到運(yùn)行環(huán)境、系統(tǒng)結(jié)構(gòu)和工作狀態(tài)的制約。顏色信息處理與顯示環(huán)節(jié)使用了模糊控制,按照模糊控制器的設(shè)計(jì)思路[6],對(duì)已經(jīng)量化的R、G、B數(shù)值形成模糊集合,從而依據(jù)參數(shù)設(shè)計(jì)中的修正處理建立模糊控制規(guī)則。程序主框架分為定義,setup和voidloop三部分,如圖3所示。
圖3 程序設(shè)計(jì)流程圖
setup可設(shè)置波特率為9600,讓Arduino連接計(jì)算機(jī)從而用IDE中的串口監(jiān)視器觀察數(shù)據(jù)。紅外遙控程序的編碼譯碼函數(shù)會(huì)初始化,LCD顯示程序自啟動(dòng),同時(shí)TCS34725會(huì)進(jìn)行啟動(dòng)判斷,使用遙控按鍵可開(kāi)啟或關(guān)閉其RGB測(cè)算子程序。
loop循環(huán)中紅外遙控按鍵可決定發(fā)光模式的選擇,傳感器的采樣值會(huì)傳遞至LED發(fā)光矩陣程序,通過(guò)color函數(shù)判定采樣值與真實(shí)值是否匹配,若數(shù)值相近從而進(jìn)行賦值經(jīng)PWM輸出,若不匹配,則會(huì)先進(jìn)行數(shù)值修正,再調(diào)制輸出,兩種方式的RGB值都會(huì)收到光敏傳感器的調(diào)節(jié)。然后LCD程序會(huì)調(diào)用函數(shù)“jieshou”,功能為接收字符并顯示。
利用if函數(shù)對(duì)紅外編碼進(jìn)行判斷,如果無(wú)信號(hào)則不輸出,存在信號(hào)時(shí),利用switch結(jié)構(gòu)判斷輸出的選擇。switch設(shè)置分支“CH-”按鍵為顏色傳感器的標(biāo)準(zhǔn)讀數(shù)顯示(發(fā)光模式1),“CH”為擴(kuò)大顏色明顯程度的七彩色顯示(發(fā)光模式2),“CH+”為關(guān)閉顯示程序。當(dāng)接收信號(hào)為“CH-”,這里我初始化發(fā)光矩陣并顯示所有LED為關(guān)狀態(tài)。引入while循環(huán)只要無(wú)其他信號(hào)輸入就一直執(zhí)行循環(huán),讀取顏色傳感器的RGB并輸出,從而維持LED顯色隨傳感器的穩(wěn)定變化,通過(guò)模糊控制中的條件語(yǔ)句。利用if與elseif嵌套來(lái)實(shí)現(xiàn)對(duì)于物體RGB的判斷,并輸出飽和度更高的相近顏色。當(dāng)接收信號(hào)“CH+”按鍵,直接將三個(gè)變量賦值為0即為關(guān)閉所有LED。
由于程序結(jié)構(gòu)要求,測(cè)試采用了tcs34725和LED發(fā)光矩陣。LED發(fā)光矩陣采用內(nèi)置驅(qū)動(dòng)電路[7],調(diào)整發(fā)光矩陣的供電電壓,發(fā)現(xiàn)存在4.2 V的門限電壓,低于門限電壓會(huì)出現(xiàn)頻閃和顏色畸變,而高于門限電壓則由于已達(dá)到亮度極大值,因此幾乎不變。相關(guān)實(shí)驗(yàn)[8]表明,通過(guò)調(diào)節(jié)占空比可以精確地實(shí)現(xiàn)預(yù)期的混合光。引入遙控模塊和光敏電阻,接入一塊LCD1602液晶屏顯示發(fā)光RGB值,將Arduino Power Shield Li電池契合至主板上,程序燒錄至主板后,接通電池開(kāi)關(guān)即可啟動(dòng),設(shè)備總體功率低于3 W。將ArduinoIDE的編譯結(jié)果采用HEX文件導(dǎo)出二進(jìn)制代碼,用proteus進(jìn)行電路仿真(具體情況見(jiàn)圖4)。硬件采用PCB電路板建立主板和各模塊關(guān)聯(lián),提升集成度,也有利于“變色龍”LED的封裝。
圖4 總成品電路示意圖
依據(jù)以上參數(shù)設(shè)置和電路設(shè)計(jì)要求,我們?cè)O(shè)計(jì)了“變色龍”LED燈樣品,如圖5所示。該樣品燈可整體封裝,外觀可制成不同形狀,且材質(zhì)可選用新型材料[9],適用于家居照明。
圖5 “變色龍”LED裝置(成品模型形式)
基于Arduino和GY33顏色傳感器的“變色龍”LED燈實(shí)現(xiàn)了控制照明相關(guān)參數(shù)的功能,實(shí)現(xiàn)了顏色識(shí)別與LED發(fā)光顏色匹配的功能,可依據(jù)環(huán)境亮度通過(guò)負(fù)反饋調(diào)節(jié)以實(shí)現(xiàn)節(jié)能,其創(chuàng)新點(diǎn)包括:①通過(guò)編程中的參數(shù)設(shè)計(jì)與模糊控制方法,提高了傳感器色度識(shí)別能力;②Arduino可智能調(diào)節(jié)LED的發(fā)光模式,可以滿足不同場(chǎng)合或情景下的照明需求;③使用可太陽(yáng)能充電的鋰電池供電,實(shí)現(xiàn)了節(jié)能的低功耗設(shè)計(jì)。
我們利用顏色傳感器技術(shù)和PWM調(diào)制技術(shù)設(shè)計(jì)了“變色龍”LED燈,設(shè)計(jì)了耦合各模塊的控制電路,介紹了對(duì)LED發(fā)光顏色進(jìn)行模糊控制的優(yōu)化算法。“變色龍”LED燈可以依據(jù)環(huán)境改變發(fā)光亮度和顏色,優(yōu)化照明空間,提升人們的視覺(jué)感受與心理體驗(yàn)。當(dāng)然,我們的設(shè)計(jì)還存在不足,如未實(shí)現(xiàn)對(duì)精密色域的準(zhǔn)確識(shí)別與色度匹配、亮度感光調(diào)節(jié)的梯度較大、產(chǎn)品設(shè)計(jì)樣品不夠美觀等,我們將在后續(xù)研究中進(jìn)行優(yōu)化與改進(jìn)。