#include <Keypad.h>
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', '4' },
{ '5', '6', '7', '8' },
{ '(', '(', '(', '(' },
{ '(', '(', '(', '(' }
};
char key;
unsigned int tiktik = 1000000;
int vystup = 0;
uint8_t colPins[COLS] = { 5, 4, 3, 2 }; // Pins connected to C1, C2, C3, C4
uint8_t rowPins[ROWS] = { 9, 8, 7, 6 }; // Pins connected to R1, R2, R3, R4
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
}
void loop() {
static unsigned int i = 0u;
static unsigned long minulyCas = micros();
unsigned long aktualniCas = micros();
unsigned long deltaCas = aktualniCas - minulyCas;
//Serial.println(deltaCas);
if (deltaCas < tiktik){
delayMicroseconds(tiktik - deltaCas);
Serial.println(tiktik - deltaCas);
}
switch (i % 4)
{
case 0:
cti_klavesnici();
break;
case 1:
urci_vystup();
break;
case 2:
aktivuj_vystup();
break;
case 3:
deaktivuj_vystup();
break;
} // switch (i % 4)
i++; // zvětšíme počítadlo počtu volání funkce switch
minulyCas = aktualniCas;
}
void cti_klavesnici( ) {
key = keypad.getKey();
}
void urci_vystup() {
if (key != NO_KEY) {
vystup = int(key)-40;
}
}
void aktivuj_vystup() {
if (int(key)-40 > 0) {
digitalWrite(vystup, HIGH);
}
}
void deaktivuj_vystup() {
digitalWrite(vystup, LOW);
Serial.println(vystup);
}