在做Arduino實習時,常常會需要用到按鈕讀取外部資訊,此篇文章將簡單介紹幾種按鈕的使用方式。
最常使用得按鈕如下圖所示:其中1、3和2、4腳分別是相通的,當按下按鈕後左右兩邊的腳會接通,
現在知道按鈕的動作原理後,透過Arduino來讀取按鈕的訊息,可以用數位腳來讀取High與Low訊號。
接線: 當開關沒有按下時,pin2接腳為High,開關按下後pin2則變為Low
程式:
[code]
void setup() {
Serial.begin(9600); //設定鮑率為9600
pinMode(2, INPUT); //設定Pin2為輸入接腳
}
void loop() {
Serial.println( digitalRead(2)); //讀取pin2並顯示在序列監控視窗
delay(500);
}
[/code]
完成上傳後可以開起序列監控視窗來看pin2的值
由上面範例可知,當需要用到5個按鈕時,就必須要占用5個數位接腳來讀取數值,而Arduino僅提供13隻數位接腳,因此可能會有接腳數不夠的情形發生。
為了解決腳位不夠的情況,可以用1隻類比腳位讀取多個按鈕輸入,線路接法如下圖,主要是透過分壓的方式來給A0腳不同的值。
當分別按下S1時,A0可以得到不同的分壓值,麵包版接線方式如下,
程式:
[code]
void setup() {
Serial.begin(9600); //設定鮑率為9600
}
void loop() {
Serial.println( analogRead(A0)); //讀取A0腳值
delay(500); //延遲0.5S
}
[/code]
上傳完成後開始序列監控視窗,分別按下S1~S5並觀察A0值的改變,如此一來就可以透過A0的改變來判斷使用者按下的按鈕為哪一個。