#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
int hore = 7;
int dole = 6;
int lavo = 5;
int pravo = 8;
bool x = true;
bool y = true;
bool c = true;
bool v = true;
int xPos = 0;
int yPos = 0;
void setup() {
lcd.begin(20, 4);
pinMode(hore, INPUT_PULLUP);
pinMode(dole, INPUT_PULLUP);
pinMode(lavo, INPUT_PULLUP);
pinMode(pravo, INPUT_PULLUP);
lcd.print("X");
}
void loop() {
if (digitalRead(hore) == LOW && x == true) {
if (yPos > 0){
lcd.setCursor(xPos, yPos);
lcd.print(" ");
yPos = yPos - 1;
lcd.setCursor(xPos, yPos);
lcd.print("X");
}
else{
lcd.setCursor(xPos, yPos);
lcd.print(" ");
yPos = 3;
lcd.setCursor(xPos, 3);
lcd.print("X");
}
x = false;
}
else if(digitalRead(hore)== HIGH && x == false)
x = true;
if (digitalRead(dole) == LOW && y == true) {
if(yPos < 3){
lcd.setCursor(xPos, yPos);
lcd.print(" ");
yPos += 1;
lcd.setCursor(xPos, yPos);
lcd.print("X");
}
else{
lcd.setCursor(xPos, yPos);
lcd.print(" ");
yPos = 0;
lcd.setCursor(xPos, 0);
lcd.print("X");
}
y = false;
}
else if(digitalRead(dole)== HIGH && y == false)
y = true;
if (digitalRead(lavo) == LOW && c == true) {
if (xPos > 0){
lcd.setCursor(xPos, yPos);
lcd.print(" ");
xPos -= 1;
lcd.setCursor(xPos, yPos);
lcd.print("X");
}
else {
lcd.setCursor(xPos, yPos);
lcd.print(" ");
lcd.setCursor(19, yPos);
xPos = 19;
lcd.print("X");
}
c = false;
}
else if(digitalRead(lavo)== HIGH && c == false)
c = true;
if (digitalRead(pravo) == LOW && v == true) {
if (xPos < 19 ) {
lcd.setCursor(xPos, yPos);
lcd.print(" ");
xPos += 1;
lcd.setCursor(xPos, yPos);
lcd.print("X");
}
else {
lcd.setCursor(xPos, yPos);
lcd.print(" ");
lcd.setCursor(0, yPos);
xPos = 0;
lcd.print("X");
}
v = false;
}
else if(digitalRead(pravo)== HIGH && v == false)
v = true;
}