Arduino - 連線開關



按鈕或開關連線電路中的兩個斷開端子。此示例在按下連線到 8 號引腳的按鈕開關時,開啟 2 號引腳上的 LED。

Connecting Switch

下拉電阻

下拉電阻用於電子邏輯電路中,以確保如果外部裝置斷開連線或處於高阻抗狀態,Arduino 的輸入將穩定在預期的邏輯電平。沒有任何東西連線到輸入引腳並不意味著它是邏輯零。下拉電阻連線在地和裝置上的相應引腳之間。

下圖顯示了數位電路中下拉電阻的一個示例。一個按鈕開關連線在電源電壓和微控制器引腳之間。在這樣的電路中,當開關閉合時,微控制器的輸入為邏輯高值,但是當開關開啟時,下拉電阻將輸入電壓下拉到地(邏輯零值),防止輸入出現未定義狀態。

下拉電阻的電阻必須大於邏輯電路的阻抗,否則它可能會將電壓下拉太多,並且引腳上的輸入電壓將保持恆定的邏輯低值,而不管開關位置如何。

Pull-down Resistor

所需元件

您將需要以下元件:

  • 1 個 Arduino UNO 開發板
  • 1 個 330 歐姆電阻
  • 1 個 4.7K 歐姆電阻(下拉電阻)
  • 1 個 LED

步驟

按照電路圖,進行如下所示的連線。

Connections of Circuit Diagram

程式

在您的電腦上開啟 Arduino IDE 軟體。使用 Arduino 語言進行編碼將控制您的電路。點選“新建”開啟一個新的程式檔案。

Sketch

Arduino 程式碼

// constants won't change. They're used here to
// set pin numbers:
const int buttonPin = 8; // the number of the pushbutton pin
const int ledPin = 2; // the number of the LED pin
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status

void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);
}

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);
   }
}

程式碼說明

當開關開啟時(按鈕未按下),按鈕的兩個端子之間沒有連線,因此引腳連線到地(透過下拉電阻),我們讀取 LOW。當開關閉合時(按鈕按下),它在其兩個端子之間建立連線,將引腳連線到 5 伏,因此我們讀取 HIGH。

結果

按下按鈕時 LED 亮起,鬆開按鈕時 LED 熄滅。

廣告