#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const byte RIADOK_NUM = 4;
const byte STLPEC_NUM = 4;
char tlacidla[RIADOK_NUM][STLPEC_NUM] = {
{'1','2','3', 'A'},
{'4','5','6', 'B'},
{'7','8','9', 'C'},
{'*','0','#', 'D'}
};
byte pin_riadok [RIADOK_NUM] = {13, 12, 14, 27};
byte pin_stlpec [STLPEC_NUM] = {26, 25, 33, 32};
Keypad keypad = Keypad(makeKeymap(tlacidla), pin_riadok , pin_stlpec , RIADOK_NUM, STLPEC_NUM);
int pocetA = 0;
int pocetB = 0;
int pocetC = 0;
int pocetD = 0;
#define led 5
void setup() {
Serial.begin(9600);
pinMode (led, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Stlac A/B/C/D");
lcd.setCursor(0, 1);
lcd.print("Pre reset #");
}
void loop() {
char key = keypad.getKey();
if (key) { Serial.println(key);
switch (key) {
case 'A':
pocetA++;
if (pocetA > 20)
{
pocetA = 19;
}
break;
case 'B':
pocetB++;
break;
case 'C':
pocetC++;
break;
case 'D':
pocetD++;
break;
case '#':
pocetA = 0;
pocetB = 0;
pocetC = 0;
pocetD = 0;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Stlac A/B/C/D");
lcd.setCursor(0, 1);
lcd.print("Pre reset #");
delay(2000);
break;
default:
break;
}
if (pocetA == pocetB && pocetB == pocetC && pocetC == pocetD)
{
digitalWrite(led, HIGH);
}
else
{
digitalWrite(led, LOW);
}
lcd.clear();
lcd.setCursor(0, 0);
for (int i = 0; i < pocetA; i++) lcd.print("X");
lcd.setCursor(0, 1);
for (int i = 0; i < pocetB; i++) lcd.print("X");
lcd.setCursor(0, 2);
for (int i = 0; i < pocetC; i++) lcd.print("X");
lcd.setCursor(0, 3);
for (int i = 0; i < pocetD; i++) lcd.print("X");
}
}