網頁

2022年8月11日 星期四

ESP32 - 使用 BlocklyDuino-亮度感測器,使用光敏電阻

主題

以 ESP32 設計LED小夜燈,使用光敏電阻,感測現場亮度數值。依據亮度明暗,開啟不同數量的LED作為補光。
當亮度數值 >= 2000 ,亮3個燈。
當亮度數值  >= 1000 ,亮2個燈。
當亮度數值  >= 500 ,亮1個燈。
當亮度數值 < 500 ,3個燈皆不亮。

感測器介紹

光敏電阻.類比感測,用於光線亮度檢測,DO數位開關量輸出(0和1)和AO類比電壓輸出。以AO的輸出值來說,0代表亮度最大,4095代表亮度最小。

接線方式

光敏電阻正面

VCC:接電源正極(5V)、GND:接電源負極、AO:類比輸出、DO:數位輸出。

VCC 接開發板的(V),GND 接開發板的(G),AO 接開發板的(S),DO不用接開發板。
光敏電阻接 PIN 36 即SVP(可類別輸入,且僅當輸入),不要接無法類比輸入的腳。使用三條杜邦線 連到 開發板的左邊的 S-V-G。
3個 led 燈分別接到開發板右邊的 PIN15、PIN2、PIN0。


程式




程式說明

序列埠 I/O,拿出「序列埠印出(換行)」block。


邏輯,取出 「如果 ...執行」。


「如果」原本祇有1個條件,按 「*」,可以增加條件,移進來是增加,移出去是減少。再按一次「*」關掉小視窗。

類比I/O,取出 「類比讀取」此block,PIN再改成為36。

數位I/O,拿出「數位寫入 PIN 狀態」此 block。
PIN 改成 15、2、0 ,狀態 高電位表示 燈亮,低電位表示 燈暗。
時間,拿出「延遲毫秒 」此 block。1000毫秒表示1秒。

執行結果

按 「Putty 序列埠監看視窗」鈕,再按 「開啟PUTTY」鈕,就看到結果了!






亮度很亮,3個led 燈皆不亮。



亮度普通,2個led 燈亮。

沒有亮度,3個led 燈亮。