2015年5月25日 星期一

課程23-4x4 按鍵模組實驗

目的:

使用Arduino實作用4x4 按鍵模組實驗,讀取鍵盤模組的

電子元件:

麵包板 x 1
Arduino 主板 x 1
4x4按鍵模組 x 1

電路圖:


下載:
Keypad.zip 解壓縮後得到目錄Keypad,放到Arduino的sketchbook目錄下的libraries目錄裡。

LM35 datasheet

程式碼:


  1. #include <Keypad.h>
  2. const byte ROWS = 4;
  3. const byte COLS = 4;
  4. char keys[ROWS][COLS] = {
  5.  {'1','2','3','A'},
  6.  {'4','5','6','B'},
  7.  {'7','8','9','C'},
  8.  {'*','0','#','D'}
  9. };
  10. byte rowPins[ROWS] = {2,3,4,5};
  11. byte colPins[COLS] = {6,7,8,9};
  12. Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
  13. void setup(){
  14.  Serial.begin(9600);
  15. }
  16. void loop(){
  17.  char key = keypad.getKey();
  18.  if (key != NO_KEY){
  19.    Serial.println(key);
  20.  }
  21. }

程式說明:

第一行 匯入Keypad.h
第二行 宣告byte 變數ROWS為 4
第三行 宣告byte 變數COLS為 4
第四行~第九行 宣告一個二維陣列keys,用來對應鍵盤上的數值。
第十行 宣告鍵盤橫軸的腳位分別為Pin2、Pin3、Pin4、Pin5。
第十一行 宣告鍵盤縱軸的腳位分別為Pin6、Pin7、Pin8、Pin9。
第十二行 使用Keypad class,傳入對應的參數。
第十三行~第十五行 打開Serial 通訊,並設定頻率為9600。
第十六行~第二十一行 為主程式
第十七行 讀取鍵盤模組輸入的數值,並傳給字元變數key。
第十八行 使用IF判斷式檢查鍵盤模組是否有輸入,如果有執行下面程式。
第十九行 在Serial 印出鍵盤模組輸入的按鍵。

圖表:

實驗影片:





參考資料:


2 則留言:

  1. 請問有沒有辦法做複合鍵(Alt+1,Alt+2,......)

    回覆刪除
  2. 為什麼我的Keypad都不是橘色的字

    回覆刪除

Arduino、Raspberry Pi、System Integration,如有問題或建議,可以互相討論喔~