陳晶晶 吳治帆 宋 康
(四川大學機械工程學院,四川 成都 610065)
綠色環保照明研究成為照明設施研發的重要方向。臺燈是學生桌前必備的照明工具[1],現有的臺燈僅能滿足學生的照明要求,無法根據周圍環境科學地調整適合學習的光照強度,為學生提供良好的光照環境[2]。
LED 作為照明光源,有節能環保、壽命長、體積小、發熱小、響應速度快、安全電壓低、耐候性好、方向性好等優點[4]。因此該文采用LED 作為光照器件,設計一款具備自動調節亮度、溫度顯示和聲控開關等功能的智能LED 臺燈,滿足人們的學習需求。
溫美遜等人設計的基于ARDUINO 的視力保護儀,使用光敏電阻、四電壓比較器LM339 和發光二極管組成的光檢測電路來實現測量周圍光線、及時補充和調整光源的功能。另外還利用超聲波測距模塊提醒使用者調整自己的坐姿,同時附加定時中斷提醒功能,系統工作一段時間之后報警提醒使用者休息,功能豐富[3]。
該文提出一種新的自動調整光源的方案。光敏電阻傳感器采集光照強度,ARDUINO 開發板收集信息并進行程序處理,自動控制臺燈的亮度,簡單方便。
臺燈系統基于ARDUINO 開發板,圍繞著其最小應用系統設計開發了自動調光、聲控開關和溫度顯示等功能模塊。系統如圖1 所示。其中包括6 個模塊。1)照明設備。2)聲控開關模塊,通過判斷聲音強度來開啟臺燈總電源,方便在黑暗情況下打開臺燈。3)光強采集模塊,光敏電阻傳感器采集光強信息,直接輸出模擬電壓值。4)模式切換由電容型的觸摸傳感器實現,觸摸一次臺燈則工作模式自動切換。5)臺燈光照強度的手動改變則由電位器完成,調節旋鈕即可改變光強。6)環境溫度信號采集由LM35 溫度傳感器完成,直接輸出對應的電模擬壓值,程序處理后在LCD1602 液晶顯示屏上顯示。
ARDUINO 是一款基于AVR 單片機的硬件電路和軟件開發環境共同開源的控制系統,是交互式編程學習的一種媒介,是為嵌入式開發學習而研發的一種控制終端[5]。
ARDUINO 包括硬件(各種型號的ARDUINO 板)和軟件(ARDUINO IDE)。ARDUINO 板通過USB 接口供電,電壓為5 V。復位按鍵(Reset Button)可以使ARDUINO 重新啟動,并且開始運行程序。ARDUINO UNO 有14 個數字輸入/輸出端口,6 個模擬輸入端口。ARDUINO 編程環境可以跨平臺,并且該軟件可以在Windows、Macintosh OSX、Linux 操作系統上運行。另外ARDUINO 控制板價格低廉,可自行組裝,也可以購買完整的產品[6]。
2.2.1 光敏電阻傳感器
光敏電阻的電阻值與光線有關,照射在感光面的光線亮度增加時,電阻值會變小,亮度減少時電阻值會加大。當環境光比較強時,光敏電阻的阻值減小,相反環境光較弱時,它的阻值增大,從而實現光電轉換[7]。

圖1 智能LED 臺燈系統框圖
2.2.2 自動調光模式
自動調光模式下,由于光敏電阻傳感器采集的環境光強信號與LED 的亮度之和保持在一個定值,即最適合人眼的光照強度。當環境光強小于此定值時,LED 的亮度隨環境光照強度的減弱而增加。當環境光強大于此定值時,LED的亮度為零,即直接通過程序處理達到自動調光的目的,保護眼睛。
2.3.1 電位器
傳統的電位器主要是依靠機械結構帶動滑片運動,以此來對改變電阻值。電位器又稱為可變電阻器(VR,Variable Resistor)或簡稱可變電阻,其是一種具有3 個端子,其中包括2 個固定接點與一個滑動接點,可經由滑動而改變滑動端與2 個固定端間電阻值的電子零件,屬于被動元件,使用時可形成不同的分壓比率,改變滑動點的電位。
2.3.2 手動調光模式
通過電位器的分壓來改變LED 的亮度。轉動旋鈕,即可改變當前臺燈的亮度。在此模式下,LED 的亮度可隨意調節,不受環境光照強度的限制,滿足人們的不同需求。
2.4.1 LM35簡介
LM35 是一款精密的Celsius 集成溫度傳感器,其輸出電壓和溫度呈線性關系[8]。
LM35 是一種電壓型輸出傳感器,每升高11 ℃,溫度從-50 ℃上升至150 ℃,電壓增加10 mV[9]。通過對LM35傳感器的輸出電壓值進行處理得到空氣溫度。
2.4.2 LM35測溫
LM35 感受溫度并將溫度信號轉換成可用的輸出信號,輸出信號有模擬電壓信號和數字電壓信號2 種,下面的公式采用的輸出信號為模擬電壓。由LM35 的靈敏度可算溫度計算公式:

式中:U為ARDUINO 開發板內部的工作電壓,通常為5 V。k為LM35 的靈敏度,k=10 mV/℃。temp 為當前環境溫度,單位℃。analogRead(wendu)為ARDUINO 開發板讀取到溫度對應的模擬電壓值,單位mV。
LCD1602 為工業字符型LED,可同時顯示32 個字符。LCD1602 專門用來顯示字母、數字、符號等。它由若干個5×7 或者5×11 等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,從而分割字符和線條。1602 表示2 行16 個字符。
1602 采用標準的16 腳接口,其中特殊的第3 引腳:V0為液晶顯示器對比度調整端,實踐時可以通過調節10 K 的電位器來調節第15~16 腳:空腳或背燈電源。第15 引腳為背光電源正極,第16 引腳為背光電源負極[10]。
聲控裝置是智能家居設備中的重要組成部分,用戶可以通過聲音對家庭設備進行控制。
該聲音傳感器可檢測周圍環境的聲音強度。但是只能識別聲音的有無,不能識別聲音強度的大小或者特定頻率的聲音,但對于該系統來說已經足夠,靈敏度可調,且輸出形式為數字開關量輸出(0 和1 高低電平)。環境聲音的強度小于設定的閾值時,DO 口輸出高電平1,反之,環境聲音強度超過設定閾值時,模塊輸出低電平0。
void AUTO( )//光敏電阻傳感器實現自動調光
{
sensorval=analogRead(analogguangpin);//將傳感器輸出轉換成對應的模擬量
if(sensorval<300)//設定最適于人眼的光強對應模擬電壓值為300
{
analogWrite(ledpin,sensorval*0.3);//根據環境光強自動控制LED 亮度
}
else
analogRead(ledpin,300*0.3);//設定最適于人眼的光強對應模擬電壓值為300
}
void HAND( )//電位器實現手動調光
{
sensorval=analogRead(analogrestpin);//將電位器分壓值輸出轉換成對應的模analogWrite(ledpin,sensorval*0.25);//根據電位器分壓手動控制LED 亮度
}
if(digitalRead(song)==HIGH)//檢測聲音傳感器狀態
{
j=!j;
}
if(j or digitalRead(allpin))//聲控開關或按鍵開關打開之后顯示溫度
{
lcd.setCursor(0,0);//設置光標到第二行第一列,1 表示第二行,從0 開始數)
int temp=analogRead(wendu);//讀取溫度信號并轉換成模擬電壓值
lcd.print(5*100*temp/1024);//計算溫度值并顯示在LCD1602
lcd.print(“C”);
delay(100);//模式切換
if(digitalRead(chumo)==HIGH) //讀取觸摸傳感器的
狀態
{
i=!i;//記錄每一次觸摸傳感器的變化
}
if(i==HIGH) AUTO( );//切換到自動模式
if(i==LOW) HAND( );//切換到手動模式
}
else
digitalWrite(ledpin,LOW);
}
實驗得到結果,無論環境光強處于何種大小情況下,均可由按鈕開關打開臺燈總電源,或者可通過聲音傳感器來打開總電源。工作狀態下,LCD1602 液晶顯示屏顯示當前環境溫度,觸碰觸摸傳感器可改變當前臺燈的工作模式。
自動模式下,當前環境亮度與系統設定的定值比較,環境亮度小于定值時,臺燈的亮度隨環境亮度的增強而減弱。而當環境亮度大于定值時臺燈的亮度不再改變,此時臺燈亮度為0,環境光照強度和臺燈亮度綜合后維持在最適于人眼的狀態。自動模式下調節電位器旋鈕不會改變臺燈亮度。如圖2 所示,環境光強由強到弱變化時,臺燈亮度逐漸變強。

圖2 環境光強逐漸減弱的臺燈亮度增強
手動模式下,環境光強不會對電位器的調節產生影響,可任意旋轉電位器旋鈕得到不同亮度。如圖3 所示,調節電位器使臺燈亮度逐增強。

圖3 電位器分壓逐漸增大時臺燈亮度增強
ARDUINO 軟件執行代碼,將模擬輸出的LED 模擬電壓值打印到串口,串口數據見表1,串口顯示的結果與自動調光模式實驗(圖2)與手動調光模式(圖3)相符。

表1 串口顯示輸出電壓結果
該文以ARDUINO 開發板為核心,以光敏電阻傳感器為輔助器件,提出了一種自動調節臺燈光強的新思路,其能直接對光強信號進行軟件處理,達到自適應的目的,節約硬件的使用,簡單方便。以各種傳感器作為其他功能模塊,實現聲控開關、溫度顯示等功能,體現其智能化。根據個人需求的不同,增加手動調光功能,通過電位器的分壓以及ARDUINO 開發板引腳的PWM 輸出,達到控制LED亮度的效果。
此外,該臺燈系統還存在不完善的地方,可以擴展一些其他功能,比如防止靠近桌面提醒、定時提醒和手機聯網控制等功能,因此,還可以進一步提高臺燈系統的智能化程度。