Cum conectați afișajul OLED I2C la ARDUINO

Pin
Send
Share
Send

Introducere: Introducerea afișajului OLED I2C 128 * 64/128 * 32.

Salutări! Fiind un amator - un pasionat de electronică, sunt sigur că tot ce facem este jucăriile electronice - produse de casă sau proiecte mari, toate din curiozitate și lene. Curiozitatea încearcă să înțeleagă și să înțeleagă imensul, necunoscut, să înțeleagă cum funcționează acolo, ce face, cum se mișcă. Și lenea inventează, pentru a veni cu asta, pentru a nu se ridica, nu se potrivește, nu se ridică, nu se murdărește sau altceva important.
Din moment ce a vedea informații este mai bine decât să înțelegem ce urmează să se întâmple pe dispozitivul nostru sau s-a întâmplat deja sau se întâmplă, cu siguranță vom dori să obținem aceste informații foarte utile de la microcontrolerele, senzorii sau alte dispozitive. Și eu, în orice caz, vreau să primesc mesaje, cum ar fi întrebări, avertismente, memento-uri, emoticoane, asteriscuri, inimi și altele asemenea.
Pentru cei care au și o dorință similară, iată un ghid rapid pentru conectarea și verificarea afișajelor OLED mici și ieftine.
În continuare, vom vorbi despre unul dintre modelele disponibile pe scară largă pentru modelele radio ham cu afișaje OLED controlate de cipul SSD1306, cu o dimensiune a ecranului de 0,96 inchi și o rezoluție de 128 * 64 sau 128 * 32 pixeli. Aceste afișaje sunt ideale pentru mici modele de radio amatori și produse de casă.

Pasul 1: Conceptele cheie


Îl vom conecta la Arduino UNO / NANO și, pentru a programa, respectiv, îl vom conecta și prin Arduino.
  • OLED este o diodă care emite lumină organică, adică un dispozitiv semiconductor format din compuși organici, care începe să emită lumină când trece un curent electric prin ea.
  • ARDUINO este o platformă pentru instruirea și automatizarea construcțiilor și sisteme robotice.
  • ArduinoIDE este un mediu de dezvoltare. Acesta este un instrument gratuit de programare Arduino.
  • I2C - Circuite inter-integrate, linie de comunicare inter-microcircuite.
  • O schiță, este un cod, este un program - terminologia Arduino.

Urmați instrucțiunile pentru a înțelege cum să vă conectați și configurați corect un ecran OLED la Arduino și cum să afișați propriul mesaj pe ecranul său.
Facem totul în pași.

Pasul 2: Accesorii


Vom avea nevoie de doar patru lucruri:
  • 1. Ecranul OLED în sine este de 0,96 ”(poate fi cumpărat de pe Aliexpress sau Ebay, - lung, dar ieftin!).
  • 2. Arduino UNO / Nano (în același loc cu afișajul).
  • 3. Conectarea firelor (ibid.).
  • 4. Un computer sau laptop cu ArduinoIDE instalat.

În general, cumpărarea de piese pentru diverse proiecte pe Aliexpress și Ebay este un lucru foarte fain, în timp ce efectuați un proiect, piese pentru altul sunt deja pe drum. Principalul lucru este să nu uitați să efectuați o comandă.

Pasul 3: Conectați afișajul


Ecranul este controlat de cipul SSD1306, care acceptă cinci protocoale de comunicare și unul dintre ele este I2C. Datele referitoare la acest protocol sunt transmise în doar două fire și cu cât sunt mai puține fire, cu atât mai bine, deci ne potrivește bine. Dar! Există module cu protocol SPI și chiar comutare a protocolului, așa că aveți grijă când cumpărați acest modul.

Concluzii utilizate:
Ecran OLED - SCL / SCK (ceas) și SDA (date), putere "Plus" (VCC) și "Minus" putere (GND).

Concluzii utilizate:
Arduino UNO - SCL / SCK pe A5 și SSD pe A4, puterea „Plus” (+ 5V) și „Minus” (GND).
Conectați afișajul la Arduino:
  • Vcc - 5V
  • GND - GND
  • SDA - A4
  • SCL - A5

Pasul 4: Scaner I2C


Fiecare dispozitiv de pe magistrala I2C are o adresă hexadecimală, nu o puteți schimba, este cusută strâns, fiecare producător responsabil trebuie să îl indice undeva pe carcasă sau în instrucțiuni. Există module cu întrerupătoare și jumpers cu care puteți schimba adresa, dar ... dacă dispozitivele sunt ieftine, spre urâțenie, atunci producătorul ar putea să nu se deranjeze să facă față unui astfel de fleac, așa că va trebui să îl determinați singur.
În total, în autobuz pot fi utilizate până la 127 de adrese - 119 pentru dispozitive și 8 adrese de service. Comunicarea se realizează la aceste adrese. Există un stăpân, este un Maestru, dar există un sclav, el este și un Sclav - stăpânii întreabă, urmașii răspund, totul este simplu.
Deoarece afișajul nostru OLED folosește protocolul de comunicare I2C și este posibil ca adresa să nu fie indicată, vom încerca să aflăm această adresă.
Acest lucru se poate face prin descărcarea unei schițe scurte pe placa dvs. Arduino cu OLED conectat. DAR!
Faceți-vă timp pentru a încărca schița în Arduino imediat! Să descărcăm mai întâi „driverul”, adică. vom conecta bibliotecile și pentru aceasta vom merge direct la „Pasul 5”, apoi vom merge înapoi și vom continua.

Pasul 4: Continuare:


Descărcați CODE Finder_I2C_Hex_Address.ino, încărcați-l în Arduino.
Deschideți „Port Monitor”, setați viteza la 9600 și dacă totul este conectat corect, programul va afișa adresa dispozitivului, în cazul meu OLED cu adresa 0x3F.

Pasul 5: Descărcați și conectați bibliotecile


Pentru ca totul să funcționeze corect și nu a fost necesar să reinventați roata, trebuie să conectați câteva biblioteci la mediul ArduinoIDE și anume: ADAFRUIT GFX și ADAFRUIT SSD1306, sunt necesare pentru ca Arduino să poată comunica independent cu afișajul OLED.
Puteți conecta aceste biblioteci urmând acești pași.
  • 1. În ArduinoIDE, accesați meniul Sketch.
  • 2. Selectați „Include biblioteci” / Include biblioteci.
  • 3. Selectați „Gestionare biblioteci” / Biblioteci gestionate.
  • 4. Găsiți ADAFRUIT GFX și instalați-le.
  • 5. Găsiți ADAFRUIT SSD1306 și instalați-le.

Cu cele mai recente versiuni ale bibliotecilor, ecranul a funcționat strâmb pentru mine, poate, desigur, acest lucru se datorează curburii mâinilor, dar după ce am instalat chiar primele versiuni ale acestor biblioteci, totul a început să apară lin și frumos. Din anumite motive, liniile lui Pușkin apar în memoria lui:
... și experiență, fiul greșelilor dificile,
și geniu, paradoxuri prietene.

Un alt mod de a instala biblioteci este să găsiți, descărcați și instalați singuri aceste biblioteci.
Pentru un exemplu de Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Acestea sunt aceleași biblioteci Adafruit, dar bibliotecile similare sunt ușor căutate în motoarele de căutare, la cererea OLED I2C. Mulți entuziaști scriu bibliotecile „pentru ei înșiși”, apoi le pun pe web. Ce bibliotecă să folosești.
Pentru ca afișajul să afișeze scrisori rusești, sunt necesare și biblioteci speciale, dar acesta este un subiect separat pentru un articol separat.
După instalarea bibliotecilor, puteți reveni la pasul 4 și aflați în final adresa hexadecimală a afișajului.

Pasul 6: Testarea afișajului


Pentru a verifica dacă totul funcționează așa cum este de așteptat, executați exemplul de test de la ArduinoIDE.
Pentru a face acest lucru:
Accesați FILECHIUL> EXEMPLE> SSD 1306> Selectați 128x64 i2c
Dacă primiți o „eroare”, încercați să alegeți SSD 1306> 128x32 i2c.
Dacă eroare din nou, încercați să schimbați adresa I2C de pe linia 61 a codului demonstrativ și înlocuiți-o cu adresa afișatului dvs., pe care ați determinat-o la pasul 4.
Dacă eroarea apare din nou, puteți încerca să editați fișierul Adafruit_SSD1306.h, acesta este localizat în folderul cu bibliotecile Arduino.

Deschideți fișierul Adafruit_SSD1306.h într-un editor de text și găsiți liniile:
// # define SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Deconectați linia:
#define SSD1306_128_64.

Ar trebui să fie așa:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Dacă eroarea este din nou, este necesar să verificați conexiunile corecte.
După finalizarea descărcării, veți vedea pe ecran o animație de testare, ceea ce înseamnă că ați configurat cu succes afișajul OLED.

Când vă bucurați de această animație, puteți trece la pasul următor.

Pasul 7: Scrierea propriului dvs. mesaj


Pentru a scrie propriul mesaj, creează mai întâi o nouă schiță în mediul de programare ArduinoIDE.
În antet, conectăm 4 biblioteci:
#include #include #include #include 

Apoi scriem protocolul de resetare:
#define OLED_RESET 4 afișare Adafruit_SSD1306 (OLED_RESET);

În VOID SETUP, specificați adresa hexadecimală a afișajului nostru 0x3C, pe care l-am aflat în „Pasul nr. 4”.
Apoi, inițializați ecranul și ștergeți-l:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

În continuare, în VOID LOOP, scriem codul principal, adică mesajul nostru pe care dorim să îl afișăm pe ecran.
Pentru a face acest lucru, descriem dimensiunea textului, culoarea textului, poziția cursorului și, în final, afișăm un mesaj folosind comanda println:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Bine făcut!"); display.display ();

La final, nu uita să scrii display.displayastfel încât imaginea să apară pe ecran, altfel veți obține un gol.
Dacă ați făcut totul corect, pe afișaj va apărea un mesaj.

Iată CODUL Pornire_cu_Arduino_OLED.ino al programului nostru:
code.zip 946 b (descărcări: 1366)

Pin
Send
Share
Send