Accensione LCD

Ciao a tutti, ho acquistato in un negozio della mia città un display 16x2 tipo quello venduto qui da robotitaly. Arrivato a casa, ho provato a guardare proprio il datasheet del linkato. Tuttavia non mi si è nemmeno acceso... Sono allo step decisamente precedente all'invio di dati... Quello che volevo chiedere, giusto per comprendere se magari non ho preso un pacco... se metto il piedino 1 al GND e il 2 al 5V... dovrei già vedere il display acceso (va bene anche tutto nero...)? In altre parole, è sufficiente per vedere segni di vita da parte del display? Poi per mandargli mi documento meglio... Grazie per le eventuali risposte.

Devi utilizzare le librerie per inizializzarlo. Prima di inviare dati al display assicurati di collegare correttamente il pin che regola il contrasto altrimenti non vedrai nulla.

Ok. Ma quindi, scusa se insisto, se io metto il GND e l'alimentazione del 5V rispettivamente al piedino 1 e 2.... non è sufficiente per vedere un segno di vita? Devo per forza mandargli dei dati? In tal caso sarei sereno. Per il contrasto ho messo il 3V del Arduino sul terzo piedino. E' corretto?

Allora, per quanto riguarda l'alimentazione del display LCD devi collegare i pin +5V e il GND dell'Arduino ai rispettivi pin del display LCD. Quello del contrasto, io l'ho messo a massa e col mio funzionava.

si anche col mio stesso problema poi mi sono ricordato del contrasto senza quello nemmeno si vedono i puntini metti un trimmer metti il centrale al pin contrasto e gli altri due uno al gnd e l'altro al 5v+ poi dai corrente e lo ruoti ad un certo punto dovresti vedere i quadrati neri

ciao ;)

Grazie Garinius per le risposte…
Effettivamente il contrasto era uno dei problemi…
Vorrei cambiare il topic aggiungendo un SOLVED ma non so come fare.
Ad ogni modo ecco cosa ho fatto…

La scorsa settimana ho comprato un display LCD 16x2 seriale (per chi fosse di Torino da Pinto).

Arrivato a casa ho avuto qualche problemino a collegarlo ad Arduino ma adesso ho compreso che era dovuto al contrasto grazie a Garinius: il segnale c’era ma non lo vedevo…

Sto parlando di un display tipo questo: DISPLAY

Il datasheet lo trovate qui: DATASHEET

Per gestirlo si può usare la libreria LCD4Bit ma personalmente ho trovato più duttile quella data direttamente da Arduino: la LiquidCristal: LiquidCristal

In poche parole sembra che questo sia uno dei display LCD più utilizzati e compatibile con l’Hitachi44780 al quale praticamente tutti questi display fanno riferimento.
Basta collegare il piedino numero:

  • 1: GND
  • 2: 5V
  • 3: GND oppure a un trimmer con resistenza variabile per settare il contrasto
  • 4: RS ad un piedino digitale del Arduino (per esempio num 12)
  • 5: RW ad un piedino digitale del Arduino (per esempio num 11)
  • 6: ENABLE ad un piedino digitale del Arduino (per esempio num 2)

A questo punto è necessario collegare i piedini per i segnali:

  • 11: DB4 ad un piedino digitale del Arduino (per esempio num 07)
  • 12: DB5 ad un piedino digitale del Arduino (per esempio num 08)
  • 13: DB6 ad un piedino digitale del Arduino (per esempio num 09)
  • 14: DB7 ad un piedino digitale del Arduino (per esempio num 10)

Gli altri piedini sono opzionali e servono per un controllo del display ad 8 bit anzichè a 4 bit.
A questo punto, usando la libreria LiquidCristal si deve inizializzare il display e scriverci qualcosa.
Nel esempio ho scritto “hello world” nella prima riga e nella seconda il valore letto dal trimmer sulla porta numero 5 analogica.

#include <LiquidCrystal.h>
#define SENSORE 5

LiquidCrystal lcd(12, 11, 2, 7, 8, 9, 10);
//LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

void setup() {
 pinMode(SENSORE,INPUT);

 lcd.print("hello, world!");
 lcd.setCursor(0,1);
 lcd.print("Prova");
 Serial.begin(9600);
}

void loop() {
 int pippo=analogRead(SENSORE);
 Serial.println(pippo,DEC);

 lcd.clear();
 lcd.print("hello, world!");
 lcd.setCursor(0,1);
 lcd.print("Il trimmer: ");
 lcd.print(pippo,DEC);
 delay(2000);
}

That’s all.

bene sono felice che hai risolto

Scusate, ma la scelta dei piedini è arbitraria oppure no?

Io ho usato questa assegnazione: DB4 al piedino digitale 2 DB5 al piedino digitale 3 DB6 al piedino digitale 4 DB7 al piedino digitale 5 ENABLE al piedino digitale 6 RW al piedino digitale 7 RS al piedino digitale 8

Lo chiedo perchè il mio display non funziona all'accensione, ma solo dopo un reset della scheda, come ho postato qui: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1236518622

Dunque, la scelta dei piedini dell'Arduino è arbitraria (la tua più "scientifica" la mia più alla "carlona" dovuta al fatto che stavo facendo delle prove...) mentre, come è ovvio, quella dei piedini del LCD non lo è per nulla e dipende dal datasheet.

La cosa importante è, quando operi su Arduino l'istruzione

LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)

dove dichiari i piedini che utilizzi. Nel tuo caso:

LiquidCrystal(8, 7, 6, 2, 3, 4, 5)

Personalmente non ho ancora "stressato" il display, dato che ho iniziato a usarlo da ieri. La stringa LiquidCristal l'hai impostata così? Ad ogni modo nei prossimi giorni lo metterò sotto pressione e ti saprò dire se ho il tuo stesso problema...

Si l'inizializzazione è proprio quella, ormai sono persuaso che il problema è il display, ne userò un'altro. Nel mio caso il display si stressa quando lo accendo, forse ha il risveglio difficile...