【Arduino】各式按鈕輸入

在做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的改變來判斷使用者按下的按鈕為哪一個。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *