Come interfaccia LCD con ESPTOP 10 usando Arduino IDE

Come interfaccia LCD con ESPTOP 10 usando Arduino IDE

ESP32 è un microcontrollore basato su IoT che può elaborare più istruzioni proprio come Arduino, ma è disponibile per impostazione predefinita con Bluetooth e WiFi. ESP32 è una scheda autonoma che può aiutare l'altro sistema a ridurre il loro carico perché può fungere da dispositivo master o slave. Come Arduino possiamo anche interfacciarsi uno schermo LCD con ESP32. Discutiamo come farlo in dettaglio.

Interfaccia LCD con ESP32 usando Arduino IDE

I2C LCD può visualizzare i processi di dati durante la programmazione su uno schermo. Fornisce una rappresentazione visiva dei dati ricevuti da sensori, moduli o microcontrollori. LCD può essere integrato senza usare il modulo I2C, ma il vantaggio di utilizzare I2C è che utilizza solo due fili SDA E SCL per comunicare i dati con conseguente fornitura di diversi I/O su ESP32 che possono essere utilizzati per integrare altri dispositivi.

Inoltre, ha un potenziometro a bordo in grado di controllare la luminosità del display LCD semplicemente regolando la manopola potenziometro.

Cablaggio del LCD su ESP32 con I2C

Connetti il ​​modulo I2C con ESP32 usando il pin Digital Pin 21 e 22 di ESP32. L'immagine indicata di seguito rappresenta connessioni di I2C con display ESP32 e LCD. Il pin SDA di I2C è collegato al pin 21 di ESP32 e allo stesso modo SCL Pin di I2C è unito al pin GPIO 22.

La tabella seguente rappresenta la connessione di ESP32 con I2C.

I2C LCD ESP32
GND GND
VCC Vin
SDA GPIO 21
SCL GPIO 22

Installazione della libreria LiquidCrystal_I2C in Arduino IDE

Una volta completato il circuito Connetti la scheda ESP32 con PC. Ora apri l'IDE e vai a Biblioteca Manager Cercare Cristallo liquido I2C biblioteca. Installa la biblioteca data da Frank de Brabander.

Una volta fatto clic sui file della libreria di installazione inizierà il download, dopo l'installazione riuscita riceverai una libreria installata nella finestra di output.

Ottenere l'indirizzo LCD

Prima di collegare qualsiasi dispositivo I2C con ESP32 è importante notare quale indirizzo quel dispositivo specifico è connesso. Alcuni moduli hanno scritto gli indirizzi I2C predefiniti mentre alcuni di essi non hanno istruzioni per controllare gli indirizzi I2C.

Per risolvere questo problema, abbiamo a filo Codice della libreria che controlla tutti i dispositivi I2C connessi e a quale indirizzo sono connessi a ESP32. Ciò aiuterà a debug e miglioramento del circuito ESP32.

#include /*include il filo.Biblioteca H*/
void setup ()

Filo.inizio(); /*Filo i2c comunicazione avvia*/
Seriale.Inizia (115200); /*Tasso di baud impostato per la comunicazione seriale*/
Mentre (!Seriale); /*In attesa di output seriale sul monitor seriale*/
Seriale.println ("\ NI2C Scanner");

void loop ()

byte err, ADR; /*L'errore variabile è definito con indirizzo di I2C*/
int numero_of_devices;
Seriale.println ("scansione.");
numero_of_devices = 0;
per (ADR = 1; ADR < 127; adr++ )

Filo.BeginTransmission (ADR);
err = filo.endTransmission ();
if (err == 0)

Seriale.stampa ("dispositivo i2c all'indirizzo 0x");
if (ADR < 16)
Seriale.print ("0");
Seriale.stampa (ADR, esadecimale);
Seriale.println (" !");
numero_of_devices ++;

altrimenti se (err == 4)

Seriale.print ("Errore sconosciuto all'indirizzo 0x");
if (ADR < 16)
Seriale.print ("0");
Seriale.println (ADR, esadecimale);


if (numero_of_devices == 0)
Seriale.println ("no i2c dispositivo collegato \ n");
altro
Seriale.println ("done \ n");
ritardo (5000); /*Aspetta 5 secondi per la prossima scansione I2C*/

Questo codice aiuterà a trovare il numero di dispositivi I2C e il loro indirizzo a cui sono connessi. Questo codice è comunemente indicato come codice scanner I2C.

Innanzitutto, abbiamo incluso un "Filo.H" biblioteca. Quindi nella parte di configurazione del codice abbiamo iniziato questa libreria. Successivamente inizializziamo la comunicazione seriale definendo il tasso di baud 9600. Ciò contribuirà a vedere l'output sul monitor seriale.

Nella sezione Loop, abbiamo definito due variabili "Err" E "ADR". Quindi abbiamo definito un'altra variabile "Dispositivi" e impostalo su zero. Dopo quello a per Loop è inizializzato con valori tra 0 e 127.

Successivamente, inseriamo l'indirizzo sul filo usando filo.BeginTransmission (), Lo scanner I2C cercherà il riconoscimento dei dispositivi e il loro indirizzo. Il valore lettura verrà archiviato nella variabile "errore". Il valore di restituzione sarà uguale a 0 se il dispositivo riconosce l'indirizzo altrimenti il ​​valore diventerà 4. Successivamente, abbiamo utilizzato una condizione if che stamperà l'indirizzo del dispositivo I2C se il valore è <16. Final address of the device is printed in Hexadecimal form.

L'output di dispositivi collegati a ESP32 su protocolli I2C apparirà come mostrato nel diagramma seguente. Qui 0x3c è l'indirizzo del LCD I2C Mentre 0x27 è l'indirizzo dell'OLED schermo.

Visualizzazione del testo sul LCD

La visualizzazione del testo su un LCD utilizzando ESP32 è molto semplice. Tutto ciò di cui abbiamo bisogno è selezionare la riga e la colonna di LCD in cui vogliamo visualizzare i caratteri. Di seguito è riportato un programma molto semplice che viene visualizzato "Linuxhint ESP32".

#includere
/* Inizializza colonne e righe LCD*/
int lcd_columns = 16;
int lcd_rows = 2;
/* Imposta l'indirizzo LCD, il numero di colonne e righe*/
/* Per conoscere l'indirizzo I2C (0x27), eseguire uno schizzo di scanner I2C*/
Liquidcrystal_i2c lcd (0x27, lcd_columns, lcd_rows);
void setup ()
/* Inizializza lcd*/
LCD.dentro();
/* Accendi la retroilluminazione LCD*/
LCD.retroilluminazione ();

void loop ()
/*Imposta il cursore sulla prima colonna, prima riga*/
LCD.setCursor (0, 0);
/* Stampa Messaggio*/
LCD.print ("Linuxhint ESP32");
ritardo (1000);
/*cancella il display per stampare nuovo messaggio*/
LCD.chiaro();

Mentre scrivi il codice la prima cosa di cui abbiamo bisogno è chiamare la libreria di cristalli liquidi che abbiamo installato.

#includere

Le due righe successive rappresentano le righe e le colonne del LCD in cui abbiamo bisogno del testo per visualizzare. Se si utilizza un display di altre dimensioni, modifica la riga e la colonna di conseguenza.

int lcd_columns = 16;
int lcd_rows = 2;

Quindi visualizzeremo l'indirizzo i2C in cui è collegato il modulo I2C LCD. Nel nostro caso lo è 0x27. Se si utilizza una versione simile di LCD, potrebbe essere uguale al nostro altrimenti eseguire il codice di controllo dell'indirizzo sopra indicato sopra.

Liquidcrystal_i2c lcd (0x27, lcd_columns, lcd_rows);

Successivamente, abbiamo inizializzato il display e la retroilluminazione del LCD utilizzando i seguenti comandi.

LCD.dentro();
LCD.retroilluminazione ();

Per visualizzare il comando del cursore LCD di testo viene utilizzato 0 corrisponde alla prima colonna e riga.

LCD.setCursor (0, 0);

Dopodiché, il LCD.La funzione print () viene utilizzata per visualizzare il testo, quindi cancriamo lo schermo utilizzando LCD.chiaro().

LCD.print ("Linuxhint ESP32");
LCD.chiaro();

Produzione

L'output del codice rappresenta i caratteri definiti nel programma sul display LCD.

Conclusione

Abbiamo coperto tutti i passaggi per collegare un display LCD con ESP32 usando il modulo I2C. Per collegare il LCD, dobbiamo prima installare la libreria utilizzando il Gestione libreria. Quindi utilizzando l'indirizzo I2C corretto possiamo inviare tutti i dati che desideriamo al LCD.