Problema scroll text lcd hitechi 16X2 (hd44780)

Salve, sono nuovo del forum!

Avrei bisogno di aiuto nello scrolling del testo, utilizzando un lcd 16x2 (hd 44780)...avrei bisogno di gestire lo scorrimento di un testo su una sola riga(quella inferiore), lasciando immutato il testo scritto nella riga superiore... utilizzo la LiquidCrystal come libreria.. Qualcuno mi sa dare una mano? Grazie! ;)

Aggiorni solo la riga inferiore. Oppure la tua domanda presuppone qualcos'altro che non ho capito?

Io farei così: - metti il testo in un vettore, es

[i][a][o]
- ad ogni ciclo pulisci la riga
- metti il cursore a fine riga e stampi il primo elemento, dunque [c]
- decrementi di uno la posizione del cursore e stampi [c][i]
- via così...quando hai il testo per intero (tutto il vettore) continui a stamparlo decrementando la posizione del cursore finchè non arrivi a 0 (o 1 ora non ricordo nei display come è trattato)
- a quel punto continuerai a stampare sempre in posizione 0 (o 1)
[c][i][a][o], [i][a][o], [a][o], [o]
- eventuale pausa e poi ricominci il ciclo

io faccio così… all’incirca

innanzitutto uso una funzione tipo questa:

void stampa_lcd (String pm, char l, String m, String nC)
{
 lcd.setCursor(0, 0) ; lcd.print(pm); //questo viene stampato nella prima riga, ad inzio riga
 lcd.setCursor(12, 1); lcd.print(nC); lcd.print(" ");
 lcd.setCursor(2, 1) ; lcd.print("	    "); lcd.setCursor(1, 1); lcd.print(l); lcd.print("   "); lcd.print(m);
}

poi il codice per la stampa, all’incirac fà così:

for(int i = 0; i < messaggio.length(); i++)
	{ 
	  lettera=messaggio.charAt(i); // prendo e lettere ad una ad una dalla stringa "messaggio"
	  parte_messaggio = parte_messaggio + lettera;
	  if (parte_messaggio.length() > lMax )  //l max rapresenta il numero max di caratteri che vuoi stampare ...
           {parte_messaggio = parte_messaggio.substring (parte_messaggio.length()-lMax );}; //taglia la parte di messaggio già trasmesso agli ultimi lMax caratteri. Per poter visualizzare sull'LCD - max 16 caratteri
	   stampa_lcd     (parte_messaggio, lettera, chrMorse, String( messaggio.length()-i)); // invia i dati all'LCD
}

Il risultato è che nella prima riga appaiono lMax caratteri (nel mio caso 16 caratteri), presi dalla stringa “messaggio” che scrollano da dx a sx… . vedi che prima di spampare la parte che scrolla
spero si sia capito
ciao