// ---------------------------------------------------------
// 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 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,2);
}
void loop()
{
int iSpalte;
sprintf(sLCDText,"Hallo");
for(iSpalte=0;iSpalte<LCD_COLUMNS;iSpalte++)
{
oLCD.clear();
LCDPrintf(iSpalte,1);
delay(200);
}
}