// Forum: https://forum.arduino.cc/t/pong-paddle-on-lcd-is-updating-too-late/1109845
// Author: niko65
// Not a working project, no buttons are read during a delay.
#include <LiquidCrystal.h>
int buttonState = 0;
int buttonState2 = 0;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
byte hero2[8] = {
B00000,
B00000,
B01110,
B11111,
B11111,
B11111,
B01110,
B00000
};
byte hero4[8] = {
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000,
B10000
};
byte hero5[8] = {
B00001,
B00001,
B00001,
B00001,
B00001,
B00001,
B00001,
B00001
};
void setup() {
pinMode(6, INPUT);
pinMode(8, INPUT);
lcd.begin(16, 2);
lcd.createChar(7, hero2);
lcd.createChar(9, hero4);
lcd.createChar(10, hero5);
lcd.setCursor(1, 0);
lcd.print(" PONG ");
delay(2000);
lcd.clear();
}
void loop() {
buttonState = digitalRead(6);
if (buttonState == HIGH) {
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.write(byte(9));
} else {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.write(byte(9));
}
buttonState2 = digitalRead(8);
if (buttonState2 == HIGH) {
lcd.setCursor(15, 0);
lcd.print(" ");
lcd.setCursor(15, 1);
lcd.write(byte(10));
} else {
lcd.setCursor(15, 1);
lcd.print(" ");
lcd.setCursor(15, 0);
lcd.write(byte(10));
}
for (int j = 2; j <= 15; j++) {
lcd.setCursor(j - 1, 0);
lcd.print(" ");
lcd.setCursor(j, 0);
lcd.write(byte(7));
delay(300);
}
}