/*
################################################################################
# Artefact ASG v1.1 [ROBOCZY] #
# by Sir Tedi #
# #
# Created : 27.04.2023 #
################################################################################
*/
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
const uint8_t ROWS = 4;
const uint8_t COLS = 4;
char keys[ROWS][COLS] = {
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t rowPins[ROWS] = { 26, 22, 21, 20 }; // Pins connected to R1, R2, R3, R4
uint8_t colPins[COLS] = { 19, 18, 17, 16 }; // Pins connected to C1, C2, C3, C4
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup()
{
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("[A] - DOMINACJA");
lcd.setCursor(0, 1);
lcd.print("[B] - BOMBA 'KOD'");
lcd.setCursor(0, 2);
lcd.print("[C] - BOMBA 'KLUCZ'");
lcd.setCursor(0, 3);
lcd.print("[D] - BOMBA 'DRUTY'");
}
void menuA()
{
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("DOMINACJA");
lcd.setCursor(0, 1);
lcd.print("[A] - USTAW CZASU");
lcd.setCursor(0, 2);
lcd.print("[#] - START");
lcd.setCursor(0, 3);
lcd.print("[*] - ANULUJ");
}
void menuA2()
{
lcd.begin(20, 4);
lcd.setCursor(0, 0);
lcd.print("DOMINACJA - CZAS");
lcd.setCursor(0, 1);
lcd.print("XX:XX:XX");
lcd.setCursor(0, 2);
lcd.print("[#] - OK");
lcd.setCursor(0, 3);
lcd.print("[*] - ANULUJ");
}
void loop()
{
char key = keypad.getKey();
// CZAS //
unsigned long int time;
unsigned long int minuty;
byte sekundy;
byte setne;
// MENU //
byte menu;
// MODE //
byte mode;
if (key!=NULL)
{
// DOMINACJA - MENU 1 //
if (mode == 0)
{
if (key == 'A') // MENU A
{
mode = 1;
menuA();
key = NULL;
}
};
// DOMINACJA - MENU 2 //
if (mode == 1)
{
if (key == 'A') // MENU A
{
menuA2();
key = NULL;
}
};
if (key == 'B') {mode = 2;};
if (key == 'C') {mode = 3;};
if (key == 'D') {mode = 4;};
// CZAS //
time = millis();
minuty = time / 60000;
sekundy = (time / 1000) - 60 * minuty;
setne = time % 1000;
/*
lcd.setCursor(0, 1);
lcd.print(key);
lcd.setCursor(0, 2);
lcd.print(time);
lcd.setCursor(0, 3);
lcd.print(minuty);
lcd.print("\'");
lcd.print(sekundy);
lcd.print("\"");
lcd.print(setne);
lcd.print(".");
*/
}
delay(10);
}