4X4鍵盤的原理其實就是按鈕,只是利用直橫交錯的方式接成一個4*4的方形,其餘的運作方式都和按鈕相同。
使用的時候需要安裝函式庫,我們使用的是【Keypad】函式庫,安裝的方法請參考【紅外線遙控】或【指紋辨識】課程。
由左至右分別為13、12、11、10以此類推至6號腳位。
#include <Keypad.h;>
#define KEY_ROWS 4
#define KEY_COLS 4

char keymap[KEY_ROWS][KEY_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
}
byte colPins[KEY_COLS] = {9, 8, 7, 6};
byte rowPins[KEY_ROWS] = {13, 12, 11, 10};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, KEY_ROWS, KEY_COLS);
   設定鍵盤的名稱為myKeypad,括弧內分別代表模組列接腳, 模組欄接腳, 模組列數, 模組欄數

void setup(){
Serial.begin(9600);
}

void loop(){
char key = myKeypad.getKey();
if (key){
Serial.println(key);
}
}
加入Keypad函式庫
設定按鍵模組的列
設定按鍵模組的欄

依照列、欄排列的按鍵字元(用二維陣列的方式顯示)





按鍵模組欄對應的腳位9、8、7、6。
按鍵模組列對應的腳位13、12、11、10。








設定字串型式的變數key為myKeypad(就是我們設定的鍵盤)讀取到的內容。
如果key被按下。
序列埠輸出key的值。
除了if以外還可以用switch來設立條件
void loop(){
char key = myKeypad.getKey();
switch(key){
case '2':{
digitalWrite(2, HIGH);
break;
}
case '3':{
digitalWrite(2, LOW);
break;
}
}
}


設定要判別的條件
如果條件為2
2號數位角為輸出高電位
跳出判別式

如果條件為3
2號數位角為輸出低電位
跳出判別式
使用switch的注意事項
1.switch的條件不能設定區間。
2.如果當條件外的狀況發生時,可以用default來代替case,代表其他所有的情況。
3.以上面的例子中,因為條件是"字串",所以要設定為'3',否則直接打3就可以。