劉建釗,王 寧
(1.上海理工大學 上海市現(xiàn)代光學系統(tǒng)重點實驗室,上海 200093;2.上海理工大學 光電信息與計算機工程學院,上海 200093)
人們所生活的環(huán)境是一個充滿光的世界,因此光照度與人們的生活有著密切的聯(lián)系。針對不同場合的需求,合理地調(diào)節(jié)光源可以使人處在一種舒適的狀態(tài)。為了能正確調(diào)整光照,需要對光照度進行測量。光照度的測量方法[1]分為目視法和客觀法兩種:目視法是人們利用肉眼對光照度做出的評價,帶有一定的主觀性;而客觀法依據(jù)可靠的算法得出,所測得的照度值有一定的可信度。測量光照度的常用儀器是光照度計[2],它由主機和一個光電探測器[3]組成。光電探測器采集當前環(huán)境的可見光信號,并將該光信號轉(zhuǎn)換為相應的電壓信號,通過后續(xù)功能電路的數(shù)據(jù)處理,將照度值顯示在主機上。
目前,在用市場上所銷售的照度計測量照度時,主機的液晶顯示屏上只顯示出照度值,而與該照度值相對應的、由光電探測器所轉(zhuǎn)換而來的感應電壓值并沒有被顯示出來。感應電壓是與光電探測器串聯(lián)的電阻的電壓,顯示感應電壓值有兩個方面的作用:一方面,由感應電壓值可以判斷當前環(huán)境中可見光信號的強弱,方便人們對光源進行合理的調(diào)控;另一方面,由感應電壓值可以估算出通過光電探測器的電流,進而方便人們對光電探測器的工作狀態(tài)進行實時監(jiān)測。這些對保護光電探測器以及延長其工作壽命都有一定的意義。
為此本文設計了一種基于單片機[4]的模擬光照度計,在顯示光照度值的同時,可以顯示與該光照度值相對應的電壓值,從而對光電探測器的工作狀態(tài)進行實時監(jiān)測。
光照度的測量原理如圖1所示。光電探測器采集可見光信號,并將其轉(zhuǎn)換為相應的感應電壓信號。對感應電壓進行信號處理,包括放大濾波、模數(shù)轉(zhuǎn)換等。當知道感應電壓與照度的函數(shù)關系時,就可以由感應電壓值計算出相應的照度值,進而將照度值顯示出來。
圖 1 光照度測量原理圖Fig. 1 Schematic diagram of illumination measurement
光照度計系統(tǒng)的總體設計方案如圖2所示。光照度計系統(tǒng)由光電檢測模塊、信號處理模塊及數(shù)據(jù)顯示模塊組成。其中,光電檢測模塊由特定的光電探測器來探測光信號,并通過光電轉(zhuǎn)換電路將微弱的光信號轉(zhuǎn)換為電信號,這一電信號通常為電壓的形式。信號處理模塊由放大電路、濾波電路、A/D轉(zhuǎn)換電路、單片機組成。放大電路將微弱的電壓信號進行一定倍數(shù)的放大,這有利于后續(xù)數(shù)據(jù)的處理。濾波電路用來消除雜散光的干擾,濾波后的電壓信號攜帶著光信息。此時,用模數(shù)轉(zhuǎn)換器將該模擬電壓轉(zhuǎn)換為數(shù)字電壓。根據(jù)該數(shù)字電壓值,再通過一定的算法,即可算出照度值。算法是通過軟件編寫出的相應程序來實現(xiàn)。當照度值算出之后,需要將照度值在液晶顯示屏上進行顯示,這些工作也可以通過軟件編程的方式來完成。當光電探測器探測到強度不同的光信號時,照度值可以相應地發(fā)生變化,實現(xiàn)照度的實時測量,同時與照度值相對應的電壓值也顯示在液晶顯示屏上。
圖 2 照度計系統(tǒng)總體設計方案Fig. 2 Overall design scheme of illuminometer system
光照度計的硬件模塊如圖3所示。選用型號5 528的光敏電阻[5]作為光電探測器,這樣不僅可以降低成本,而且還可以使光電轉(zhuǎn)換電路的設計變得簡便。集成運算放大器選用LM358芯片,它在電路中有兩個作用:一是構成放大電路;二是構成濾波電路,且濾波電路同時具備電壓放大作用。由模數(shù)轉(zhuǎn)換器[6]ADC0832芯片將模擬電壓信號轉(zhuǎn)換為數(shù)字電壓信號。轉(zhuǎn)換后的電壓信號由單片機STC89C52進行數(shù)據(jù)處理,計算出相應的照度值。最后,由液晶顯示屏LCD1602將計算出的照度值和對應的電壓值顯示出來,并且用一個蜂鳴器和LED燈來進行報警。
圖 3 系統(tǒng)硬件模塊設計方案Fig. 3 The system hardware module design
光照度計軟件模塊的程序控制流程如圖4所示。當程序加載到單片機時,光照度計上的各元器件便會按照程序指令有序地工作。首先對液晶顯示屏LCD1602以及模數(shù)轉(zhuǎn)換器ADC0832芯片進行初始化。當光敏電阻采集到可見光信號后,將光信號轉(zhuǎn)換為相應的感應電壓。對這一感應電壓進行放大濾波后,ADC0832芯片[7]采集到信號處理后的電壓量,再將該模擬電壓轉(zhuǎn)換為數(shù)字電壓。由單片機進行數(shù)據(jù)處理并計算出照度值,同時在液晶上顯示出照度值,并將與該照度值相對應的電壓值也進行顯示。當所測的照度值超過所設置的閾值時,系統(tǒng)開始報警。
圖 4 程序控制流程圖Fig. 4 Flow chart of program control
由于光敏電阻所轉(zhuǎn)換而來的感應電壓很微小,不利后續(xù)的數(shù)據(jù)處理,因此采用LM358芯片構成的放大濾波電路對其進行兩級電壓放大,放大倍數(shù)為4。設Vdisplay是放大4倍后的電壓,Vinduced是由光敏電阻轉(zhuǎn)換而來的感應電壓,則兩個電壓的關系如下:
由式(1)可以看出,Vdisplay與Vinduced一一對應,由Vdisplay可以計算出Vinduced,從而可以計算出流過光敏電阻的電流、功耗等,起到對光敏電阻的工作狀態(tài)實時監(jiān)測的作用。
測量一組光照度計的電壓Vdisplay及其所對應的照度,用以確定照度計顯示的電壓和照度的關系,結果如表1所示。根據(jù)表1所示的電壓Vdisplay及其相應的照度數(shù)據(jù),利用MATLAB軟件對兩者進行曲線擬合,得到結果如圖5所示。
表 1 電壓及相應的照度Tab. 1 Voltage and corresponding illuminance
圖 5 照度與電壓的擬合曲線Fig. 5 The fitting curve of illumination and voltage
進而得到照度與電壓的數(shù)學函數(shù)關系式,二者的數(shù)學函數(shù)關系表達式如下:
式中:Y為照度;X為電壓值,并且有X=Vdisplay。該函數(shù)關系式亦是由電壓Vdisplay計算出相應照度的核心公式。
光照度計電路系統(tǒng)原理圖如圖6所示。該電路系統(tǒng)由光電轉(zhuǎn)換電路[8]、放大濾波電路、A/D轉(zhuǎn)換電路、單片機最小系統(tǒng)[9]、液晶顯示電路和報警電路構成。其中,光敏電阻采集光信號,并將光信號轉(zhuǎn)換為電流信號,從而在負載電阻R1上產(chǎn)生一個感應電壓。該感應電壓需要用LM358芯片構成的兩級放大電路對其進行放大,同時進行濾波處理。由A/D轉(zhuǎn)換器將處理后的模擬電壓轉(zhuǎn)換為數(shù)字電壓,由單片機進行數(shù)據(jù)處理計算出照度值。LCD1602液晶顯示屏[10]的第一行顯示電壓值,第二行顯示與該電壓值相對應的照度值。當所測的照度值超過130 lx時,蜂鳴器響起,紅色LED燈不斷閃爍,開始報警。
圖 6 照度計系統(tǒng)電路原理圖Fig. 6 Schematic diagram of illuminometer system circuit
光照度計的主程序執(zhí)行流程如圖7所示。單片機按照圖7所示的流程不斷執(zhí)行相應的程序語句。
用于顯示光照度計電壓數(shù)值的子程序如圖8所示。
計算并顯示照度值的子程序設計如圖9所示。
圖 7 主程序設計流程圖Fig. 7 Flow chart of main program design
圖 8 顯示電壓值的子程序設計Fig. 8 Subroutine design for voltage
光照度計實物如圖10所示。在面包板上用光敏電阻搭建了光照度計的光電轉(zhuǎn)換電路,用運放LM358芯片搭建了放大濾波電路,并用ADC0832芯片搭建了模數(shù)轉(zhuǎn)換電路,在STC89C52單片機開發(fā)板上接上LCD1602液晶顯示屏。面包板上接有電源模塊,該模塊中的電源有三種選擇,分別是3.3 V、5 V和12 V,可滿足不同的供電需求。通過兩根數(shù)據(jù)線分別將單片機開發(fā)板和面包板上的電源模塊連接到電腦的USB端口,由電腦給單片機開發(fā)板和面包板供電。單片機開發(fā)板上有蜂鳴器模塊和LED模塊,給面包板和開發(fā)板通電后,把寫好的程序加載到單片機中。這樣,光照度計系統(tǒng)就可以按照程序指令正常工作,同時在液晶顯示屏上可以看到電壓值及相應的照度值。
圖 9 計算并顯示照度值的子程序設計Fig. 9 Subroutine design for calculating and displaying illumination values
圖 10 光照度計實物圖Fig. 10 Photo of the illuminometer
當LED燈照射光敏電阻時,用電壓表測得與其串聯(lián)的電阻R1的電壓。電壓表顯示電阻R1的電壓為0.364 V,該電壓值即為感應電壓。隨著LED燈與光敏電阻距離的變化,該感應電壓值也在變化。
電路采用兩級同相輸入比例電壓放大電路。對單級電壓放大電路其電壓增益為
式中:Auf為電壓增益;uo為輸出端電壓;uI為輸入端電壓;RF為輸出端反饋回輸入端的等效電阻;R1為輸入端和運放同相輸入端之間的等效電阻。
單級放大電路的調(diào)試結果如圖11所示。圖11所示的輸入電壓為0.474 V,所示的輸出電壓為0.921 V,輸出電壓近似為輸入電壓的二倍。由此說明,運算放大器[11]芯片LM358可以正常工作,電路實現(xiàn)了電壓放大作用。
圖 11 單級放大電路調(diào)試結果圖Fig. 11 Debug result of single stage amplifier
模數(shù)轉(zhuǎn)換電路的調(diào)試結果如圖12所示。液晶屏上顯示當前電壓為1.23 V,所對應的照度值是57.01 lx。用電壓表測量ADC0832芯片的CH0端的電壓,并將這一電壓與液晶上顯示的電壓進行比較??梢钥吹?,電壓表所測得的CH0端的電壓為1.23 V,與液晶上所顯示的電壓相同。由此說明,ADC0832芯片能正常讀取模擬電壓值。
圖 12 模數(shù)轉(zhuǎn)換電路調(diào)試結果圖Fig. 12 Analog to digital conversion circuit debugging
由圖12所示的模數(shù)轉(zhuǎn)換電路的調(diào)試結果可知,液晶屏已正確地將放大4倍后的模擬電壓顯示了出來。
當照度值超過130 lx后,系統(tǒng)開始報警。此時:LCD1602液晶屏的第一行顯示“zdval is high”,表示照度值過高;第二行顯示“start warning”,表示有警告;面板上的紅色LED燈不斷閃爍,蜂鳴器報警。
型號為5528的光敏電阻,其最大功耗為100 mW。用表1中的第四組數(shù)據(jù)來計算光敏電阻的功耗。當顯示電壓Vdisplay=5.00 V時,相應的照度為401.61 lx。根據(jù)圖6所示的照度計電路圖,分析得到計算光敏電阻功耗的表達式為
式中:P是光敏電阻的功耗;Vcc是電源電壓(其值為圖6所示的12 V);Vinduced是感應電壓值(其值由式(1)計算得出,當Vdisplay=5.00 V時,Vinduced=1.25 V);R1是電阻值(其值為10 kΩ)。將Vcc、Vinduced和R1的數(shù)值代入式(4),得到此時光敏電阻的功耗為1.34 mW。該功耗值在光敏電阻的最大功耗范圍內(nèi),表明光敏電阻可以正常工作。
在照度計使用過程中,可以根據(jù)液晶顯示屏上的電壓值來計算感應電壓值,進而可以估算出光敏電阻的功耗值。這樣,就可以對光敏電阻的工作狀態(tài)進行實時監(jiān)測,確保其工作性能穩(wěn)定。
本文設計了基于單片機的模擬光照度計,該照度計的硬件模塊主要由光電轉(zhuǎn)換電路、放大濾波電路、A/D轉(zhuǎn)換電路、單片機最小系統(tǒng)電路、LCD1602顯示電路以及報警電路等組成。軟件模塊主要由顯示電壓值的子程序、計算并顯示照度值的子程序和報警子程序等組成。在設計出電路系統(tǒng)之后,根據(jù)該電路系統(tǒng)做出了光照度計的實物,并對實物進行了調(diào)試。結果表明,光照度計能夠正常工作,并且液晶可以顯示放大4倍后的電壓值。
隨著光照度計的應用領域越來越廣泛,這種將光電探測器所轉(zhuǎn)換而來的感應電壓也顯示出來的設計思想,可為未來照度計的設計提供參考。