Ciao a tutti ho il seguente problema (premetto che sono nuovo e ringrazio in anticipo chiunque mi possa aiutare) :
Ho la necessita di visualizzare un messaggio piuttosto lungo nel setup() sulla prima riga di un display lcd(20x2), a tal proposito volevo utilizzare il metodo autoscroll() della libreria LiquidCrystal ma quando la scritta da visualizzare è più lunga di 20 caratteri si visualizzano automaticamente caratteri su ambedue le righe, ovvero le singole lettere di una parola vengono inviate in modo casuale sulla prima riga o sulla seconda.
Perciò avevo provato a dividere la stringa contenente l'intero messaggio in 13 stringhe ognuna da 20 caratteri (riconosco che il metodo non è dei migliori) e stamparle ad una alla volta, ma anche in questa maniera non funziona ...... qualcuno riesce a spiegarmi il motivo????
Riporto il codice:
LiquidCrystal lcd(2, 3, 4, 9, 10, 11, 12);
// STRINGA DEL MENU' INIZIALE
String menu1 ="Premere il pulsante "; // Primi 20 caratteri della stringa
String menu2 ="centrale per imposta"; // Altri 20 caratteri successivi della stringa
String menu3 ="re la temperatura ma";
String menu4 ="ssima e minima ";
String menu5 =" Premer";
String menu6 ="e il pulsante superi";
String menu7 ="ore per accendere o ";
String menu8 ="spegnere la stufa ";
String menu9 =" Pre";
String menu10 ="mere il pulsante inf";
String menu11 ="eriore per visualizz";
String menu12 ="are lo stato della s";
String menu13 ="tufa "; // Ultimi 20 caratteri della stringa
void setup(){
//Visualizzo la stringa
lcd.clear();
lcd.home();
// Visualizzo la prima stringa senza il metodo autoscroll()
for(int i=0; i<menu1.length(); i++){
lcd.print(menu1*);*
- delay(150);*
- }*
- // Da ora in poi voglio utilizzare il metodo autoscroll()*
- lcd.setCursor(20,0);*
- lcd.autoscroll();*
- for(int i=0; i<menu2.length(); i++){*
_ lcd.print(menu2*);_
_ delay(150);_
_ }*_
* // DA QUI IN POI I CARATTERI SUCCESSIVAMENTE STAMPATI PRESENTANO IL PROBLEMA SOPRA INDICATO*
* lcd.setCursor(20,0);*
* for(int i=0; i<menu3.length(); i++){*
_ lcd.print(menu3*);
delay(150);
}
.
.
.
.
lcd.setCursor(20,0);
for(int i=0; i<menu13.length(); i++){
lcd.print(menu13);
delay(150);
}*_
* lcd.noAutoscroll();*
}