Come disegnare rettangolo su OLED usando ESP Top 10 con Arduino IDE

Come disegnare rettangolo su OLED usando ESP Top 10 con Arduino IDE

ESP32 è una scheda microcontrollore di conservazione dell'alimentazione basata su IoT. ESP32 ha tutte quelle caratteristiche di cui ha bisogno una scheda microcontrollore. È una scelta popolare per i progetti di Internet of Things (IoT) ed è spesso utilizzato come microcontrollore per l'automazione domestica, l'elettronica indossabile e altri dispositivi connessi. ESP32 ha un processore a doppio core, molti pin di input/output (I/O) che possono essere programmati utilizzando l'ambiente di sviluppo integrato Arduino (IDE). Oggi questo articolo coprirà i passaggi necessari per integrare un display I2C OLED con ESP32. Dopodiché disegneremo una forma rettangolare su uno schermo OLED.

Questa lezione include i seguenti argomenti:

1: Introduzione al display OLED ESP32

2: Modulo di visualizzazione OLED di cablaggio su ESP32

3: installazione delle librerie richieste

4: disegnare un rettangolo sul display OLED usando Arduino IDE

4.1: codice

4.2: output

5: disegnare un rettangolo pieno sullo schermo OLED usando Arduino IDE

5.1: codice

5.2: output

6: combinando entrambi i rettangolo sullo schermo OLED usando Arduino IDE

6.1: codice

6.2: output

1: Introduzione al display OLED ESP32

Un display I2C OLED è un tipo di display di diodo a emissione di luce organica (OLED) che utilizza il protocollo del circuito inter-integrato (I2C) per la comunicazione. I display OLED sono noti per il loro elevato rapporto di contrasto, un ampio angolo di visualizzazione e tempi di risposta rapidi, rendendoli adatti per una varietà di applicazioni di visualizzazione.

Un display OLED I2C è in genere costituito da un piccolo schermo OLED e un circuito del driver che converte i segnali I2C nelle tensioni e correnti appropriate necessarie per guidare i pixel OLED. Questi display sono spesso utilizzati in piccoli dispositivi portatili come smartwatch e tracker di fitness, nonché in pannelli di visualizzazione più grandi e altre applicazioni in cui è richiesto un display compatto a bassa potenza.

I LED all'interno dello schermo OLED illuminano i pixel che ci visualizzano immagini e testo diversi. Mentre sull'altro lato lo schermo LCD utilizza una retroilluminazione per illuminare i suoi pixel. La luminosità di questi pixel può essere controllata pixel da pixel.

Ora interfacciamo ESP32 con un display OLED.

2: Modulo di visualizzazione OLED di cablaggio su ESP32

Gli schermi OLED lavorano principalmente su due protocolli di comunicazione. Questi sono i2c e SPI. Tra questi due SPI (interfaccia periferica seriale) è più veloce rispetto a I2C, ma la maggior parte delle volte il display OLED I2C è preferito a causa di un numero inferiore di fili.

I2C è un protocollo di comunicazione seriale a due fili che consente a più dispositivi di condividere un singolo set di linee di dati e clock, rendendolo una scelta conveniente per il collegamento di display OLED a microcontrollori e altri dispositivi

Utilizzando I2C OLED a due pin SDA e SCL sono sufficienti per la visualizzazione di immagini e testo. L'immagine data mostra ESP32 con 0.Schermo OLED da 96 pollici (128 × 64 pixel):

La connessione per pin ESP32 con OLED è la seguente:

Dato che abbiamo interfacciato ESP32 con un display OLED, ora installeremo le librerie necessarie nell'IDE Arduino in modo da poter andare avanti con le forme che vengono visualizzate sullo schermo OLED.

3: installazione delle librerie richieste

Per la visualizzazione di immagini, dobbiamo installare le librerie necessarie per il display OLED in Arduino IDE. Senza usare queste librerie ESP32 non può visualizzare la grafica su OLED. Principalmente vengono utilizzate due librerie di Adafruit: SSD1306 E Gfx biblioteca.

Prima apri l'IDE Arduino e cerca nella libreria SSD1306. Installa la libreria OLED SSD1306 di Adafruit. Altro modo di installare è: Schizzo> Includi la libreria> Gestisci le biblioteche:

Ora installa il Gfx Biblioteca di Adafruit:

Ora abbiamo installato entrambe le librerie. Ora possiamo facilmente programmare ESP32 con un display OLED.

4: disegnare un rettangolo sul display OLED usando Arduino IDE

Per disegnare un rettangolo su uno schermo OLED useremo il DrawRect (X-coordinate, Y-coordinate, larghezza, altezza) funzione.

Questa funzione prende 4 argomenti:

  • Posizione del centro rispetto alla coordinata X
  • Posizione del centro rispetto alla coordinata Y
  • Larghezza del rettangolo
  • Altezza del rettangolo

Dopo aver definito tutti e tre i parametri, caricare il codice sulla scheda ESP32.

1: codice

Apri Arduino IDE, Connect ESP32 e Codice di caricamento:

Codice avviato includendo i file della libreria SSD1306 necessari. Dopodiché abbiamo definito l'indirizzo I2C e i pin i2C per la comunicazione.

Ricorda di controllare l'indirizzo I2C prima di definire. Per controllare l'indirizzo I2C di qualsiasi dispositivo caricare il codice indicato in Tutorial Come scansionare l'indirizzo I2C in ESP32 utilizzando Arduino IDE.

Se stai usando più di un dispositivo I2C con lo stesso indirizzo, devi prima cambiare l'indirizzo di uno di essi.

Successivamente nel codice abbiamo inizializzato il display OLED e definito il disegnoRect () funzione. Qui abbiamo definito il pixel centrale del rettangolo con coordinate x di 40 e Y coordinate di 20. La larghezza del rettangolo è impostata su 40 e l'altezza del rettangolo è impostata su 30. Qui sia l'altezza che la larghezza del rettangolo sono in base al numero di pixel:

#include "SSD1306.H"
Display SSD1306 (0x3c, 21, 22);
void setup ()
Schermo.dentro();
Schermo.DrawRect (40, 20, 70, 30);
Schermo.Schermo();

void loop ()

2: output

Dopo il caricamento del codice in ESP32 sotto l'output verrà visualizzato sullo schermo OLED:

5: disegnare un rettangolo pieno sullo schermo OLED usando Arduino IDE

Ora disegneremo un rettangolo pieno. Il codice è praticamente simile al precedente. L'unica differenza qui è che abbiamo usato una nuova funzione Schermo.fillect (40, 20, 70, 30); Questa funzione prende anche 4 argomenti come il precedente. I primi due argomenti definiranno la posizione del rettangolo e i restanti due rappresenteranno rispettivamente la larghezza e l'altezza del rettangolo.

1: codice

Apri Arduino IDE e carica il codice dato:

Codice avviato includendo i file della libreria SSD1306 necessari. Dopodiché abbiamo definito l'indirizzo I2C e i pin i2C per la comunicazione.

Successivamente nel codice abbiamo inizializzato il display OLED e definito il fillerct () Funzionare come un rettangolo pieno. Questa funzione disegnerà un rettangolo riempito con parametri definiti. Qui abbiamo definito il pixel centrale del rettangolo con coordinate x di 40 e Y coordinate di 20. Il rettangolo con larghezza e altezza di 70 e 30 rispettivamente si disegnerà su uno schermo OLED.

#include "SSD1306.H"
Display SSD1306 (0x3c, 21, 22);
void setup ()
Schermo.dentro();
Schermo.fillect (40, 20, 70, 30);
Schermo.Schermo();

void loop ()

2: output

Dopo il caricamento del codice su ESP32 sotto il rettangolo pieno può essere visto:

6: combinando entrambi i rettangoli sullo schermo OLED usando Arduino IDE

Ora per combinare entrambi i rettangoli definiremo entrambe le funzioni nello stesso programma. Ricorda di cambiare la posizione e le dimensioni del rettangolo altrimenti entrambi i rettangoli si sovrappongono.

1: codice

Apri Arduino IDE e caricamento del codice su ESP32:

Questo programma disegnerà due rettangoli con le stesse dimensioni. Un rettangolo è riempito e l'altro è non riempito.

#include "SSD1306.H"
Display SSD1306 (0x3c, 21, 22);
void setup ()
Schermo.dentro();
Schermo.DrawRect (10, 10, 40, 20);
Schermo.fillect (70, 10, 40, 20);
Schermo.Schermo();

void loop ()

2: output

Dopo il caricamento del codice, possiamo vedere l'output di seguito sullo schermo OLED:

Conclusione

I display OLED sono un ottimo modo per dare una rappresentazione grafica ai nostri dati. Qui questo articolo copre alcuni semplici passaggi necessari per disegnare un rettangolo su uno schermo OLED. Utilizzando il codice dato qualsiasi display OLED può essere utilizzato per visualizzare immagini e testo.