// ---------------------------------------------------------
// I2C - LCD Anzeige
// Pinning: ESP32 D22 <=> SCL I2C_LCD
// D21 <=> SDA
// 3V3 <=> Vcc
// GND <=> GND
// Befehle:
// oLCD.init ()
// oLCD.backlight ();
// oLCD.clear ();
// oLCD.setCursor (iSpalte,iZeile);
// oLCD.printf ("Hallo");
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C oLCD (I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// ---------------------------------------------------------
const int iunten=13;
const int ilinks=12;
const int irechts=14;
const int ioben=27;
void setup()
{
oLCD.init();
oLCD.backlight();
oLCD.printf ("Test");
pinMode(iunten, INPUT_PULLUP);
pinMode(ilinks, INPUT_PULLUP);
pinMode(irechts, INPUT_PULLUP);
pinMode(ioben, INPUT_PULLUP);
}
int iSpalte=0;
int iZeile=0;
int iWortlaenge=4;
void loop()
{
int stateunten=digitalRead(iunten);
int statelinks=digitalRead(ilinks);
int staterechts=digitalRead(irechts);
int stateoben=digitalRead(ioben);
if(stateunten==LOW && iZeile==0)
{
iZeile++;
oLCD.clear ();
oLCD.setCursor (iSpalte,iZeile);
oLCD.printf ("Test");
}
if(statelinks==LOW && iSpalte>0)
{
iSpalte--;
oLCD.clear ();
oLCD.setCursor (iSpalte,iZeile);
oLCD.printf ("Test");
}
if(staterechts==LOW && iSpalte<16-iWortlaenge)
{
iSpalte++;
oLCD.clear ();
oLCD.setCursor (iSpalte,iZeile);
oLCD.printf ("Test");
}
if(stateoben==LOW && iZeile==1)
{
iZeile--;
oLCD.clear ();
oLCD.setCursor (iSpalte,iZeile);
oLCD.printf ("Test");
}
delay(100);
}