Arduino 記事本 04 : 使用內建提升電阻

網頁筆記本-004

Arduino內建的提升電阻

Arduino : 一般狀況下的程式設定

一般腳位在設定時通常是Key成這樣
void setup() {
  pinMode(13, OUTPUT);  // 設定成輸出腳位
  pinMode(12, INPUT);   // 設定成輸入腳位
}

void loop() {
  bool PB1 = digitalRead(12);
  digitalWrite(13, PB1);
}

實做後發現,輸入腳位會不定時並且不斷的收到訊號輸入。

硬體上的防彈跳電路

  1. 在按鈕按下前可持續收到HIGH訊號,按下按鈕後收到LOW訊號。
  2. 電阻為提升電阻功能,可保證按鈕未按下前收到HIGH訊號。
  3. 電容的作用可防止按下的瞬間產生數次的HIGH-LOW訊號來回切換(彈跳訊號)。

Adruino提供的內部提升電阻

程式如下
void setup() {
  pinMode(2, INPUT_PULLUP);
  pinMode(13, OUTPUT);
}

void loop() {
  int sensorVal = digitalRead(2);

  if (sensorVal == HIGH) {
    digitalWrite(13, LOW);
  } 
  else {
    digitalWrite(13, HIGH);
  }
}

輸入腳位的設應改變成
pinMode(2, INPUT_PULLUP);

官網介紹

留言

這個網誌中的熱門文章

Arduino 記事本 06 : Read-Time Clock(RTC)模組

Arduino 記事本 07 : 發出聲音(無源蜂鳴器)控制