如何讓麵包板上的按鈕(pushButton) 按下後,送訊號給arduino處理?
成果展示:

按下圖中箭頭所指的按鈕
Serial Monitor視窗觀察被按下(本範例中總共按下2次)
基本配備:
- Arduino 開發板 * 1
- 麵包板(breadboard) * 1
- 電子排線/跳線 * 數條
- Arduino開發軟體 (至此網站下載http://arduino.cc/en/Main/Software)
電子零件:
- 按鈕開關(PushButton或是Switch) *1
- 10K 電阻 * 1
模型圖
電路圖
高應大 蕭竹源 彰化師範大學
arduino程式碼
/*
arduino偵測外部按鈕
=>藉由讀取第2腳位的數位訊號,輸出結果到'serial monitor'視窗
2013/01/10 jwu
*/
int pushButton = 2; // 變數,偵測麵包板上按鈕(button)之arduino腳位
int buttonState = 0; //變數,定義按鈕目前狀態
void setup() { //初始化程序setup,在開機或重置時只會執行一次
Serial.begin(9600); //指定Arduino從電腦交換訊息的速率,一般使用9600 bps,可在'Serial Monitor'視窗檢視結果
pinMode(pushButton, INPUT);// 把 buttonPin 變數值設置成輸入
}
void loop() { //無限迴圈loop,在此程序內的動作將持續進行,直至斷電
buttonState = digitalRead(pushButton); // 取得外部按鈕狀態
if (buttonState == HIGH) { // 偵測到buttonState 的值若變為 'HIGH' ,則表示按鈕被按下
Serial.print("click! buttonState="); //輸出被按下的文字,可在'Serial Monitor'視窗觀察
Serial.println(buttonState); //輸出buttonState 的值
buttonState == LOW; //將'按鈕目前狀態'之變數改成沒有被按下
delay(200); // 採用延遲200毫秒可讓偵測穩定些,不會太過敏感,導致按下沒立即放開會輸出上百筆訊號,可修改此值並可在'Serial Monitor'視窗觀察
}
}
延伸做法:
如何透過按鈕按下後讓LED或其他元件動作?
<<回到arduino總目錄>>