天天看點

《Microduino實戰》——3.7 光敏電阻

本節書摘來自華章出版社《microduino實戰》一 書中的第3章,第3.7節,作者:姚琪 楊立斌,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

前面的實踐都是在對數字i/o的操作以及pwm輸出,本節會通過一個光敏電阻的練習來學習模拟輸入。

我們所使用的微控制器是數字晶片,其數字i/o口隻能有兩種狀态:高電平或低電平,出現中間狀态晶片是不識别或無法輸出的。其中pwm輸出,盡管在程式中用analogwrite()這樣的函數,但實際上也還是一種數字的輸出。

這裡要使用的i/o模拟輸入功能,其實是通過adc的電路,将環境中擷取的模拟量(連續值),通常是電壓值轉化成一個數字量,該數值與電壓值成正比例關系。

基本原理

光敏電阻是一種将光信号轉換成電信号的半導體元器件,如圖3-29所示。在沒有光線的情況下,電阻值很高,而當受到光照時,電阻值會下降。光照愈強,阻值愈低。光敏電阻跟普通電阻一樣,沒有極性,交流或直流都能使用。

在晚上沒有光線時,光敏電阻的阻值在幾兆歐左右,而在白天強光照射的情況下,其電阻值下降至幾百歐到幾千歐。如圖3-30所示,光線越強,光敏電阻和固定電阻總的電阻越小,電流增大,使得定值電阻兩端電壓增大,而光敏電阻兩端電壓減小。可見光敏電阻兩端的電壓可以直接反映光線強度,即兩端電壓越高,光線越弱。是以我們可以認為,如果測到的電壓高于某個值,就說明天黑了;而低于某個值,說明天亮了。通過這樣的方式來模拟一個自動的路燈。

具體步驟

硬體清單

硬 件 名 稱 數  量 功  能

microduino-core 1 核心控制闆

microduino-usbttl 1 下載下傳程式,序列槽通信

usb資料線 1 連接配接計算機和usb序列槽裝置

光敏電阻 1 感應光的強度

220Ω的電阻 2 限流,保護led

led 1 發光二極管

面包闆 1 萬能連接配接闆

導線 若幹 連接配接電子元器件

根據上面提供的硬體清單準備好多種元器件,然後根據連接配接示意圖搭建電路,如

圖3-31所示。

《Microduino實戰》——3.7 光敏電阻

程式清單

程式中用于判斷的參考值是一個經驗值,可以根據實際情況在程式中修改該參考值。當然,另一種可選的方案是,将外部的固定電阻換成一個100kΩ的可調電阻,同樣可以用來調節開關燈的門檻值。

将程式清單中的源代碼輸入arduino ide中,并編譯下載下傳到控制闆晶片中。

觀察現象

當用燈照着光敏電阻時,即模拟白天時,led是熄滅的;而當用遮蓋物罩住光敏電阻時,即模拟晚上,led是點亮的。