#include <Keypad.h>
// Definovanie veľkosti klávesnice
const byte ROWS = 4;
const byte COLS = 4; // Máš 4 stĺpce
// Mapa klávesnice
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
// Piny pre riadky a stĺpce
byte rowPins[ROWS] = {7, 6, 5, 4}; // R1–R4
byte colPins[COLS] = {8, 9, 10, 11}; // C1–C4
// Inicializácia keypad knižnice
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Definícia pinov 7-segmentovky (A–G)
const int segmentPins[7] = {A0, A1, A2, A3, A4, A5, 2};
// Segmentové vzory pre čísla 0-9
// (poradie segmentov: a,b,c,d,e,f,g)
byte digits[10][7] = {
{1,1,1,1,1,1,0}, // 0
{0,1,1,0,0,0,0}, // 1
{1,1,0,1,1,0,1}, // 2
{1,1,1,1,0,0,1}, // 3
{0,1,1,0,0,1,1}, // 4
{1,0,1,1,0,1,1}, // 5
{1,0,1,1,1,1,1}, // 6
{1,1,1,0,0,0,0}, // 7
{1,1,1,1,1,1,1}, // 8
{1,1,1,1,0,1,1} // 9
};
void setup() {
// Nastavíme všetky segmentové piny ako výstup
for (int i = 0; i < 7; i++) {
pinMode(segmentPins[i], OUTPUT);
}
// Vypneme všetky segmenty na začiatku
clearDisplay();
}
void loop() {
char key = keypad.getKey();
if (key != NO_KEY) {
if (key >= '0' && key <= '9') {
int number = key - '0'; // Prevod znaku na číslo
displayDigit(number);
} else {
// Ak stlačíš A, B, C, D, *, alebo #
clearDisplay();
}
}
}
void displayDigit(int num) {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], digits[num][i]);
}
}
void clearDisplay() {
for (int i = 0; i < 7; i++) {
digitalWrite(segmentPins[i], LOW);
}
}