4X4鍵盤控制LED
#include <Keypad.h> // 鍵盤函式庫
const byte ROWS = 4; //4 列鍵盤
const byte COLS = 4; //4 行鍵盤
char keys[ROWS][COLS] = { // 鍵盤對應字元
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {30,31,32,33}; // 資料線接腳
byte colPins[COLS] = {34,35,36,37}; // 掃描線接腳
Keypad keynum = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS );int LED1=22; // 定義 LED 燈接至控制板接腳 13 <--可以隨意在程式中更改變數值,占用較大記憶體位置int LED2=23;int LED3=24;int LED4=25;int LED5=26;int LED6=27;int LED7=28;int LED8=29;int counter;
void setup(){
Serial.begin(9600); pinMode(LED1,OUTPUT); // 設置接腳 13 為輸出模式。 pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(LED5,OUTPUT); pinMode(LED6,OUTPUT); pinMode(LED7,OUTPUT); pinMode(LED8,OUTPUT); }
void loop(){
char key = keynum.getKey(); // 讀取按鍵值
if (key != NO_KEY){ // 判斷是否有按鍵值
}char val=key; // 讀取按鍵值發送給 val 變數 if(val=='1') { digitalWrite(LED1,HIGH); } if(val=='2') { digitalWrite(LED2,HIGH); } if(val=='3') { digitalWrite(LED3,HIGH); } if(val=='4') { digitalWrite(LED4,HIGH); } if(val=='5') { digitalWrite(LED5,HIGH); } if(val=='6') { digitalWrite(LED6,HIGH); } if(val=='7') { digitalWrite(LED7,HIGH); } if(val=='8') { digitalWrite(LED8,HIGH); } if(val=='A') { digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); digitalWrite(LED3,HIGH); digitalWrite(LED4,LOW); digitalWrite(LED5,HIGH); digitalWrite(LED6,LOW); digitalWrite(LED7,HIGH); digitalWrite(LED8,LOW); } if(val=='B') { digitalWrite(LED1,LOW); digitalWrite(LED2,HIGH); digitalWrite(LED3,LOW); digitalWrite(LED4,HIGH); digitalWrite(LED5,LOW); digitalWrite(LED6,HIGH); digitalWrite(LED7,LOW); digitalWrite(LED8,HIGH); } if(val=='C') { for (counter = 0; counter < 10; ++counter) { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); delay(500); digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); delay(500); } }
if(val=='0') { digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); Serial.println("LED 燈熄滅 "); // 監控視窗顯示「LED 燈熄滅」字串 }
}
const byte ROWS = 4; //4 列鍵盤
const byte COLS = 4; //4 行鍵盤
char keys[ROWS][COLS] = { // 鍵盤對應字元
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {30,31,32,33}; // 資料線接腳
byte colPins[COLS] = {34,35,36,37}; // 掃描線接腳
Keypad keynum = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS );int LED1=22; // 定義 LED 燈接至控制板接腳 13 <--可以隨意在程式中更改變數值,占用較大記憶體位置int LED2=23;int LED3=24;int LED4=25;int LED5=26;int LED6=27;int LED7=28;int LED8=29;int counter;
void setup(){
Serial.begin(9600); pinMode(LED1,OUTPUT); // 設置接腳 13 為輸出模式。 pinMode(LED2,OUTPUT); pinMode(LED3,OUTPUT); pinMode(LED4,OUTPUT); pinMode(LED5,OUTPUT); pinMode(LED6,OUTPUT); pinMode(LED7,OUTPUT); pinMode(LED8,OUTPUT); }
void loop(){
char key = keynum.getKey(); // 讀取按鍵值
if (key != NO_KEY){ // 判斷是否有按鍵值
}char val=key; // 讀取按鍵值發送給 val 變數 if(val=='1') { digitalWrite(LED1,HIGH); } if(val=='2') { digitalWrite(LED2,HIGH); } if(val=='3') { digitalWrite(LED3,HIGH); } if(val=='4') { digitalWrite(LED4,HIGH); } if(val=='5') { digitalWrite(LED5,HIGH); } if(val=='6') { digitalWrite(LED6,HIGH); } if(val=='7') { digitalWrite(LED7,HIGH); } if(val=='8') { digitalWrite(LED8,HIGH); } if(val=='A') { digitalWrite(LED1,HIGH); digitalWrite(LED2,LOW); digitalWrite(LED3,HIGH); digitalWrite(LED4,LOW); digitalWrite(LED5,HIGH); digitalWrite(LED6,LOW); digitalWrite(LED7,HIGH); digitalWrite(LED8,LOW); } if(val=='B') { digitalWrite(LED1,LOW); digitalWrite(LED2,HIGH); digitalWrite(LED3,LOW); digitalWrite(LED4,HIGH); digitalWrite(LED5,LOW); digitalWrite(LED6,HIGH); digitalWrite(LED7,LOW); digitalWrite(LED8,HIGH); } if(val=='C') { for (counter = 0; counter < 10; ++counter) { digitalWrite(LED1,HIGH); digitalWrite(LED2,HIGH); digitalWrite(LED3,HIGH); digitalWrite(LED4,HIGH); digitalWrite(LED5,HIGH); digitalWrite(LED6,HIGH); digitalWrite(LED7,HIGH); digitalWrite(LED8,HIGH); delay(500); digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); delay(500); } }
if(val=='0') { digitalWrite(LED1,LOW); digitalWrite(LED2,LOW); digitalWrite(LED3,LOW); digitalWrite(LED4,LOW); digitalWrite(LED5,LOW); digitalWrite(LED6,LOW); digitalWrite(LED7,LOW); digitalWrite(LED8,LOW); Serial.println("LED 燈熄滅 "); // 監控視窗顯示「LED 燈熄滅」字串 }
}