Ciao,
Secondo voi è possibile avere una scritta scorrevole solo su una riga di un display lcd, lasciando fisso le altre tre?
Grazie
Sí
Ups non avevo letto bene il titolo. Non so se si puó combinare queste due funzioni. Puoi fare comunque lo scrolling a mano riscrivendo la riga a intervalli regolari e spostando il testo di un carattere ogni volta.
Ciao Uwe
DA quello che ho capito
lcd.scrollDisplayLeft();
muove tutto il display,
Speravo[ che si potesse passare un argomento alla funzione e magari anche numero riga....
int pos = 0;
void setup() {
lcd.begin(16, 2);
lcd.print("Ciao, llluca!");
}
void loop() {
// set the cursor to column 0, line 1
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Ciao, llluca!");
lcd.setCursor(pos, 1);
lcd.print("=)");
pos++;
if(pos == 16)
{
lcd.print("=");
pos = 0;
lcd.setCursor(pos, 1);
lcd.print(")");
}
delay(1000);
}
Avevo provato qualcosa del genere, ho spulciato e ho trovato questo spezzone di codice, riadattalo a tuo piacere, l'idea c'è ![]()
Oppure puoi salvarti le righe in un vettore così
char* testoDisplay[3];
Prova giocaci un pò..
ti ringrazio per i suggerimenti!
per adesso da quello che ho capito non devo:
lcd.clear();
altrimenti ho flickering del display.
forse ciclando:
lcd.setCursor(i, 0);
:~ potrei avere un risultato accettabile? :~
void loop() {
lcd.setCursor(pos, 1);
lcd.print("=)");
pos++;
if(pos == 16)
{
lcd.print("=");
pos = 0;
lcd.setCursor(pos, 1);
lcd.print(")");
}
delay(1000);
}
Conta che non ho modo di provarlo perchè ho tutto smontato. Però se noti quel codice si trova nella funzione loop che è già di per se un ciclo
Se fai ancora più attenzione noti che pos viene incrementato di uno ogni volta e quando arriva a 16 viene azzerato per ricominciare a scrivere a inzio riga. Quindi puoi benissimo usare un ciclo, occhio a come lo implementi però!
PS= Ricorda che la riga del display è come un vettore, si comincia a contare da 0 e non da 1.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15