按鍵控制LED實驗電路(二)

按鍵控制 LED 電路原理圖

電路說明:

    1. R2 為限流電阻。一般的 LED 最大能承受的電流為 25 mA,若直接將 LED 連接到電路中,則當點亮 LED 時很容易將其燒毀。
    2. R1 為下拉電阻。在 Arduino 開發板的 2 號引腳到 GND 之前,連接了一個阻值很大的電阻 ( 10KΩ )。如果沒有該電阻,則未按下按鍵時,2 號引腳會一直處於“懸空” 狀態,此時使用 digitalRead( ) 函數讀取 2 號引腳的狀態會得到一個不穩定的值 ( 可能是高,也可能是低 )。添加這個 R1 電阻到 GND 就是為了穩定引腳的電位。當該引腳懸空時,就會被識別為低電位。而這種將某節點通過電阻接地的做法稱為下拉,這個電阻就稱為下拉電阻。

程式碼

int buttonPin = 2;    // 連接按鍵的引腳
int ledPin = 13;        // 連接 LED 的引腳
int buttonState = 0; // 儲存按鍵狀態的變數

void setup() {
  // 初始化按鍵引腳為輸入狀態
  pinMode(buttonPin,INPUT);
 // 初始化 LED 引腳為輸入狀態
  pinMode(ledPin,OUTPUT);
}

void loop() {
  // 讀取按鍵狀態並儲存在變數中
  buttonState = digitalRead(buttonPin);
  // 檢查按鍵是否被按下
  // 如果按鍵被按下,則 buttonState 應該為高電位
  if(buttonState==HIGH)
  {
    // 點亮 LED
    digitalWrite(ledPin,HIGH);
  }
  else
  {
    // 熄滅 LED
    digitalWrite(ledPin,LOW);
  }
}

實驗結果

按鍵控制LED實驗電路(一)

按鍵控制 LED 電路原理圖

程式碼

// 定義按鍵輸入引腳、LED 輸出引腳及按鍵狀態
int buttonPin = 2;
int ledPin = 13;
int buttonState = 0;

void setup() {
  // 初始化按鍵引腳為輸入狀態
  pinMode(buttonPin,INPUT_PULLUP);
  // 初始化 LED 引腳為輸出狀態
  pinMode(ledPin,OUTPUT);
}

void loop() {
  // 讀取按鍵狀態並存入 buttonState 變數中
  buttonState = digitalRead(buttonPin);
  // 檢查按鍵是否被按下
  // 如果按鍵被按下 , 則 buttonState 應為低電位
  if(buttonState==LOW)
  {
    // 熄滅 LED 
    digitalWrite(ledPin,LOW);
  }
  else
  {
    // 點亮 LED
    digitalWrite(ledPin,HIGH);
  }
}

實驗結果

流水燈實驗電路

流水燈電路原理圖

程式碼

void setup() {
  // 初始化 I/O 口
  for (int i=8;i<13;i++)
      pinMode(i,OUTPUT);
}

void loop() {
  // 從引腳 8 到引腳 12, 逐個點亮 LED, 等待 1 秒再熄滅 LED
  for (int i=8;i<13;i++)
  {
    digitalWrite(i,HIGH);
    delay(1000);
    digitalWrite(i,LOW);
  }
  // 從引腳 12 到引腳 8, 逐個點亮 LED, 等待 1 秒再熄滅 LED
  for (int i=12;i>7;i--)
  {
    digitalWrite(i,HIGH);
    delay(1000);
    digitalWrite(i,LOW);
  }
}

實驗結果

相關函數說明

pinMode ( pin , mode )

參數 pin 為指定配置的引腳編號,參數 mode 為指定配置模式,可使用的的三種模式如下:

    1. INPUT : 輸入模式。
    2. OUTPUT : 輸出模式。
    3. INPUT_PULLUP : 輸入上拉模式。

配置為輸出模式以後,還需要使用 digitalWrite( ) 函數使該引腳輸出高電位或低電位。

delay ( value )

為毫秒延時函數,delay ( 1000 ) 為延時 1 秒 ( 1000 毫秒 )。

digitalWrite ( pin , value )

其中參數 pin 為指定輸出的引腳編號。參數 value 為要指定的輸出電位,使用 HIGH 指定輸出高電位,使用 LOW 指定輸出為低電位。

Arduino 中輸出的低電位為 0 V,輸出的高電位為當前 Arduino 的工作電壓,一般為 5 V。