#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define BUTTON_PIN 2
// BITMAP
byte dino[8] = {
0b00000,
0b00111,
0b00111,
0b10110,
0b11111,
0b01010,
0b01010,
0b00000
};
int dinoY = 1;
bool jumping = false;
unsigned long jumpStart = 0;
void setup() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
lcd.init();
lcd.backlight();
lcd.createChar(0, dino);
lcd.setCursor(0, 0);
lcd.print("Dino V0");
delay(1000);
lcd.clear();
}
void loop() {
handleInput();
drawDino();
delay(10);
}
void handleInput() {
if (digitalRead(BUTTON_PIN) == LOW && !jumping) {
jumping = true;
jumpStart = millis();
}
if (jumping && (millis() - jumpStart > 400)) {
// es war 400 - dann kontrollieren
jumping = false;
}
if (jumping){dinoY=0;} else {dinoY=1;}
}
void drawDino() {
// clear both positions
lcd.setCursor(1, 0); lcd.print(" ");
lcd.setCursor(1, 1); lcd.print(" ");
// draw dino
lcd.setCursor(1, dinoY);
lcd.write(byte(0));
}