- Potrebna strojna oprema:
- Spoznavanje zaslonov OLED:
- Strojna oprema in povezave:
- Programiranje zaslona OLED SSD1306 za Arduino:
Večina od nas bi poznala matrični LCD zaslon 16 × 2 Dot, ki se v večini projektov uporablja za prikaz nekaterih informacij uporabniku. Toda ti LCD zasloni imajo veliko omejitev glede tega, kaj lahko storijo. V tej vadnici bomo spoznali OLED zaslone in kako jih uporabljati Arduino. Na trgu je na voljo veliko vrst OLED zaslonov in obstaja veliko načinov za njihovo delovanje. V tej vadnici bomo razpravljali o njenih klasifikacijah in o tem, katere najprimernejše so za vaš projekt.
Potrebna strojna oprema:
- 7-palčni modul zaslona 128 × 64 OLED (SSD1306)
- Arduino UNO / Nano
- Breadboard
- Povezovanje žic
- Računalnik / prenosni računalnik
Spoznavanje zaslonov OLED:
Izraz OLED pomeni " organska dioda, ki oddaja svetlobo" . Uporablja isto tehnologijo, kot jo uporablja večina naših televizorjev, vendar ima manj slikovnih pik v primerjavi z njimi. Zelo zabavno je, da se ti modro prikazani moduli povežejo z Arduinom, saj bodo naši projekti videti kul. Tukaj smo zajeli celoten članek o OLED zaslonih in njihovih vrstah.
Uporabljamo enobarvni 7-pinski SSD1306 0,96-palčni OLED zaslon. Razlog za izbiro tega zaslona je, da lahko deluje na treh različnih komunikacijskih protokolih, kot so način SPI 3 Wire, način SPI s štirimi žicami in način IIC. Ta vadnica bo zajela uporabo modula v 4-žičnem načinu SPI, saj je najhitrejši in privzeti način komunikacije.
Nožice in njihove funkcije so razložene v spodnji tabeli.
PIN številka |
Pripnite ime |
Druga imena |
Uporaba |
1. |
Gnd |
Tla |
Ozemljitveni zatič modula |
2. |
Vdd |
Vcc, 5V |
Napajalni zatič (3-5V sprejemljivo) |
3. |
SCK |
D0, SCL, CLK |
Deluje kot zatič ure. Uporablja se za I2C in SPI |
4. |
SDA |
D1, MOSI |
Podatkovni zatič modula. Uporablja se za IIC in SPI |
5. |
OVE |
RST, PONASTAVI |
Ponastavi modul (uporabno med SPI) |
6. |
DC |
A0 |
Podatkovni ukazni zatič. Uporablja se za protokol SPI |
7. |
CS |
Chip Select |
Uporabno, če se po protokolu SPI uporablja več modulov |
V tej vadnici bomo modul preprosto upravljali v načinu 4-Wire SPI, ostalo bomo pustili za drugo vajo.
Skupnost Arduino nam je že dala veliko knjižnic, s katerimi lahko to poenostavimo. Preizkusil sem nekaj knjižnic in ugotovil, da je bila knjižnica Adafruit_SSD1306 zelo enostavna za uporabo in ima nekaj grafičnih možnosti, zato bomo v tej vadnici uporabili enako. Če pa ima vaš projekt omejitev pomnilnika / hitrosti, poskusite uporabiti knjižnico U8g, saj deluje hitreje in zavzame manj programskega pomnilnika.
Strojna oprema in povezave:
Shema vezij za SSD1306 OLED povezovanje z Arduinom je zelo preprosta in je prikazana spodaj
Preprosto smo vzpostavili SPI komunikacijo med OLED modulom in Arduinom. Ker OLED deluje na 3V-5V in porabi zelo malo energije, ne potrebuje zunanjega napajanja. Za povezavo lahko preprosto uporabite žice ali uporabite ploščo, kot sem jo uporabil, tako da je enostavno eksperimentirati. Povezava je navedena tudi v spodnji zgodbi
S. Št |
Pripni ime na modulu OLED |
Pripni ime na Arduino |
1. |
Gnd, Ground |
Tla |
2. |
Vdd, Vcc, 5V |
5V |
3. |
SCK, D0, SCL, CLK |
10. |
4. |
SDA, D1, MOSI |
9. |
5. |
RES, RST, RESET |
13. |
6. |
Enosmerni tok, A0 |
11. |
7. |
CS, Chip Select |
12. |
Opomba: Z osvetlitvijo modula OLED ne boste mogli vizualizirati nobene osvetlitve ozadja samo z njegovim vklopom. Če želite na zaslonu OLED opaziti kakršne koli spremembe, ga morate pravilno programirati.
Programiranje zaslona OLED SSD1306 za Arduino:
Ko so povezave pripravljene, lahko začnete programirati Arduino. Kot smo že omenili, bomo za delo s tem OLED modulom uporabljali knjižnico Adafruit in knjižnico GFX. Sledite korakom za preizkus zaslona OLED.
1. korak: Prenesite knjižnico Adafruit in knjižnico GFX s strani Github s spodnjo povezavo
- Knjižnica Adafruit
- Grafična knjižnica GFX
2. korak: Naložili bi morali dve datoteki Zip. Zdaj jih dodajte v svoj Arduino tako, da sledite
Skica-> Vključi knjižnico -> Dodaj knjižnico Zip, kot je prikazano spodaj. Nato izberite knjižnico, ki smo jo pravkar prenesli. Naenkrat lahko izberete samo eno knjižnico, zato boste morali ta korak znova ponoviti.
3. korak: Zaženite primer programa tako, da izberete Datoteka-> Primeri-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino, kot je prikazano na spodnji sliki.
4. korak: Znotraj primera programa na vrhu vrstice 64 dodajte vrstico "#define SSD1306_LCDHEIGHT 64", kot je prikazano na spodnji sliki.
5. korak: Zdaj naložite program in zaslon OLED se bo sprožil s privzeto kodo Adafruit, kot je prikazano na spodnji sliki. Polni delovni video je podan na koncu.
Ta primer programa prikazuje vse možne grafike, ki bi jih lahko prikazali na zaslonu OLED. Ta koda bi vam morala zadoščati za ustvarjanje bitnih slik, risanje črt / krogov / pravokotnikov, igranje s slikovnimi pikami, prikaz črk in nizov z različnimi pisavami in velikostjo itd…
Če želite bolje razumeti knjižnico in njene funkcije, lahko preberete naprej. Vsak junks kode je razdeljen in razložen s pomočjo vrstic za komentarje. Popolna koda je navedena na koncu tega članka
Prikaz in brisanje zaslona:
Pisanje na OLED zaslon je tako kot pisanje na črno tablo, vrednosti moramo zapisati in nato očistiti, preden jih lahko prepišemo. Naslednji ukazi se uporabljajo za pisanje in čiščenje zaslona
display.display (); // Zapiši na prikaz display.clearDisplay (); // počistite zaslon
Prikaz spremenljivke znakov:
Za prikaz vsebine znotraj spremenljivke lahko uporabimo naslednjo kodo.
char i = 5; // spremenljivka, ki bo prikazana display.setTextSize (1); // Izberite velikost besedila display.setTextColor (BELA); // samo za enobarvni prikaz je možen samo prikaz.setCursor (0,0); // 0,0 je zgornji levi kot zaslona zaslona OLED.write (i); // Napišite spremenljivko, ki bo prikazana
Risanje črte, kroga, nagiba, trikotnika:
Če želite na zaslon dodati nekaj simbolov, lahko z naslednjo kodo narišete kar koli od naslednjega
display.drawLine (display.width () - 1, 0, i, display.height () - 1, BELA); // void drawLine (x0, y0, x1, y1, barva); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, BELA); // void drawRect (x0, y0, w, h, barva); display.drawTriangle (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, BELA); // void drawTriangle (x0, y0, x1, y1, x2, y2, barva); display.drawCircle (display.width () / 2, display.height () / 2, i, BELA); // void drawCircle (x0, y0, r, barva);
Risanje niza na zaslon:
Naslednji del kode se lahko uporabi za prikaz katerega koli sporočila na zaslonu na določenem mestu in velikosti
display.setTextSize (2); // nastavimo velikost besedila display.setTextColor (BELA); // barvna nastavitev display.setCursor (10,0); // Niz se začne pri 10,0 (x, y) display.clearDisplay (); // Izbrišite kateri koli prejšnji prikaz na zaslonu.println ("Circuit Digest"); // tukaj natisnite niz »Circuit Digest« display.display (); // pošiljanje besedila na zaslon
Prikaz bitne slike:
Ena nezaupljiva stvar, ki jo je mogoče storiti z modulom OLED, je ta, da se lahko uporablja za prikaz bitnih slik. Naslednja koda se uporablja za prikaz bitne slike
static const unsigned char PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B11111111 B11 B11111111, B11111111, B111100, B11 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitna slika, w, h, BELA); // void drawBitmap (x, y, * bitna slika, w, h, barva);
Kot lahko vidite, morajo biti bitni podatki za prikaz slike shranjeni v programskem pomnilniku v obliki direktive PROMGMEM. Preprosto povedano, OLED zaslonu moramo naročiti, kaj naj počne z vsako slikovno piko tako, da ji posreduje zaporedje ali vrednosti iz polja, kot je prikazano zgoraj. Ta matrika bo vsebovala bitne podatke slike.
Morda se sliši zapleteno, vendar je s pomočjo spletnega orodja zelo enostavno pretvoriti sliko v bitne vrednosti zemljevida in jih naložiti v zgornjo matriko.
Preprosto naložite sliko in prilagodite nastavitve, da dobite želeni predogled slike. Nato kliknite »Ustvari kodo«, kopirajte kodo in jo prilepite v svojo matriko. Naložite program in končali ste. Poskusil sem prikazati logotip batmana in tako se je izkazalo.
S temi knjižnicami lahko storite še veliko stvari. Za popolne možnosti obiščite stran Adafruit GFX grafični primitivi.
Upam, da ste to zagnali in ste pripravljeni na uporabo OLED zaslona v nekaterih svojih projektih. Če ste imeli kakršne koli težave, jih delite v oddelku za komentarje in jih bom po svojih najboljših močeh popravil.