// 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.print ("Hallo");
#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 20
#define LCD_LINES 4
LiquidCrystal_I2C oLCD (I2C_ADDR, LCD_COLUMNS, LCD_LINES);
// ---------------------------------------------------------
#include <string.h>
#include <stdio.h>
char sLCDText [21];
void LCDPrintf(int iSpalte, int iZeile)
{
int iIndex;
char sLokalerText[2];
char cBuchstabe;
int iSpalteBuchstabe;
oLCD.setCursor (iSpalte, iZeile);
for (iIndex=0; iIndex<strlen(sLCDText); iIndex++)
{
cBuchstabe = sLCDText[iIndex];
iSpalteBuchstabe = iSpalte + iIndex;
sprintf(sLokalerText, "%c", cBuchstabe);
if (iSpalteBuchstabe<LCD_COLUMNS)
{
oLCD.setCursor(iSpalteBuchstabe, iZeile);
oLCD.print(sLokalerText);
}
}
}
void setup()
{
oLCD.init();
oLCD.backlight();
sprintf(sLCDText, "Hallo");
LCDPrintf(19, 1);
}
void loop()
{
int iSpalte;
sprintf (sLCDText, "Hallo");
for (iSpalte=0;iSpalte<LCD_COLUMNS;iSpalte++)
{
oLCD.clear();
LCDPrintf(iSpalte, 1);
delay(200);
}
}