Go Down

Topic: Problemi con posizionamento cursore e LCD.. (Read 592 times) previous topic - next topic

smartgatto

Ciao a tutti,
ho un problema con uno sketch con il posizionamento del cursore in un display lcd 2x16 (solito HD44780).
Mi spiego meglio:

ho questo sketch dove ad un certo punto dico:

Code: [Select]
lcd.setCursor(8,1);
lcd.print(ora);


dove la variabile "ora" è definita come int all'inizio e varia da 0 a 24.
Se questo valore cresce da 0 a 24 non c'è problema, ma quando invece diminuisce (perchè sto facendo un orologio regolabile) quando si passa da 11 poi a 10 e poi a 9 viene visualizzato 90, poi 80, poi 70, ovvero rimane la vecchia seconda cifra.
Come posso ovviare a questo stupido problema?
c'è modo di far interpretare le cifre singole come 01, 02, 03 etc etc?


grazie!

leo72

Questo perché il carattere che conteneva lo zero non viene sovrascritto con nulla, quindi mantiene il suo vecchio valore. Prevedi un semplice controllo in cui se il valore di "ora" è inferiore a 10, scrivi un carattere vuoto nella cella immediatamente successiva.
Code: [Select]
lcd.setCursor(8,1);
lcd.print(ora);
if (ora<10) {
  lcd.setCursor(9,1);
  lcd.print(" ");
}

smartgatto

Grazie..in effetti ora ho provato così e funziona:
Code: [Select]
if (ora < 10){
     lcd.setCursor(8,1);
     lcd.print(" ");
     lcd.print(ora);
     } else
   {
     lcd.setCursor(8,1);
     lcd.print(ora);
     }


Grazie!

Go Up