Come configurare smartphone e PC. Portale informativo
  • casa
  • Sicurezza
  • Arduino e display LCD a caratteri. Collegamento del display LCD ad Arduino

Arduino e display LCD a caratteri. Collegamento del display LCD ad Arduino

Il display a cristalli liquidi (LCD), abbreviato in LCD, si basa sulla tecnologia dei cristalli liquidi. Quando progettiamo dispositivi elettronici, abbiamo bisogno di un dispositivo economico per visualizzare le informazioni e il secondo fattore altrettanto importante è la disponibilità di librerie già pronte per Arduino. Di tutti i display LCD disponibili sul mercato, il più comunemente utilizzato è l'LCD 1602A, che può visualizzare caratteri ASCII su 2 righe (16 caratteri in 1 riga), ciascun carattere in una matrice di 5x7 pixel. In questo articolo vedremo le nozioni di base per collegare un display ad Arduino.

Specifiche tecniche

Tensione di alimentazione: 5V
Dimensioni dello schermo: 2,6 pollici
Tipo di display: 2 righe x 16 caratteri
Colore retroilluminazione: blu
Colore carattere: bianco
Dimensioni: 80 mm x 35 mm x 11 mm

Descrizione della visualizzazione

LCD 1602A è un modulo elettronico basato sul driver HD44780 di Hitachi. LCD1602 ha 16 pin e può funzionare in modalità a 4 bit (utilizzando solo 4 linee dati) o in modalità 8 bit (utilizzando tutte le 8 linee dati), oppure è possibile utilizzare un'interfaccia I2C. In questo articolo parlerò della connessione in modalità 4 bit.

Assegnazione del contatto:
VSS: alimentazione del modulo “-”.
VDD: alimentazione del modulo “+”.
VO: perno di controllo del contrasto
RS: Registra Seleziona
RW: seleziona la modalità di scrittura o lettura (quando collegato a terra, imposta la modalità di scrittura)
E: Cancello di caduta
DB0-DB3: bit di interfaccia
DB4-DB7: bit di interfaccia
A: potenza della retroilluminazione “+”.
K: "-" potenza della retroilluminazione

Sul fronte del modulo è presente un display LCD ed un gruppo di contatti.

Sul retro del modulo ci sono due chip con design a "goccia" (ST7066U e ST7065S) e cablaggio elettrico, non vedo il senso di disegnare uno schema elettrico, vi parlerò solo del resistore R8 (100 Ohm), che funge da resistore limitatore per la retroilluminazione a LED, quindi puoi collegare 5V direttamente al pin A. Poco dopo scriverò un articolo in cui ti spiegherò come modificare la retroilluminazione di un display LCD utilizzando un PWB e un transistor.

Collegamento dell'LCD 1602A ad Arduino (modalità 4 bit)

Parti richieste:
Arduino UNO R3 x 1 pz.
Display LCD 1602A (2×16, 5V, Blu) x 1 pz.
Filo DuPont, 2,54 mm, 20 cm, F-F (Femmina - Femmina) x 1 pz.
Potenziometro 10 kOhm x 1 pz.
Connettore PLS-16 x 1 pz.
Scheda di sviluppo MB-102 x 1 pz.
Cavo USB 2.0 A-B x 1 pz.

Connessione:
Per il collegamento utilizzeremo una scheda di sviluppo; lo schema e la tabella per collegare l'LCD1602a ad Arduino in modalità 4 bit sono visibili nella figura seguente.

Il collegamento del display alla breadboard verrà effettuato tramite pin PLS-16 (devono essere saldati al display). Installare il modulo display nella breadboard e collegare l'alimentazione VDD (2° pin) a 5 V (Arduino) e VSS (1° pin) a GND (Arduino), quindi collegare RS (4° pin) al pin digitale 8 (Arduino). Mettere a terra RW (5° pin) collegandolo a GND (Arduino), quindi collegare il pin E al pin 8 (Arduino). Per una connessione a 4 bit sono necessari quattro pin (da DB4 a DB7). Collegare i pin DB4 (11° pin), DB5 (12° pin), DB6 (13° pin) e DB7 (14° pin) ai pin digitali 4, 5, 6 e 7 di Arduino. Il potenziometro da 10K viene utilizzato per regolare il contrasto del display, lo schema di collegamento per il display LCD del 1602a è mostrato di seguito

La libreria è già inclusa nell'IDE di Arduino e non è necessario installarla. Copia e incolla questo codice di esempio nella finestra del programma IDE di Arduino e caricalo nel controller.

/* Il test è stato effettuato su Arduino IDE 1.6.11 Data test 20/09/2016. */ #includere LCD a cristalli liquidi (8, 9, 4, 5, 6, 7); void setup() ( lcd.begin(16, 2); // Inizializza LCD 16x2 ) void loop() ( lcd.setCursor(0,0); // Imposta il cursore sulla prima riga lcd.print("Ciao, world" ); // Stampa il testo lcd.setCursor(0,1); // Imposta il cursore sulla seconda riga lcd.print("www.robotchip.ru"); // Stampa il testo )

Il test è stato effettuato su Arduino IDE 1.6.11

Data della prova: 20/09/2016

#includere

LCD a cristalli liquidi (8, 9, 4, 5, 6, 7);

configurazione nulla()

lcd. inizio(16, 2); // Inizializza il display LCD 16x2

ciclo vuoto()

lcd. print("Ciao mondo" ); // Stampa il testo

lcd. stampa ("www.robotchip.ru" ); // Stampa il testo

Scarica il programma

Un po' di programma.
Per facilitare la comunicazione tra Arduino e il display LCD, viene utilizzata la libreria integrata nell'IDE di Arduino " Cristalli liquidi.h « - che è scritto per i display LCD che utilizzano HD44780 Chipset (Hitachi) (o chip compatibili). Questa libreria può gestire la connessione LCD sia in modalità 4 bit che in modalità 8 bit.

Display a cristalli liquidi (LCD) mod. 1602 (scheda tecnica) è una scelta eccellente per i tuoi progetti.

La prima cosa che ci piace è il prezzo basso. La seconda è la disponibilità di librerie già pronte per Arduino. In terzo luogo, ci sono diverse modifiche, dotate anche di retroilluminazione diversa (blu, verde). In questo articolo esamineremo le basi per collegare questo display ad Arduino e forniremo un esempio di un piccolo progetto per visualizzare il livello di luce su un display utilizzando una fotoresistenza.

Contatti e schema di collegamento dell'LCD 1602 ad Arduino

I pin su questo display sono numerati da 1 a 16. Si trovano sul retro della scheda. Il modo esatto in cui si collegano ad Arduino è mostrato nella tabella seguente.

Tavolo 1. Collegamento dei pin LCD 1620 ad Arduino

Collegamento del 1602 ad Arduino Se il display 1602 è alimentato da Arduino tramite un cavo USB da 5 volt e il pin corrispondente, è possibile utilizzare un valore di 2 kOhm per il pin di contrasto del display (3° connettore - Contrasto). Per il contatto Back LED+ è possibile utilizzare una resistenza da 100 Ohm. È inoltre possibile utilizzare un resistore variabile - potenziometro per regolare manualmente il contrasto.

Basandosi sulla Tabella 1 e sullo schema seguente, collega il display LCD ad Arduino. Per connetterti avrai bisogno di una serie di conduttori. Si consiglia di utilizzare fili di colore diverso per evitare confusione.

Tavolo 2. Colori preferiti dei conduttori

Schema di collegamento del display LCD 1602 ad Arduino:


Programma di esempio di base per lavorare con LCD 1602 con Arduino

L'esempio utilizza i pin 0, 1, 2, 3, 4 e 5 di Arduino per collegare i pin corrispondenti 4, 6, 11, 12, 13 e 14 dal display 1602 (vedere Tabella 1). Successivamente, nel codice Arduino, inizializziamo lcd() come segue:

LCD a cristalli liquidi (0, 1, 2, 3, 4, 5);

Questo pezzo di codice spiega ad Arduino esattamente come è collegato il display LCD.

L'intero file sorgente del progetto della stazione meteo, che utilizza il display LCD 1602, può essere scaricato da questo link.

LCD 1602A, Arduino e sensore di luce (fotoresistenza)

Nell'esempio, esamineremo il collegamento di una modifica del display - 1602A e una fotoresistenza. Come risultato di questo progetto, saremo in grado di visualizzare sul display valori numerici proporzionali all'intensità della luce.


Questo esempio sarà un buon inizio per i principianti per comprendere Arduino. Vale la pena notare che il display del 1602 presenta varie modifiche. Di conseguenza, la posizione dei contatti su di essi potrebbe differire leggermente.

Materiali necessari

  • 1 Arduino UNO;
  • 1 breadboard (63 binari);
  • 1 sensore di luce (fotoresistore);
  • 1 potenziometro 50 kOhm;
  • 1 display LCD 1602A;
  • 1 resistenza da 10 kOhm;
  • 1 barra di connettori (16 pin);
  • 1 cavo USB.

Display LCD 1602A

I display vengono solitamente venduti senza connettori saldati. Cioè, dovrai tenere il saldatore tra le mani. Avrai bisogno di 16 pin. Saldare sul lato delle gambe corte, lasciare le gambe lunghe per un ulteriore collegamento alla scheda o ad altri dispositivi periferici.

Dopo la dissaldatura è possibile installare il display sulla breadboard. Preferibilmente sul binario più basso, in modo da avere comunque la possibilità di collegare il display alla scheda tramite connettori aggiuntivi.

Collegamento del display 1602A ad Arduino

La prima cosa che devi fare è alimentare il display. Collega i due cavi da +5 volt e terra alle righe più/meno corrispondenti sulla breadboard.

Collega: il pin da 5 volt (5 V) dell'Arduino a una delle tracce della breadboard.

Collegare: il pin di terra (GND) di Arduino a un'altra traccia (breadboard).

Successivamente, colleghiamo l'alimentazione dello schermo e la sua retroilluminazione ai binari sulla breadboard, sulla quale otteniamo 5 volt e meno.

Collegare: la traccia GND (meno) sulla breadboard al pin 1 sullo schermo LCD (etichettato VSS).

Collegare: il tracciato da 5 volt (più) sulla breadboard al pin 2 sullo schermo LCD (etichettato VDD).

Collegare: il tracciato da 5 volt (più) sulla breadboard al pin 15 sullo schermo LCD (etichettato A).

Collegare: la traccia GND (meno) sulla breadboard al pin 16 sullo schermo LCD (etichettato K).

Colleghiamo il nostro Arduino ad un personal computer tramite un cavo USB e voilà! Lo schermo dovrebbe accendersi.

Il passo successivo è collegare un potenziometro per regolare il contrasto del display. La maggior parte delle guide utilizza un potenziometro da 10k ohm, ma funzionerà anche quello da 50k ohm. A causa della gamma più ampia di valori di resistenza all'uscita del potenziometro, una regolazione più precisa diventa più difficile, ma per noi in questo caso questo non è fondamentale. Montare il potenziometro sulla breadboard e collegare i suoi tre pin.

Collega: il primo pin del potenziometro al negativo sulla breadboard.

Collegare: il pin centrale del potenziometro al pin 3 sul display (etichettato V0).

Collega: il terzo pin del potenziometro al positivo sulla breadboard.

Dopo aver alimentato la scheda tramite il cavo USB, la prima riga del display dovrebbe essere riempita di rettangoli. Se non li vedi, ruota leggermente il potenziometro da sinistra a destra per regolare il contrasto. Successivamente, quando visualizzeremo i valori numerici sullo schermo, potrai regolare il contrasto in modo più preciso. Se il tuo display assomiglia a questo, stai facendo bene:

Continuiamo. Ora dobbiamo comunicare tra Arduino e il display LCD 1602A per visualizzare i caratteri.

Per fare ciò, collega 4 pin del display (RS) ai 7 pin di Arduino (connettore giallo). Display pin 5 (RW) – alla fila di pin di terra sulla breadboard (cavo nero).

Visualizza il pin 6 (E) – al pin 8 di Arduino (PWM).

Visualizza il pin 11 (D4) – al pin 9 di Arduino (PWM).

Visualizza il pin 12 (D5) – al pin 10 di Arduino (PWM).

Visualizza il pin 13 (D6) – al pin 11 di Arduino (PWM).

Display pin 14 (D7) – al pin 12 di Arduino (PWM).

Programma per Arduino IDE: visualizzazione del testo sul display 1602A

Il pezzo di codice presentato di seguito deve solo essere copiato e incollato nell'IDE di Arduino e caricato sulla scheda:

#include <LiquidCrystal.h>

LCD a cristalli liquidi (7, 8, 9, 10, 11, 12);

lcd.inizio(16, 2);

lcd.setCursor(0,1);

lcd.write("LUCE: ");

Dopo aver caricato il programma sulla scheda, sulla seconda riga del display apparirà il seguente messaggio:

Una sorta di "ciao mondo!" lanciato su LCD 1602A. Mi congratulo con te.

Colleghiamo la fotoresistenza e carichiamo l'intero programma su Arduino

Ora colleghiamo la fotoresistenza. Collega tre fili alle guide libere sulla breadboard (chiamiamole 1, 2, 3). Lasciare un po' di spazio nei binari per il sensore di luce stesso e il resistore.

Colleghiamo il binario GND dalla breadboard al binario 1. A0 (ingresso analogico) da Arduino - al binario 2. 5 volt dalla breadboard - al binario 3.

Successivamente colleghiamo il sensore e il resistore ai binari preparati. Quali gambe vanno a terra e quali vanno all'alimentatore non hanno importanza per il nostro sensore di luce e resistenza (a differenza, ad esempio, di un LED, che ha un catodo e un anodo). Quindi non c'è confusione qui.

Colleghiamo il sensore di luce al binario 1 e al binario 2. Il resistore è collegato al binario 2 e al binario 3.

Ora torniamo al nostro programma e aggiungiamo alcune righe al corpo attualmente vuoto della funzione loop():

int sensorValue = analogRead(A0);

lcd.setCursor(7,1);

lcd.print(valoresensore);

Dopo aver caricato la versione finale del nostro programma su Arduino, il display mostrerà i valori attuali del livello di luce.

Esistono un gran numero di varietà di testo o, come vengono anche chiamati, schermi a cristalli liquidi per la sintesi dei caratteri. I display più comuni si basano sui chip HD44780 di Hitachi, KS0066 di Samsung o compatibili con questi. Per lavorare con tali schermi, esiste una libreria Arduino standard Liquid Crystal.

Di tali visualizzazioni si tratta in particolare le schermate di testo di Melt. Questo articolo descrive in dettaglio lo schema di collegamento per questa schermata, ma è adatto anche per molti altri display di testo.

L'articolo descrive i principi generali. Puoi andare alla descrizione dettagliata del tuo display:

Componenti richiesti

Connessione

Collega lo schermo alla breadboard e collega l'alimentazione +5 V e la terra da Arduino ai binari di alimentazione della breadboard.

Avrai bisogno di potenza e atterraggio più di una volta, quindi è più conveniente lanciarli sui binari.

Accendi la retroilluminazione

La retroilluminazione del display è un circuito separato, non collegato con il resto. Puoi accenderlo applicando +5 V al 15° pin del display e collegando il 16° pin a terra. Collegando questi due pin ai binari corrispondenti è possibile accendere Arduino e vedere il display illuminarsi.

Tieni presente che su alcuni modelli la numerazione dei contatti non è solo da destra a sinistra dal primo al sedicesimo, ma è un po' più intelligente. Così, ad esempio, su uno schermo 16×2 della Melt, il primo contatto si trova fisicamente nella 14a posizione, il secondo nella 13a e così via da destra a sinistra fino al 14a nella prima posizione, e il 15o e 16 si trovano sulla destra. La numerazione vicino ai contatti del display ti aiuterà a evitare confusione.

Accensione del sintetizzatore di caratteri

    Il primo è la terra. Collegarlo alla guida di terra.

    La seconda è la nutrizione. Collegatelo al binario +5V.

    Il terzo è il contrasto. Per il massimo contrasto, collegalo alla guida di terra. È possibile applicare a questo contatto una tensione arbitraria da 0 a 5 V; più è alta, più oscura sarà l'immagine, ma allo stesso tempo diminuirà il consumo energetico. Per poter regolare agevolmente il contrasto, è possibile applicare a questo contatto un segnale di uscita del potenziometro.

Dopo la connessione, se accendi Arduino, puoi vedere spazi familiari rettangolari. A seconda della combinazione di colori del testo e retroilluminazione, questi possono essere luminosi e chiaramente visibili o appena percettibili. Questo è normale: in ogni caso il testo avrà un bell'aspetto.

Connessione bus dati

Per la comunicazione tra Arduino e lo schermo è necessario utilizzare diverse linee di comunicazione:

    2 o 3 per comandare il display

    4 o 8 per la trasmissione dati (codici carattere e comandi)

Pertanto, saranno occupati da 6 a 11 contatti di entrambi i dispositivi. Se non ti serve Leggere dal display, adatto alla maggior parte degli scenari di utilizzo, i comandi richiederanno 2 righe.

Se anche la velocità di aggiornamento dei dati non è un problema, sono sufficienti 4 righe per trasferire i dati.

Quindi, per collegare il display, è sufficiente utilizzare 6 linee, 6 pin su Arduino. Consideriamo questo scenario particolare.

Come accennato, non abbiamo nulla da leggere sul display, ci limiteremo solo a scriverci. Pertanto colleghiamo il quinto pin del display, responsabile della selezione di lettura/scrittura, alla guida di terra. Ciò significa "scrivi sempre".

Quindi colleghiamo Arduino e lo schermo con le nostre 6 linee di comunicazione. Non importa quali contatti verranno selezionati su Arduino: li specificheremo nel programma, ma per l'esempio abbiamo scelto la seguente configurazione:

    Il pin 6 del display è il pin 5 di Arduino. Questa è la riga di autorizzazione di accesso ai dati. Conosciuto come E o Abilita. Quando questa riga diventa uno, il display esegue un comando o emette un carattere dalla riga dati.

    L'11°, 12°, 13°, 14° pin del display sono rispettivamente il 10°, 11°, 12°, 13° pin di Arduino. Queste sono linee dati. Conosciuto come DB4, DB5, DB6, DB7.

Lo schermo è connesso e pronto per ricevere dati. Non resta che scrivere un programma per Arduino.

Programmazione

Per produrre testo da Arduino, è più conveniente utilizzare la libreria integrata Liquid Crystal. Per visualizzare il messaggio di saluto e il timer, utilizzare un codice come questo:

Ciao.pde #include lcd.inizio(16, 2); // stampa la prima riga lcd.print("Ciao mondo!"); // posiziona il cursore nella colonna 0, riga 1. Cioè, su // questa è in realtà la seconda riga, perché la numerazione parte da zero lcd.setCursore(0, 1); // stampa la seconda riga lcd.print ("foo bar baz"); ) ciclo vuoto() ( )

Tutto è abbastanza semplice e dovrebbe essere chiaro dai commenti.

cirillico

Le informazioni contenute in questa sezione si applicano specificamente ai display di Melt. È improbabile che le controparti cinesi ed europee abbiano il cirillico nel loro set di caratteri; fare riferimento alla documentazione del display per saperne di più.

Stampare lettere russe non è del tutto banale: non puoi semplicemente scrivere lcd.print("Vasya") . Ciò è legato al concetto di codifiche. Sai che ogni carattere ha un codice corrispondente e durante la compilazione di un programma, se una stringa contiene cirillico, verrà convertita in codici utilizzando utf-8, cp-1251 o qualche altra tabella, a seconda delle impostazioni del compilatore. Lo schermo, a sua volta, si aspetta di vedere i dati nella propria codifica.

Ad esempio, la lettera “I” corrisponde al codice B1 nel sistema esadecimale. Per trasmettere la stringa "Yandex" sullo schermo, è necessario incorporare esplicitamente il codice carattere nella stringa utilizzando la sequenza \x##:

Stampa.LCD(" \xB1 indice") ;

Puoi mescolare caratteri normali e codici espliciti in una riga come preferisci. L'unico avvertimento è che dopo che il compilatore vede la sequenza \x in una riga, legge tutti i caratteri dietro di essa che potrebbero essere cifre del sistema esadecimale, anche se ce ne sono più di due. Per questo motivo, non puoi semplicemente utilizzare caratteri nell'intervallo 0-9, a-f seguiti da un codice carattere a due cifre: causerà un errore di compilazione. Per aggirare questo punto, puoi sfruttare il fatto che due righe scritte una accanto all'altra sono incollate insieme. Quindi, se vuoi scrivere "Yeee":

Stampa.LCD(" \xB1 eee") ; // errore lcd.print(" \xB1""eee"); // Giusto

Ad esempio, per scrivere “Saluti da Amperka”, è stato utilizzato il codice:

cirillico.pde #include LCD a cristalli liquidi (4, 5, 10, 11, 12, 13); void setup() (lcd.begin(16, 2) ; lcd.print(" \xA8 p\xB8 \xB3 ""e \xBF") ; lcd.setCursore(0, 1); lcd.print(" o \xBF A\xBC \xBE ""ep \xBA\xB8") ; ) ciclo vuoto() ( )

Cambio delle pagine del generatore di caratteri

Il modulo display memorizza in memoria due pagine del generatore di caratteri. L'impostazione predefinita è pagina zero. Per cambiare pagina utilizzare il metodo command(0x101010) e viceversa: command(0x101000).

Il display non può visualizzare contemporaneamente caratteri di pagine diverse.

Consideriamo un esempio in cui la stessa riga cambierà a seconda della pagina selezionata.

change_page.ino // Include la libreria LiquidCrystal standard#includere // Inizializza l'oggetto della schermata, trasferisce l'usato // per collegare i pin su Arduino sono in ordine:// RS, E, DB4, DB5, DB6, DB7 LCD a cristalli liquidi (4, 5, 10, 11, 12, 13) ; configurazione nulla() ( // imposta la dimensione (numero di colonne e righe) dello schermo lcd.inizio(16, 2); ) ciclo vuoto() ( // imposta la pagina del generatore di caratteri su 0 (questa è l'impostazione predefinita) lcd.comando(0b101000); // stampa la prima riga lcd.print(" \x9b \x9c \x9d \x9e \x9f ") ; // aspetta 1 secondo di ritardo(1000); // installa 1 pagina del generatore di caratteri lcd.comando(0b101010); // aspetta 1 secondo di ritardo(1000); // cancella il display lcd.clear(); )

Ogni radioamatore, dopo un certo numero di semplici progetti fatti in casa, arriva all'obiettivo di costruire qualcosa di grandioso utilizzando sensori e pulsanti. Dopotutto è molto più interessante visualizzare i dati su un display piuttosto che su un monitor portuale. Ma allora sorge spontanea la domanda: quale display scegliere? E in generale, come collegarlo, cosa è necessario per connettersi? Le risposte a queste domande saranno discusse in questo articolo.

LCD1602

Tra le tante opzioni di visualizzazione vorrei citare in particolare il display LCD1602 basato sul controller HD4478. Questo display è disponibile in due colori: lettere bianche su sfondo blu, lettere nere su sfondo giallo. Anche il collegamento dell'LCD 1602 ad Arduino non causerà alcun problema, poiché è presente una libreria integrata e non è necessario scaricare nulla di aggiuntivo. I display differiscono non solo nel prezzo, ma anche nelle dimensioni. Spesso i radioamatori usano 16 x 2, cioè 2 righe di 16 caratteri. Ma c'è anche 20 x 4, dove ci sono 4 righe di 20 caratteri. Dimensioni e colore non giocano alcun ruolo nel collegare il display LCD 1602 ad Arduno; sono collegati allo stesso modo. L'angolo di visione è di 35 gradi, il tempo di risposta del display è di 250 ms. Può funzionare a temperature comprese tra -20 e 70 gradi Celsius. Durante il funzionamento utilizza 4 mA per lo schermo e 120 mA per la retroilluminazione.

Dove viene utilizzato?

Questo display è popolare non solo tra i radioamatori, ma anche tra i grandi produttori. Ad esempio, anche le stampanti e le macchine da caffè utilizzano LCD1602. Ciò è dovuto al suo prezzo basso: questo display costa 200-300 rubli sui siti cinesi. Vale la pena acquistarlo lì, poiché nei nostri negozi i ricarichi per questo display sono molto alti.

Collegamento ad Arduino

Collegare l'LCD 1602 ad Arduino Nano e Uno non è diverso. È possibile lavorare con il display in due modalità: 4 bit e 8. Quando si lavora con 8 bit, vengono utilizzati sia i bit di ordine inferiore che quelli di ordine superiore e con 4 bit solo quelli di ordine inferiore. Non ha senso lavorare con 8 bit, poiché aggiungerà altri 4 contatti per la connessione, il che non è consigliabile, perché la velocità non sarà maggiore, il limite per gli aggiornamenti del display è 10 volte al secondo. In generale, per collegare l'LCD 1602 ad Arduino vengono utilizzati molti fili, il che causa qualche inconveniente, ma ci sono schermature speciali, ma ne parleremo più avanti. La foto mostra il collegamento del display ad Arduino Uno:

Codice d'esempio:

#includere // Aggiunge la libreria LiquidCrystal necessaria lcd(7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup())( lcd.begin(16, 2); // Imposta la dimensione dello schermo lcd.setCursor(0, 0); // Imposta il cursore all'inizio della riga 1 lcd.print("Hello, world!"); // Visualizza il testo lcd.setCursor(0, 1); // Imposta il cursore all'inizio della riga 2 lcd.print("site") ; // Visualizza il testo ) void loop ()( )

Cosa fa il codice? Il primo passo è connettere la libreria per lavorare con il display. Come accennato in precedenza, questa libreria è già inclusa nell'IDE di Arduino e non necessita di essere scaricata e installata ulteriormente. Successivamente, vengono determinati i contatti collegati ai pin: RS, E, DB4, DB5, DB6, DB7, rispettivamente. Quindi viene impostata la dimensione dello schermo. Poiché stiamo lavorando con una versione con 16 caratteri e 2 righe, scriviamo i seguenti valori. Posizioniamo il cursore all'inizio della prima riga e visualizziamo il nostro primo testo Hello World. Successivamente, posiziona il cursore sulla seconda riga e visualizza il nome del sito. È tutto! È stato preso in considerazione il collegamento dell'LCD 1602 ad Arduino Uno.

Cos’è I2C e perché è necessario?

Come accennato in precedenza, il collegamento del display richiede molti contatti. Ad esempio, quando si lavora con più sensori e un display LCD, 1602 pin potrebbero semplicemente non essere sufficienti. Spesso i radioamatori utilizzano le versioni Uno o Nano, che non hanno molti contatti. Quindi le persone hanno inventato scudi speciali. Ad esempio, I2C. Permette di collegare un display con soli 4 pin. Questo è il doppio. Il modulo I2C viene venduto sia separatamente, dove è necessario saldarlo da soli, sia già saldato al display LCD 1602.

Connessione tramite modulo I2C

Collegare LCD 1602 ad Arduino Nano con I2C occupa poco spazio, solo 4 pin: terra, alimentazione e 2 uscite dati. Colleghiamo alimentazione e terra rispettivamente a 5 V e GND su Arduino. Colleghiamo i restanti due contatti: SCL e SDA a qualsiasi pin analogico. Nella foto puoi vedere un esempio di collegamento di un lcd 1602 ad un arduino con modulo I2C:

Codice del programma

Se per lavorare con un display senza modulo era necessario utilizzare una sola libreria, per lavorare con un modulo sono necessarie due librerie. Uno di questi è già incluso nell'IDE di Arduino - Wire. Un'altra libreria, LiquidCrystal I2C, deve essere scaricata separatamente e installata. Per installare la libreria in Arduino, il contenuto dell'archivio scaricato deve essere caricato nella cartella root Libraries. Esempio di codice di programma che utilizza I2C:

#includere #includere LiquidCrystal_I2C lcd(0x27,16,2); // Imposta il display void setup() ( lcd.init(); lcd.backlight(); // Accende la retroilluminazione del display lcd..setCursor(8, 1); lcd.print("LCD 1602"); ) void loop( ) ( // Imposta il cursore sulla seconda riga e sul carattere zero. lcd.setCursor(0, 1); // Visualizza il numero di secondi trascorsi dall'avvio di Arduino lcd.print(millis()/1000); )

Come puoi vedere, il codice è quasi lo stesso.

Come aggiungere il tuo simbolo?

Il problema con questi display è che non c'è supporto per l'alfabeto e i simboli cirillici. Ad esempio, è necessario caricare qualche simbolo nel display in modo che possa rifletterlo. Per fare ciò, il display ti consente di creare fino a 7 simboli personalizzati. Immagina la tabella:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

Se 0 - non c'è nulla, se 1 - questa è un'area dipinta. Nell'esempio qui sopra puoi vedere la creazione del simbolo della "faccina sorridente". Usando un programma di esempio in Arduino sarebbe simile a questo:

#includere #includere // Aggiunge la libreria necessaria // Maschera di bit del simbolo del sorriso byte smile = ( B00010, B00001, B11001, B00001, B11001, B00001, B00010, ); LCD a cristalli liquidi (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup())( lcd.begin(16, 2); // Imposta la dimensione dello schermo lcd.createChar(1, smile); // Crea il numero del carattere 1 lcd.setCursor(0, 0); // Imposta il cursore all'inizio della riga 1 lcd.print("\1"); // Visualizza una faccina sorridente (carattere numero 1) - "\1" ) void loop ())( )

Come puoi vedere, è stata creata una maschera di bit come la tabella. Una volta creato, può essere visualizzato come variabile sul display. Ricorda che puoi memorizzare solo 7 caratteri in memoria. In linea di principio, questo è sufficiente. Ad esempio, se devi mostrare un simbolo di laurea.

Problemi in cui il display potrebbe non funzionare

Ci sono momenti in cui il display non funziona. Ad esempio, si accende, ma non mostra i caratteri. Oppure non si accende affatto. Innanzitutto, controlla se hai collegato correttamente i pin. Se hai utilizzato una connessione LCD 1202 ad Arduino senza I2C, è molto facile rimanere aggrovigliati nei cavi, il che potrebbe causare il malfunzionamento del display. Dovresti anche assicurarti che il contrasto del display sia aumentato, poiché con il contrasto minimo non è nemmeno visibile se l'LCD 1602 è acceso o meno. Se questo non aiuta, forse il problema potrebbe risiedere nella saldatura dei contatti, questo avviene quando si utilizza un modulo I2C. Un altro motivo comune per cui il display potrebbe non funzionare è l'impostazione errata dell'indirizzo I2C. Il fatto è che ci sono molti produttori e possono inserire un indirizzo diverso, devi correggerlo qui:

LiquidCrystal_I2C lcd(0x27,16,2);

Tra parentesi puoi vedere due valori, 0x27 e 16.2 (16.2 è la dimensione del display e 0x27 è l'indirizzo I2C). Invece di questi valori, puoi provare a impostare 0x37 o 0x3F. Ebbene, un altro motivo è semplicemente un LCD 1602 difettoso. Considerando che quasi tutto per Arduino è prodotto in Cina, non si può essere sicuri al 100% che il prodotto acquistato non sia difettoso.

Pro e contro dell'LCD 1602

Diamo un'occhiata ai pro e ai contro del display LCD 1602.

  • Prezzo. Questo modulo può essere acquistato ad un prezzo molto conveniente nei negozi cinesi. Il prezzo è di 200-300 rubli. A volte viene addirittura venduto insieme ad un modulo I2C.
  • Facile da connettere. Probabilmente nessuno collega l'LCD 1602 senza I2C al giorno d'oggi. E con questo modulo la connessione richiede solo 4 contatti, non ci saranno “ragnatele” di fili.
  • Programmazione. Grazie alle librerie già pronte, lavorare con questo modulo è semplice; tutte le funzioni sono già scritte. E se devi aggiungere il tuo simbolo, ci vogliono solo un paio di minuti.
  • Durante il suo utilizzo da parte di migliaia di radioamatori, non sono stati identificati grossi svantaggi, solo ci sono casi di acquisti difettosi, poiché vengono utilizzate principalmente versioni cinesi dei display.

Questo articolo esaminava il collegamento del 1602 ad Arduino e forniva anche esempi di programmi per lavorare con questo display. È davvero uno dei migliori della sua categoria, non per niente migliaia di radioamatori lo scelgono per i loro progetti!

Il display LCD Arduino consente di visualizzare visivamente i dati del sensore. Ti spiegheremo come collegare correttamente un monitor LCD ad Arduino tramite I2C e vedremo i comandi di base per inizializzare e controllare l'LCD 1602. Vedremo anche varie funzioni nel linguaggio di programmazione C++ per visualizzare informazioni di testo sul display , che spesso è necessario utilizzare nei progetti Arduino.

Video. Display LCD Arduino I2C 1602

Connessione LCD 1602 I2C ad Arduino

I2C è un bus seriale a due fili per la comunicazione di circuiti integrati all'interno di dispositivi elettronici, noto come I²C o IIC (Inter-Integrated Circuit). I²C è stato sviluppato da Philips all'inizio degli anni '80 come semplice bus a 8 bit per la comunicazione interna tra i circuiti dell'elettronica di controllo (ad es. schede madri di computer, telefoni cellulari, ecc.).

In un semplice sistema I²C possono essere presenti diversi dispositivi slave e un dispositivo master che avvia il trasferimento dei dati e sincronizza il segnale. È possibile collegare più dispositivi slave alle linee SDA (linea dati) e SCL (linea orologio). Spesso il dispositivo master è un controller Arduino e i dispositivi slave sono un orologio in tempo reale o un display LCD.

Come collegare LCD 1602 ad Arduino tramite I2C

Il display LCD 1602 con modulo I2C è collegato alla scheda Arduino con soli 4 fili: 2 cavi dati e 2 cavi di alimentazione. La connessione del display 1602 viene effettuata di serie per il bus I2C: pin S.D.A. si collega alla porta A4, uscita SCL– alla porta A5. Il display LCD è alimentato dalla porta +5V di Arduino. Per maggiori dettagli vedere lo schema di collegamento del monitor LCD 1602 nella foto sotto.

Per questa lezione avremo bisogno dei seguenti dettagli:

  • Scheda Arduino Uno / Arduino Nano / Arduino Mega;
  • Monitor LCD 1602;
  • 4 fili maschio-femmina.

Dopo aver collegato il monitor LCD ad Arduino tramite I2C, sarà necessario installare la libreria LiquidCrystal_I2C.h per lavorare con display LCD tramite interfaccia I2C e libreria Filo.h(disponibile nel programma IDE Arduino standard). È possibile scaricare la libreria funzionante LiquidCrystal_I2C.h per LCD 1602 con un modulo I2C nella pagina Librerie Arduino sul nostro sito Web tramite un collegamento diretto da Google Drive.

Schizzo per il display 1602 con I2C

#includere // libreria per il controllo dei dispositivi tramite I2C#includere // collega la libreria per LCD 1602 LiquidCrystal_I2C lcd(0x27,20,2); // assegna un nome al display LCD per il display 20x2 void setup () // configurazione della procedura ( lcd.init (); // inizializza il display LCD lcd.retroilluminazione(); // abilita la retroilluminazione del display lcd.setCursor(0,0); // posiziona il cursore su 1 carattere della prima riga lcd.print("AMO"); // stampa il messaggio sulla prima riga lcd.setCursor(0,1); // posiziona il cursore su 1 carattere della seconda riga lcd.print("ARDUINO"); // stampa il messaggio sulla seconda riga) void loop () // procedura loop ( /* questo è un commento su più righe // inizialmente la procedura void loop() non viene utilizzata nello sketch lcd.noDisplay(); // disattiva il ritardo della retroilluminazione del display LCD (500); // mette in pausa lcd.display(); // attiva il ritardo della retroilluminazione del display LCD (500); // pausa */ }

Spiegazioni per il codice:

  1. la libreria LiquidCrystal_I2C.h contiene molti comandi per il controllo di un display LCD tramite il bus I²C e consente di semplificare notevolmente lo sketch;
  2. Lo schizzo contiene un commento su più righe /* ... */, che consente di commentare più righe contemporaneamente nel programma.
  3. Prima di visualizzare le informazioni sul display, è necessario impostare la posizione del cursore con il comando setCursor(0,1) , dove 0 è il numero del carattere nella riga, 1 è il numero della riga.

I migliori articoli sull'argomento