ESP32學習記錄010-2~監控按鈕按下後的接腳電位,再來點亮 LED燈

ESP32學習記錄010-2~監控按鈕按下後的接腳電位,再來點亮 LED燈


這次範例的完成品如下。

我們用 digitalRead持繼的去監控 pin 5的電位。如果 pin 5的電位是 HIGH的時候,我們就點亮 LED燈。如果是 LOW的時候,就關閉 LED燈。

眼尖的人應該看的出來了,怎麼好像在按鈕按下的時候,LED的反應不太靈敏的樣子。
對,這個接線有點問題,我們放在下一篇來說,這一篇就先說到目前的接線。


接線的圖是這樣。


全部的程式碼是這樣。

很明顯的,因為我們要監控接腳 5的電位,所以在第 5行的地方,把接腳 5的 pinMode,設定為 INPUT。
接腳 26要用來供電給 LED燈,所以把接腳 26的 pinMode,設定為 OUTPUT。

接著用判斷式 if,跟 digitalRead的指令去抓接腳 5的電位。
如果 pin 5的電位是 HIGH的時候,我們就點亮 LED燈。
然後用 serialPrintln的指令,在序列埠中顯示 “輸入電位為 HIGH”的文字。

如果是 LOW的時候,就關閉 LED燈。
然後用 serialPrintln的指令,在序列埠中顯示 “輸入電位為 LOW”的文字。

delay(500);,每 0.5秒就做同樣的動作一次。


這裡要補充說明一下,雖然我們在按鈕元件的一端接到 pin 5,但是在按鈕沒有按下的時候,pin 5的這條線等於是空接。而空接的線會像天線一樣,不斷的去受到附件電場的影響。所當我們在按鈕放開的時候,雖然我們知道電路已經斷開。但是在用 digitalRead讀取值的時候,可能會讀取到雜訊。讀取到的值,就不一定是 HIGH或是 LOW。
這個部份,只要加一個電阻電阻就可以解決,我們下一篇再來說明。

這次 wokwi的連結如下:
ESP32學習記錄010-2~監控按鈕按下後的接腳電位,再來點亮 LED燈
https://wokwi.com/projects/335499027873268307

發表迴響