ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)

在本入門指南中,您將學習如何使用帶有 Arduino IDE 的 ESP8266 NodeMCU 板讀取按鈕開關等數字輸入和控制 LED 等數字輸出。

ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)

先決條件

我們將使用 Arduino IDE 對 ESP8266 進行程式設計。因此,請確保在繼續之前安裝了 ESP8266 板外掛:

ESP8266 NodeMCU 控制數字輸出

首先,您需要將要控制的 GPIO 設定為輸出。 使用銷模式()功能如下:

pinMode(GPIO, OUTPUT);

要控制數字輸出,您只需使用數字寫入()函式,它接受您所指的 GPIO(整數)和狀態作為引數高的或者低的。

digitalWrite(GPIO, STATE);

檢視ESP8266 GPIO 參考指南,瞭解哪些 GPIO 更適合用作輸出。

ESP8266 NodeMCU 讀取數字輸入

首先,將要讀取的 GPIO 設定為輸入, 使用銷模式()功能如下:

pinMode(GPIO, INPUT);

要讀取數字輸入,例如按鈕,您可以使用數字讀取()函式,它接受您所指的 GPIO(整數)作為引數。

digitalRead(GPIO);

檢視ESP8266 GPIO 參考指南,瞭解哪些 GPIO 更適合用作輸入。

專案示例

為了向您展示如何使用數字輸入和數字輸出,我們將構建一個帶有按鈕和 LED 的簡單專案示例。我們將讀取按鈕的狀態並相應地點亮 LED,如下圖所示。

ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)

原理圖,示意圖

在繼續之前,您需要組裝一個帶有 LED 和按鈕的電路。我們將 LED 連線到通用輸入輸出介面 5(D1) 和按鈕通用輸入輸出介面 4(D2)。

所需零件

以下是構建電路所需的部件列表:

ESP8266(閱讀最佳 ESP8266 開發板)

5 毫米 LED

330歐姆電阻

按鈕

10k歐姆電阻

麵包板

跳線

ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)

程式碼

將以下程式碼複製到您的 Arduino IDE。

// Complete Instructions: https://RandomNerdTutorials。com/esp8266-nodemcu-digital-inputs-outputs-arduino/// set pin numbersconst int buttonPin = 4; // the number of the pushbutton pinconst int ledPin = 5; // the number of the LED pin// variable for storing the pushbutton statusint buttonState = 0;void setup() { // initialize the pushbutton pin as an input pinMode(buttonPin, INPUT); // initialize the LED pin as an output pinMode(ledPin, OUTPUT);}void loop() { // read the state of the pushbutton value buttonState = digitalRead(buttonPin); // check if the pushbutton is pressed。 // if it is, the buttonState is HIGH if (buttonState == HIGH) { // turn LED on digitalWrite(ledPin, HIGH); } else { // turn LED off digitalWrite(ledPin, LOW); }}

程式碼如何運作

在以下兩行中,您建立變數來分配引腳:

const int buttonPin = 4;const int ledPin = 5;

按鈕連線到通用輸入輸出介面 4和 LED 連線到通用輸入輸出介面 5。 在 ESP8266 上使用 Arduino IDE 時,4 對應於通用輸入輸出介面 4和 5 對應通用輸入輸出介面 5。

接下來,您建立一個變數來儲存按鈕狀態。預設為 0(未按下)。

int buttonState = 0;

在裡面設定(),您將按鈕初始化為輸入,和LED作為一個輸出。 為此,您使用銷模式()接受您所指的引腳和模式的函式:輸入或者輸出。

pinMode(buttonPin, INPUT);pinMode(ledPin, OUTPUT);

在裡面環形()是您讀取按鈕狀態並相應設定 LED 的位置。

在下一行中,您讀取按鈕狀態並將其儲存在按鈕狀態多變的。正如我們之前看到的,您使用數字讀取()功能。

buttonState = digitalRead(buttonPin);

下面的 if 語句,檢查按鈕狀態是否為高的。 如果是,它會使用數字寫入()接受作為引數的函式引腳, 和狀態高的。

if (buttonState == HIGH) { digitalWrite(ledPin, HIGH);}

如果按鈕狀態不是高的,您將 LED 關閉。剛設定低的作為第二個論點數字寫入()功能。

else { digitalWrite(ledPin, LOW);}

上傳程式碼

在單擊上傳按鈕之前,轉到

Tools

>

Board

,然後選擇您正在使用的板。就我而言,它是NodeMCU 1。0 (ESP-12 E Module)。如果您不知道您的 ESP8266 型號,您可以選擇“Generic ESP8266 Module”。

轉到

工具

>

並選擇 ESP8266 連線到的 COM 埠。然後,按下上傳按鈕並等待“

完成上傳

”訊息。

示範

上傳程式碼後,測試您的電路。當您按下按鈕時,您的 LED 應該會亮起:

ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)

並在釋放時關閉:

ESP8266 NodeMCU 數字輸入和數字輸出(Arduino IDE)