- Potreban hardver:
- Upoznavanje s OLED zaslonima:
- Hardver i veze:
- Programiranje SSD1306 OLED zaslona za Arduino:
Većini nas bio bi poznat matrični LCD zaslon 16 × 2 točke koji se koristi u većini projekata za prikazivanje nekih podataka korisniku. Ali ovi LCD zasloni imaju puno ograničenja u onome što mogu učiniti. U ovom uputstvu naučit ćemo o OLED zaslonima i kako ih koristiti Arduino. Na tržištu je dostupno puno vrsta OLED zaslona, a postoji puno načina za njihovo pokretanje. U ovom uputstvu razgovarat ćemo o njegovim klasifikacijama i o tome koje će najbolje odgovarati vašem projektu.
Potreban hardver:
- 7-pinski 128 × 64 OLED modul zaslona (SSD1306)
- Arduino UNO / Nano
- Breadboard
- Spajanje žica
- Računalo / Laptop
Upoznavanje s OLED zaslonima:
Izraz OLED znači " Organska dioda koja emitira svjetlost" i koristi istu tehnologiju koja se koristi u većini naših televizora, ali ima manje piksela u usporedbi s njima. Zaista je zabavno imati ove module zaslona u izgledu kako bi ih se povezalo s Arduinom, jer će naši projekti izgledati cool. Ovdje smo pokrili cijeli članak o OLED zaslonima i njihovim vrstama.


Koristimo monokromatski 7-pinski SSD1306 0.96 ”OLED zaslon. Razlog odabira ovog zaslona je taj što može raditi na tri različita komunikacijska protokola kao što su SPI 3 Wire način, SPI četverožični način i IIC način. Ovaj vodič obuhvatit će upotrebu modula u SPI četverožičnom načinu, jer je to najbrži i zadani način komunikacije.
Pribadače i njegove funkcije objašnjene su u donjoj tablici.
|
Pin broj |
Naziv pribadače |
Druga imena |
Upotreba |
|
1 |
Gnd |
Prizemlje |
Osovina uzemljenja modula |
|
2 |
Vdd |
Vcc, 5 V |
Priključak za napajanje (3-5V podnošljiv) |
|
3 |
SCK |
D0, SCL, CLK |
Djeluje kao zatik sata. Koristi se i za I2C i za SPI |
|
4 |
SDA |
D1, MOSI |
Podaci za pin modula. Koristi se i za IIC i za SPI |
|
5 |
OIE |
RST, VRAĆAJ |
Resetira modul (korisno tijekom SPI) |
|
6 |
DC |
A0 |
Podatkovna naredba. Koristi se za SPI protokol |
|
7 |
CS |
Odabir čipa |
Korisno kada se pod SPI protokolom koristi više modula |
U ovom uputstvu jednostavno ćemo upravljati modulom u 4-Wire SPI načinu, a ostatak ćemo ostaviti za neki drugi vodič.
Zajednica Arduino već nam je dala puno knjižnica koje se mogu izravno koristiti da bi se ovo učinilo puno jednostavnijim. Isprobao sam nekoliko knjižnica i otkrio da je knjižnica Adafruit_SSD1306 vrlo jednostavna za upotrebu i da ima pregršt grafičkih opcija, pa ćemo istu koristiti u ovom vodiču. Ali ako vaš projekt ima ograničenje memorije / brzine, pokušajte upotrijebiti knjižnicu U8g jer radi brže i zauzima manje programske memorije.
Hardver i veze:
Dijagram strujnog kruga za SSD1306 OLED sučelja s Arduino je stvarno jednostavan i prikazan je ispod

Jednostavno smo uspostavili SPI komunikaciju između OLED modula i Arduina. Budući da OLED radi na 3V-5V i troši vrlo malo energije, nije mu potrebno vanjsko napajanje. Jednostavno možete koristiti žice za povezivanje ili upotrijebiti ploču kao što sam ja koristio, tako da je lako eksperimentirati. Veza je također navedena u donjoj priči
|
S.Br |
Prikvači naziv na OLED modulu |
Prikvači ime na Arduinu |
|
1 |
Gnd, Tlo |
Prizemlje |
|
2 |
Vdd, Vcc, 5 V |
5V |
|
3 |
SCK, D0, SCL, CLK |
10 |
|
4 |
SDA, D1, MOSI |
9 |
|
5 |
RES, RST, RESET |
13 |
|
6 |
Istosmjerna struja, A0 |
11 |
|
7 |
CS, odabir čipa |
12 |
Napomena: Nećete moći vizualizirati pozadinsko osvjetljenje / sjaj na OLED modulu samo njegovim uključivanjem. Morate ga pravilno programirati da biste primijetili bilo kakve promjene na OLED zaslonu.
Programiranje SSD1306 OLED zaslona za Arduino:
Nakon što su veze spremne, možete započeti s programiranjem Arduina. Kao što je ranije rečeno, za rad s ovim OLED modulom koristit ćemo knjižnicu Adafruit i GFX. Slijedite korake za probno pokretanje OLED zaslona.
Korak 1: Preuzmite knjižnicu Adafruit i GFX s Github-a koristeći donju poveznicu
- Biblioteka Adafruit
- GFX grafička biblioteka
Korak 2: Trebali biste preuzeti dvije Zip datoteke. Sada ih dodajte u svoj Arduino slijedeći
Skica-> Uključi biblioteku -> Dodaj Zip biblioteku kao što je prikazano dolje. Zatim odaberite knjižnicu koju smo upravo preuzeli. Istodobno možete odabrati samo jednu biblioteku, stoga ovaj korak morate ponoviti ponovo.

Korak 3: Pokrenite primjer programa odabirom Datoteka-> Primjeri-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino kao što je prikazano na donjoj slici.

Korak 4: Unutar primjera programa na vrh retka 64 dodajte redak "#define SSD1306_LCDHEIGHT 64" kao što je prikazano na donjoj slici.

Korak 5: Sada prenesite program i trebali biste vidjeti kako se OLED zaslon puca sa zadanim primjerom koda Adafruit, kao što je prikazano na donjoj slici. Puni radni Video se daje na kraju.
Ovaj primjer programa prikazuje vam svu moguću grafiku koja bi se mogla prikazati na OLED zaslonu. Ovaj kôd trebao bi vam biti dovoljan za stvaranje bitmapa, crtanje crta / krugova / pravokutnika, igranje pikselima, prikaz char-a i niza s različitim fontovima i veličinom itd…
Ako želite bolje razumjeti Knjižnicu i njezine funkcije, možete čitati dalje. Svako smeće koda podijeljeno je i objašnjeno uz pomoć redaka komentara. Potpuni kod dan je na kraju ovog članka
Prikaz i brisanje zaslona:
Pisanje na OLED zaslonu je poput pisanja na crnoj ploči, moramo zapisati vrijednosti, a zatim ga očistiti prije nego što se prepiše. Sljedeće naredbe koriste se za pisanje i brisanje zaslona
display.display (); // Zapisivanje za prikaz display.clearDisplay (); // očistite zaslon
Prikazivanje znakovne varijable:
Za prikaz sadržaja unutar varijable može se koristiti sljedeći kod.
char i = 5; // varijabla koja će se prikazati display.setTextSize (1); // Odaberite veličinu prikaza teksta.setTextColor (BIJELO); // za monokromni prikaz moguće je samo nešto što je moguće display.setCursor (0,0); // 0,0 je gornji lijevi kut zaslona OLED zaslona.write (i); // Napišite varijablu koja će se prikazati
Crtanje crte, kruga, pravokutnika, trokuta:
Ako na zaslon želite dodati neke simbole, pomoću sljedećeg koda možete nacrtati bilo što od sljedećeg
display.drawLine (display.width () - 1, 0, i, display.height () - 1, BIJELO); // poništavanje drawLine (x0, y0, x1, y1, boja); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, BIJELO); // poništavanje drawRect (x0, y0, w, h, boja); 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, BIJELO); // void drawTriangle (x0, y0, x1, y1, x2, y2, boja); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // void drawCircle (x0, y0, r, boja);
Crtanje niza na zaslon:
Sljedeći dio koda može se koristiti za prikaz bilo koje poruke na zaslonu na određenom mjestu i veličini
display.setTextSize (2); // postavljanje veličine prikaza teksta.setTextColor (BIJELO); // prikaz postavki boje.setCursor (10,0); // Niz započinje na 10,0 (x, y) display.clearDisplay (); // Gumica bilo koji prethodni prikaz na zaslonu zaslona.println ("Circuit Digest"); // ovdje ispišite niz "Circuit Digest" display.display (); // pošalji tekst na zaslon
Prikazivanje bitmap slike:
Jedna nepovjerljiva stvar koja se može učiniti s OLED modulom je ta da se on može koristiti za prikaz bitmapa. Sljedeći se kôd koristi za prikaz bitmap slike
statički const nepotpisani znak PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B11111111 B11 B11111111, B111100, B111100 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitmapa, w, h, WHITE); // poništavanje drawBitmap (x, y, * bitmapa, w, h, boja);
Kao što vidite, da bi se slika prikazala, bitmap podaci moraju se pohraniti u programsku memoriju u obliku PROMGMEM direktive. Jednostavno rečeno, moramo uputiti OLED zaslon što treba raditi sa svakim pikselom dostavljajući mu niz ili vrijednosti iz niza kao što je gore prikazano. Ovaj će niz sadržavati bitmap podatke slike.
Možda zvuči složeno, ali uz pomoć web alata vrlo je jednostavno pretvoriti sliku u bitne vrijednosti karte i učitati ih u gornji niz.
Jednostavno učitajte sliku i prilagodite postavke kako biste dobili željeni pregled slike. Zatim kliknite "Generiraj kod", kopirajte ga i zalijepite u svoj niz. Učitajte program i gotovi ste. Pokušao sam prikazati batmanov logo i ovako je ispalo.


Još uvijek možete puno toga učiniti s tim knjižnicama. Da biste saznali sve mogućnosti, posjetite stranicu Adafruit GFX grafički primitivi.
Nadam se da ste to pokrenuli i da ste spremni implementirati OLED zaslon u neke od svojih projekata. Ako ste imali problema podijelite ih u odjeljku za komentare, a ja ću se potruditi da ih ispravim.
