#include<Keypad.h>
char keys[4][4]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
uint8_t led_pins[12]={11,10,9,8,7,6,5,4,3,2,28,27};
uint8_t row_pins[4]={26,22,21,20};
uint8_t col_pins[4]={19,18,17,16};
Keypad keypad=Keypad(makeKeymap(keys),row_pins,col_pins,4,4);
void setup() {
for(int i=0;i<12;i++){
pinMode(led_pins[i], OUTPUT);
digitalWrite(led_pins[i], LOW);
}
}
void loop() {
char key=keypad.getKey();
if(key!=NO_KEY){
switch(key){
case '1': digitalWrite(led_pins[0], HIGH);
break;
case '2': digitalWrite(led_pins[1], HIGH);
break;
case '3': digitalWrite(led_pins[2], HIGH);
break;
case '4': digitalWrite(led_pins[3], HIGH);
break;
case '5': digitalWrite(led_pins[4], HIGH);
break;
case '6': digitalWrite(led_pins[5], HIGH);
break;
case '7': digitalWrite(led_pins[6], HIGH);
break;
case '8': digitalWrite(led_pins[7], HIGH);
break;
case '9':
for(int i=0;i<8;i++){
digitalWrite(led_pins[i], HIGH);
}
break;
case '0':
for(int i=0;i<8;i++){
digitalWrite(led_pins[i], LOW);
}
break;
case 'A': digitalWrite(led_pins[8], HIGH);
break;
case 'B': digitalWrite(led_pins[9], HIGH);
break;
case 'C': digitalWrite(led_pins[10], HIGH);
break;
case 'D': digitalWrite(led_pins[11], HIGH);
break;
case '*':
for(int i=8;i<12;i++){
digitalWrite(led_pins[i], HIGH);
}
break;
case '#':
for(int i=8;i<12;i++){
digitalWrite(led_pins[i], LOW);
}
break;
}
}
delay(10);
}