Come collegare il display OLED I2C ad ARDUINO

Pin
Send
Share
Send

Introduzione: Presentazione del display I2C OLED 128 * 64/128 * 32.

Saluti! Essendo un dilettante - un appassionato di elettronica, sono sicuro che tutto ciò che facciamo sono giocattoli elettronici - prodotti fatti in casa o grandi progetti, tutti per curiosità e pigrizia. La curiosità cerca di comprendere e comprendere l'immenso, non noto, per capire come funziona lì, cosa fa, come si muove. E la pigrizia inventa, al fine di trovare questo, in modo da non alzarsi, non in forma, non sollevare, non sporcarsi o qualcos'altro importante.
Poiché vedere le informazioni è meglio che capire cosa sta per accadere nel nostro dispositivo, o è già successo o sta accadendo, vorremmo sicuramente ottenere queste informazioni molto utili dai nostri microcontrollori, sensori o altri dispositivi. E io, in ogni caso, voglio ricevere qualsiasi messaggio, come domande, avvertimenti, promemoria, emoticon, asterischi, cuori e simili.
Per coloro che hanno anche un desiderio simile, ecco una guida rapida per il collegamento e il controllo di display OLED piccoli ed economici.
Successivamente, parleremo di uno dei modelli ampiamente disponibili per radioamatori di display OLED controllati dal chip SSD1306, con una dimensione dello schermo di 0,96 pollici e una risoluzione di 128 * 64 o 128 * 32 pixel. Questi display sono ideali per piccoli progetti radio amatoriali e prodotti fatti in casa.

Passaggio 1: concetti chiave


Lo collegheremo ad Arduino UNO / NANO, bene, e per programmare, rispettivamente, lo collegheremo anche tramite Arduino.
  • L'OLED è un diodo organico a emissione di luce, cioè un dispositivo a semiconduttore costituito da composti organici, che inizia a emettere luce quando una corrente elettrica lo attraversa.
  • ARDUINO è una piattaforma per la formazione e l'automazione degli edifici e i sistemi di robotica.
  • ArduinoIDE è un ambiente di sviluppo. Questo è uno strumento di programmazione Arduino gratuito.
  • I2C - Circuiti integrati integrati, linea di comunicazione tra microcircuiti.
  • Uno schizzo, è un codice, è un programma - terminologia di Arduino.

Seguire le istruzioni per capire come collegare e configurare correttamente un display OLED ad Arduino e come visualizzare il proprio messaggio sul display.
Facciamo tutto a passi.

Passaggio 2: accessori


Avremo bisogno solo di quattro cose:
  • 1. Il display OLED stesso è 0.96 "(può essere acquistato su Aliexpress o Ebay, - lungo, ma economico!).
  • 2. Arduino UNO / Nano (nello stesso posto del display).
  • 3. Cavi di collegamento (ibid.).
  • 4. Un computer o laptop con ArduinoIDE installato.

In generale, l'acquisto di parti per vari progetti su Aliexpress ed Ebay è una cosa molto interessante, mentre stai facendo un progetto, parti per un altro sono già in arrivo. La cosa principale è non dimenticare di effettuare un ordine.

Passaggio 3: collegare il display


Il display è controllato dal chip SSD1306, che supporta cinque protocolli di comunicazione e uno dei quali è I2C. I dati su questo protocollo sono trasmessi in soli due fili, e meno fili nel caso, meglio è, quindi ci si adatta bene. Ma! Esistono moduli con protocollo SPI e persino commutazione di protocollo, quindi fai attenzione quando acquisti questo modulo.

Conclusioni utilizzate:
Display OLED - SCL / SCK (orologio) e SDA (dati), alimentazione "Plus" (VCC) e alimentazione "Minus" (GND).

Conclusioni utilizzate:
Arduino UNO - SCL / SCK su A5 e SSD su A4, alimentazione "Plus" (+ 5V) e alimentazione "Minus" (GND).
Collega il display ad Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Passaggio 4: scanner I2C


Ogni dispositivo sul bus I2C ha un indirizzo esadecimale, non è possibile modificarlo, è cucito strettamente, ogni produttore responsabile deve indicarlo da qualche parte sul caso o nelle istruzioni. Ci sono moduli con interruttori e ponticelli con cui è possibile modificare l'indirizzo, ma ... se i dispositivi sono economici, per la bruttezza, quindi il produttore potrebbe non preoccuparsi di gestire una tale sciocchezza, quindi dovrai determinarlo tu stesso.
In totale, sul bus possono essere utilizzati fino a 127 indirizzi, 119 per dispositivi e 8 indirizzi di servizio. La comunicazione viene condotta a questi indirizzi. C'è un maestro, è un Maestro, ma c'è uno schiavo, è anche uno Schiavo - chiedono i Maestri, i seguaci rispondono, tutto è semplice.
Poiché il nostro display OLED utilizza il protocollo di comunicazione I2C e l'indirizzo potrebbe non essere indicato, cercheremo di scoprire proprio questo indirizzo.
Questo può essere fatto scaricando un breve schizzo sulla scheda Arduino con OLED collegato. MA!
Prenditi il ​​tuo tempo per caricare subito lo sketch su Arduino! Scarichiamo innanzitutto il "driver", ad es. collegheremo le librerie e per questo andremo direttamente al "Passaggio 5", quindi torneremo indietro e continueremo.

Passaggio 4: Continua:


Scarica CODE Finder_I2C_Hex_Address.ino, carica su Arduino.
Apri "Port Monitor", imposta la velocità su 9600 e se tutto è collegato correttamente, il programma mostrerà l'indirizzo del dispositivo, nel mio caso OLED con l'indirizzo 0x3F.

Passaggio 5: scaricare e connettere le librerie


Affinché tutto funzioni correttamente e non sia necessario reinventare la ruota, è necessario collegare un paio di librerie all'ambiente ArduinoIDE, vale a dire: ADAFRUIT GFX e ADAFRUIT SSD1306, sono necessarie affinché Arduino sia in grado di comunicare in modo indipendente con il display OLED.
È possibile connettere queste librerie seguendo questi passaggi.
  • 1. In ArduinoIDE, vai al menu Schizzo.
  • 2. Seleziona "Includi librerie" / Includi librerie.
  • 3. Seleziona "Gestisci librerie" / Librerie gestite.
  • 4. Trova ADAFRUIT GFX e installali.
  • 5. Trova ADAFRUIT SSD1306 e installali.

Con le nuove versioni delle librerie, il display ha funzionato in modo storto per me, forse ovviamente questo è dovuto alla curvatura delle mani, ma dopo aver installato le prime versioni di queste librerie, tutto ha iniziato ad apparire senza intoppi e in modo bello. Per qualche ragione, le linee di Pushkin appaiono nella sua memoria:
... ed esperienza, figlio di errori difficili,
e genio, paradossi amici.

Un altro modo per installare le librerie è trovare, scaricare e installare queste librerie da soli.
Per un esempio di Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Queste sono le stesse librerie Adafruit, ma librerie simili sono facilmente ricercabili nei motori di ricerca, su richiesta di OLED I2C. Molti appassionati scrivono librerie "per se stessi", e poi le mettono sul web. Quale libreria usare dipende da te.
Affinché il display visualizzi le lettere russe, sono necessarie anche librerie speciali, ma questo è un argomento separato per un articolo separato.
Dopo aver installato le librerie, è possibile tornare al passaggio 4 e infine scoprire l'indirizzo esadecimale del display.

Passaggio 6: test del display


Per verificare se tutto funziona come previsto, eseguire l'esempio di test da ArduinoIDE.
Per fare questo:
Vai FILE> ESEMPI> SSD 1306> Seleziona 128x64 i2c
Se ricevi un "Errore", prova a scegliere l'SSD 1306> 128x32 i2c.
Se Errore di nuovo, prova a cambiare l'indirizzo I2C alla riga 61 del codice demo e sostituiscilo con l'indirizzo del tuo display, che hai determinato nel passaggio 4.
Se l'errore si ripresenta, puoi provare a modificare il file Adafruit_SSD1306.h, che si trova nella cartella con le librerie Arduino.

Apri il file Adafruit_SSD1306.h in un editor di testo e trova le righe:
// # define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Rimuovi commento:
#define SSD1306_128_64.

Dovrebbe essere così:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Se l'errore si ripete, è necessario verificare la correttezza delle connessioni.
Una volta completato il download, vedrai un'animazione di prova sullo schermo, il che significa che hai configurato correttamente il tuo display OLED.

Quando ti piace questa animazione, puoi procedere al passaggio successivo.

Passaggio 7: scrivere il tuo messaggio


Per scrivere il tuo messaggio, crea prima un nuovo schizzo nell'ambiente di programmazione ArduinoIDE.
Nell'intestazione, colleghiamo 4 librerie:
#include #include #include #include 

Quindi scriviamo il protocollo di ripristino:
#define Display OLED_RESET 4 Adafruit_SSD1306 (OLED_RESET);

Nel SETUP VUOTO, specifica l'indirizzo esadecimale del nostro display 0x3C, che abbiamo scoperto nel "Passaggio n. 4".
Quindi, inizializza il display e cancellalo:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Successivamente, in VOID LOOP, scriviamo il codice principale, ovvero il nostro messaggio, che vogliamo visualizzare sul display.
Per fare ciò, descriviamo le dimensioni del testo, il colore del testo, la posizione del cursore e, infine, visualizziamo un messaggio usando il comando println:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Ben fatto!"); display.display ();

Alla fine, non dimenticare di scrivere Display.Displayin modo che l'immagine venga visualizzata sullo schermo, altrimenti si otterrà un vuoto.
Se hai fatto tutto correttamente, sul display apparirà un messaggio.

Ecco il CODICE Starting_with_Arduino_OLED.ino del nostro programma:
code.zip 946 b (download: 1366)

Pin
Send
Share
Send