Serial LCD Untere Zeile mit überlangem Text scrollen

Hi Ich habe ein Sericl-LCD-Bildschirm mit 2 Zeilen a 16 Felder.
Nun würde ich gerne einen sehr langen Text langsam in der unteren Zeile langlaufen lassen…
Mein bisheriger Versuch (Geht leider über beide Zeilen und ist noch zu schnell zum Lesen)

#include <SerialLCD.h>
#include <SoftwareSerial.h>
SerialLCD slcd(11,12);
void setup(){
  slcd.begin();
  slcd.backlight();
}
void loop()
{
char lcdstring[200]="asdfgh...jklöä...";//Gekürzter Beispielinhalt
  slcd.setCursor(0,1);
  slcd.print(lcdstring);
   for (int positionCounter = 0; positionCounter < 29; positionCounter++) {
    // scroll one position left:
    slcd.scrollDisplayLeft(); 
    // wait a bit:
    delay(150);
  }
}

Als Alternative kann ich mir auch vorstellen den String aufzuteilen und nacheinander mehrere Strings einzublenden.

Meine Frage ist erstmal die einfache Programmierfrage, wie bekomme ich es hin das nur die Untere Zeile mit dem Code gefüllt wird? (Die Obere ist für input und output reserviert)

Die eingebauten Scroll-Funktionen scrollen immer das ganze Display. Das einfachste ist du scrollst das Display und schreibst dann die erste Zeile neu.

Alternativ kannst du auch die Funktion nachbilden indem du das char-array nach und nach ausgibst und dabei immer mit einem höheren Index anfängst. Also über das char-array iterieren, und dabei den Start-Index jede Iteration erhöhen (und am Ende des Arrays aufpassen). Das ist komplizierter, aber nötig wenn dein Text zu lang für das LCD RAM ist (laut Datenblatt 80 Bytes, also 40 Zeichen pro Zeile). Oder du schreibst in bestimmten Abständen den String neu und scrollst dann wieder mit der Display-Funktion. Das sollte auch gehen.

uthred:
Nun würde ich gerne einen sehr langen Text langsam in der unteren Zeile langlaufen lassen...

Sowas habe ich hier mal gepostet:
http://forum.arduino.cc/index.php?topic=176732.msg1312111#msg1312111

Text schnell laufen lassen, Text langsam laufen lassen, Text von Links nach rechts oder von rechts nach links laufen lassen.

Die Funktion " task_text(char *text, byte line)" ist zwar eigentlich für die normale Liquidcrystal-Library geschrieben, aber da als einzige Funktionen die setCursor und print Funktionen für das LCD-Display verwendet werden, sollte das mit jeder anderen LCD-Library für I2C oder Serial Displays genau so funktionieren.

Such Dir aus, was Du davon brauchst!