文章程式碼顯示

2019年1月27日 星期日

《入門》寫程式Arduino教學 - 10 : 按鈕開關 以及 防機械彈跳

機械開關往往會有機械彈跳的問題

所產生的結果就是明明按鈕指有被按一下,但 Arduino 確認為按了很多下

這不是 Arduino 的問題,而是所有的微控制器因為其感測速度太快而產生

解決機械彈跳最簡單的辦法就是使用 debounce 函式庫

直接上程式碼


#include "Bounce.h"

#define Btn 2

Bounce bouncer = Bounce( Btn,40 ); // 若將 40 這個數字改大 debounce 效果會更好
// 但有可能造成開關變的不是很靈敏,建議設置 30~50 之間
int i = 0;

void setup() {
  Serial.begin(9600);
  pinMode(Btn,INPUT); //按鈕預設為低位觸發,也就是按下按鈕後讀值為 LOW 電壓
}

void loop() {
  
  if ( bouncer.update() && !bouncer.read()){  
      i++;
      Serial.println(i);
    
  }
  
}




我的 Youtube 頻道,一定要訂閱
我將定期推出程式語言的新手教學影片


↓↓↓ 連結到部落格方針與索引 ↓↓↓

Blog 使用方針與索引