#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {A0,A1,A2,A3};
byte colPins[COLS] = {13,12,11,10};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
const int segmentPins[] = {2, 3, 4, 5, 6, 7, 8};
const int commonPin = 9;
void setup() {
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
pinMode(commonPin, OUTPUT);
}
void loop() {
char key = keypad.getKey();
if (key) {
displayNumber(key);
delay(5);
}
}
void displayNumber(char number) {
byte segments[] = {
B00111111,
B00000110,
B11011011,
B01001111,
B01100110,
B01101101,
B01111101,
B00000111,
B01111111,
B01101111
};
int num = number - '0';
digitalWrite(commonPin, HIGH);
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], bitRead(segments[num], i));
}
digitalWrite(commonPin, LOW);
delay(1000);
digitalWrite(commonPin, HIGH);
}