il mio codice :
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 7, 6, 5, 4);
void setup() {
Serial.begin(9600);
lcd.begin(8, 2);
lcd.clear();
lcd.cursor();
lcd.noCursor();
}
void loop() {
lcd.setCursor(0,0);
lcd.print(distanza);
lcd.setCursor(0,1);
lcd.print("cm");
}
ho una variabile distanza che voglio stampare sulla prima riga compreso tra 0 e 999
ci sarebbe una funzione che ho tolto che calcola la distanza con un sonar
c'è un piccolo errore.
quando la variabile è a tre cifre e successivamente passa a 2 o 1 cifre, restano stampati le cifre precedenti modificando solo le prime(1 o 2 cifre).
ho provato a mettere clear prima che stampasse la distanza ma ci mette troppo e alla fine non vedo nulla
ho risolto aggiungendo questo
// -----------------------
if (distanza<10){
lcd.setCursor(0,0);
lcd.print(0);
lcd.setCursor(1,0);
lcd.print(0);
lcd.setCursor(2,0);
lcd.print(distanza);
} else if (distanza<100){
lcd.setCursor(0,0);
lcd.print(0);
lcd.setCursor(1,0);
lcd.print(distanza);
} else if (distanza<1000){
lcd.setCursor(0,0);
lcd.print(distanza);
}
ma non mi sembra una soluzione intelligente