premetto che ho cercato in molti post e dopo giorni di esasperazione ho deciso di scrivere.
ho uno schermo LCD tipo RC1602B-BIW-JSX che non ne vuole sapere di... "parlare".
Tutti i cablaggi sono stati controllati e rifatti più volte
Il pettine stagnato al LCD è stato ricontrollato più volte
Lo schermo si accende e riesco a regolare il contrasto mediante potenziometro 10K
La retro illuminazione è collegata alla tensione mediante resistenza 220ohm
Non riesco a visualizzare alcun carattere e non so come poter verificare se lo schermo è difettoso
Il codice utilizzato è il seguente, ringrazio chiunque abbia idee.
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
Stai utilizzando lo schermo usando solo 4 linee dat: d4,d5,d6,d7.
Hai seguito le istruzioni contenute in questa pagina?
In particolare:
"The display can be controlled using 4 or 8 data lines. If the former, omit the pin numbers for d0 to d3 and leave those lines unconnected. The RW pin can be tied to ground instead of connected to a pin on the Arduino; if so, omit it from this function's parameters."
Non posso aiutarti molto perché io uso solo display con connessione i2c, molto più pratici.
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Visto che nell'inizializzazione hai scelto la modalità senza pin "R/W" ti sei assicurato di aver connesso a massa il pin R/W (n. 5) dell'LCD?
A solo fine di verifica, prova inserire come ultima istruzione del setup un delay(2000); giusto per lasciarti il tempo di leggere il messaggio iniziale.