Che tipo di LCD dovrei usare per andare con il mio Arduino?
Ho usato l'LCD compatibile con HD44780 in passato, ma ho sentito che gli LCD Serial Enabled rendono la vita molto più facile.
Che tipo di LCD dovrei usare per andare con il mio Arduino?
Ho usato l'LCD compatibile con HD44780 in passato, ma ho sentito che gli LCD Serial Enabled rendono la vita molto più facile.
Dipende davvero da cosa vuoi fare con Arduino, oltre a visualizzare le informazioni sul display LCD. Come te, ho usato un LCD compatibile con HD44780 per il mio primo progetto e, sebbene funzionasse bene, ha consumato metà dei miei pin I / O digitali e ha limitato seriamente ciò che potevo fare con il mio progetto. Se non hai davvero bisogno di molto I / O, può andare bene.
D'altra parte, se vuoi fare di più, un'interfaccia LCD seriale può avere più senso. Costano il doppio, ma come puoi vedere da questo esempio, puoi collegare a margherita con I2C.
/ * Esempio rapido per utilizzare FunGizmos LCD seriale in I2C modalità ** Connessioni tra LCD & Arduino * LCD P2 * Pin1 non connesso * Pin2 non connesso * Pin3 SCL -> Analog in 5 (Arduino ha una resistenza pullup interna) * Pin4 SDA -> Analog in 4 (Arduino ha una resistenza pullup interna) * Pin5 VSS -> gnd * Pin6 VDD -> + 5V ** Per abilitare la modalità I2C degli LCD Pad, i pad di R1 devono essere ponticellati sul retro dell'LCD * (Tra R6 & R14 proprio sotto il glob IC nero) ** / # includere <Wire. h>int lcd_addr = 0x50; // indirizzo esadecimale I2C predefinito dal datasheetint blink; void setup () {delay (1000); // consenti a lcd di svegliarsi. Wire.begin (); // inizializza la libreria Wire // La libreria Wire si aspetta un valore a 7 bit per l'indirizzo e si sposta a sinistra aggiungendo 0 o 1 per lettura / scrittura // Regola il nostro indirizzo in modo che corrisponda a quello che Wire si aspetta (spostalo a destra di un bit) lcd_addr = lcd_addr >> 1; // Invia il comando di cancellazione LCD Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x51); // Home e cancella Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x70); // Visualizza la versione del firmware LCD Wire.endTransmission (); ritardo (2000); // Invia il comando di cancellazione LCD Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x51); // Home e cancella Wire.endTransmission ();
Wire.beginTransmission (lcd_addr); Wire.send ("Ciao sto usando I2C"); Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x45); // Imposta la posizione del cursore Wire.send (0x40); // Riga 2 Wire.endTransmission (); Wire.beginTransmission (lcd_addr); Wire.send ("FunGizmos.com"); Wire.endTransmission ();} void loop () {Wire.beginTransmission (lcd_addr); Wire.send (0xFE); // Cmd char Wire.send (0x45); // Imposta la posizione del cursore Wire.send (0x40 + 15); // ultimo carattere riga 2 Wire.endTransmission (); Wire.beginTransmission (lcd_addr); if (lampeggiante) Wire.send ('*'); altro Wire.send (''); Wire.endTransmission (); blink =! blink; ritardo (500);}
Utilizzo un'unità di visualizzazione LCD parallela che ho convertito in I2C utilizzando il chip BV4208 I2C LCD Controller di ByVac o prendo in considerazione la sua nuova sostituzione, BV4638.
Ecco una libreria da utilizzare con questa unità: http://john.crouchley.com/blog/archives/264.
I2C utilizza solo due fili - Analog 4 e Analog 5, è possibile collegare diversi dispositivi da questi fili ciascuno con il proprio indirizzo I2C. Questo è un modo molto semplice per estendere Arduino.
Se si dispone di un LCD compatibile con HD44780 e si desidera utilizzarlo senza consumare troppi pin di uscita, è possibile utilizzare un registro a scorrimento (come 74VHC164 o 74HC595).
Ecco un collegamento a un progetto di esempio.
Effettivamente questo è molto simile a un LCD seriale abilitato.
Io uso lcd seriali e sono molto facili da usare e utili, ma se non usi un Arduino Mega avrai solo una porta seriale. Questo può essere risolto usando il software seriale anche se gli annunci lunghi ti servono solo scrivere, non leggere. Una buona libreria seriale di software può essere trovata qui
Ho già utilizzato un LCD seriale, il 20x4 nero su verde di SparkFun. L'interfaccia a 3 fili è molto facile da lavorare ma attenzione, la retroilluminazione assorbe molta energia.
Inoltre, se la colleghi a un PICAXE il seriale 1/0 vs alto / basso è nel modo sbagliato e dovrai mettere un inverter logico in linea.
Potresti usare lo zaino LCD adafruit. Supporta I2C o SPI. In modalità SPI si utilizza solo un registro a scorrimento 74HC595.