- Požadovaný hardvér:
- Zoznámenie sa s OLED displejmi:
- Hardvér a pripojenia:
- Programovanie OLED displeja SSD1306 pre Arduino:
Väčšina z nás by bola oboznámená s 16 × 2 bodovým maticovým LCD displejom, ktorý sa používa vo väčšine projektov na zobrazenie niektorých informácií používateľovi. Ale tieto LCD displeje majú veľa obmedzení v tom, čo môžu robiť. V tomto výučbe sa dozvieme o OLED displejoch a o tom, ako ich používať Arduino. Na trhu je k dispozícii veľa typov OLED displejov a existuje veľa spôsobov, ako ich uviesť do prevádzky. V tomto výučbe sa dozvieme o jeho klasifikáciách a tiež o tom, ktoré budú pre váš projekt najvhodnejšie.
Požadovaný hardvér:
- 7pinový 128 × 64 OLED displejový modul (SSD1306)
- Arduino UNO / Nano
- Nepál
- Pripojenie drôtov
- Počítač / notebook
Zoznámenie sa s OLED displejmi:
Pojem OLED znamená „ organická dióda vyžarujúca svetlo“. Používa rovnakú technológiu, ktorá sa používa vo väčšine našich televízorov, ale má v porovnaní s nimi menej pixelov. Je skutočná zábava mať tieto skvelo vyzerajúce zobrazovacie moduly prepojené s Arduino, pretože vďaka nim budú naše projekty vyzerať skvele. Celý článok o OLED displejoch a ich typoch sme prebrali tu.
Používame Monochrome 7-pin SSD1306 0,96 ”OLED displej. Dôvodom pre výber tohto displeja je, že môže pracovať na troch rôznych komunikačných protokoloch, ako je režim SPI 3 Wire, režim SPI so štyrmi drôtmi a režim IIC. V tomto výučbe sa dozviete, ako používať modul v štvorvodičovom režime SPI, pretože ide o najrýchlejší komunikačný režim a predvolený režim.
Kolíky a ich funkcie sú vysvetlené v nasledujúcej tabuľke.
PIN kód |
Názov špendlíka |
Ostatné mená |
Využitie |
1 |
Gnd |
Uzemnenie |
Uzemňovací kolík modulu |
2 |
Vdd |
Vcc, 5V |
Napájací kolík (tolerovateľný 3 - 5 V) |
3 |
SCK |
D0, SCL, CLK |
Funguje ako špendlík hodín. Používa sa pre I2C aj SPI |
4 |
SDA |
D1, MOSI |
Dátový kolík modulu. Používa sa pre IIC aj SPI |
5 |
OZE |
RST, RESET |
Resetuje modul (užitočné počas SPI) |
6 |
DC |
A0 |
PIN príkazového riadku. Používa sa pre protokol SPI |
7 |
CS |
Vyberte čip |
Užitočné, ak sa v protokole SPI používa viac ako jeden modul |
V tomto výučbe budeme modul jednoducho prevádzkovať v 4-drôtovom režime SPI, zvyšok si necháme na ďalší výučbový program.
Komunita Arduino nám už poskytla veľa knižníc, ktoré je možné priamo použiť na ďalšie zjednodušenie. Vyskúšal som niekoľko knižníc a zistil som, že knižnica Adafruit_SSD1306 sa používa veľmi ľahko a má niekoľko grafických možností, preto ich v tomto návode použijeme rovnako. Ak má váš projekt obmedzenie pamäte a rýchlosti, skúste použiť knižnicu U8g, ktorá pracuje rýchlejšie a zaberá menej programovej pamäte.
Hardvér a pripojenia:
Schéma zapojenia pre SSD1306 OLED prepojenie s Arduino je naozaj jednoduchá a je uvedený nižšie
Jednoducho sme nadviazali komunikáciu SPI medzi modulom OLED a Arduinom. Pretože OLED beží na 3V-5V a spotrebúva veľmi málo energie, nepotrebuje externý zdroj napájania. Môžete jednoducho použiť vodiče na vytvorenie spojenia alebo použiť nepájivú dosku, ako som použil ja, aby bolo možné ľahko experimentovať. Pripojenie je tiež uvedené v príbehu nižšie
S.No |
Pripnúť názov na modul OLED |
Pripnúť meno na Arduino |
1 |
GND, zem |
Uzemnenie |
2 |
Vdd, Vcc, 5V |
5V |
3 |
SCK, D0, SCL, CLK |
10 |
4 |
SDA, D1, MOSI |
9 |
5 |
RES, RST, RESET |
13 |
6 |
DC, A0 |
11 |
7 |
CS, výber čipu |
12 |
Poznámka: Na OLED module nebudete môcť vizualizovať žiadne podsvietenie / zažiarenie iba jeho napájaním. Musíte si ho správne naprogramovať, aby ste si všimli akékoľvek zmeny na OLED displeji.
Programovanie OLED displeja SSD1306 pre Arduino:
Keď sú pripojenia pripravené, môžete začať programovať Arduino. Ako už bolo povedané, na prácu s týmto modulom OLED budeme používať knižnicu Adafruit a GFX. Podľa pokynov na testovanie spustite svoj OLED displej.
Krok 1: Stiahnite si knižnicu Adafruit a knižnicu GFX z Githubu pomocou odkazu nižšie
- Knižnica Adafruit
- Grafická knižnica GFX
Krok 2: Mali by ste si stiahnuť dva súbory ZIP. Teraz ich pridajte do svojho Arduina podľa nasledujúceho postupu
Skica-> Zahrnúť knižnicu -> Pridať knižnicu Zip, ako je uvedené nižšie. Potom vyberte knižnicu, ktorú sme práve stiahli. Naraz môžete zvoliť iba jednu knižnicu, a preto musíte tento krok opakovať znova.
Krok 3: Spustite ukážkový program výberom Súbor-> Príklady-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino, ako je to znázornené na obrázku nižšie.
Krok 4: Do ukážkového programu v hornej časti riadku 64 pridajte riadok „#define SSD1306_LCDHEIGHT 64“, ako je znázornené na obrázku nižšie.
Krok 5: Teraz nahrajte program a mali by ste vidieť, ako sa OLED displej spúšťa s predvoleným vzorovým kódom Adafruit, ako je znázornené na nasledujúcom obrázku. Plný pracovný Video je uvedený na konci.
Tento ukážkový program zobrazuje všetky možné grafiky, ktoré je možné zobraziť na obrazovke OLED. Tento kód by mal stačiť na to, aby ste mohli vytvárať bitmapy, kresliť čiary / kruhy / obdĺžniky, hrať sa s pixelmi, zobrazovať znaky a reťazce s rôznymi typmi písma a veľkosťou atď…
Ak chcete lepšie porozumieť knižnici a jej funkciám, môžete si prečítať ďalej. Každá časť kódu je rozdelená a vysvetlená pomocou riadkov komentára. Celý kód je uvedený na konci tohto článku
Zobrazenie a vyčistenie obrazovky:
Písanie na OLED obrazovku je rovnako ako písanie na čiernu tabuľu, musíme napísať hodnoty a potom ich vyčistiť, aby sa to dalo prepísať. Nasledujúce príkazy sa používajú na zápis a vyčistenie displeja
display.display (); // Zápis na zobrazenie display.clearDisplay (); // vymaže displej
Zobrazenie premennej znaku:
Na zobrazenie obsahu vo vnútri premennej je možné použiť nasledujúci kód.
char i = 5; // premenná, ktorá sa má zobraziť display.setTextSize (1); // Vyberte veľkosť textu display.setTextColor (WHITE); // iba pre čiernobiele zobrazenie je možné display.setCursor (0,0); // 0,0 je ľavý horný roh displeja OLED obrazovky.write (i); // Napíšte premennú, ktorá sa má zobraziť
Kreslenie čiary, kruhu, obdĺžnika, trojuholníka:
Ak chcete na displej pridať nejaké symboly, môžete pomocou nasledujúceho kódu nakresliť niektorý z nasledujúcich textov
display.drawLine (display.width () - 1, 0, i, display.height () - 1, BIELY); // void drawLine (x0, y0, x1, y1, color); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, BIELY); // void drawRect (x0, y0, w, h, color); 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, BIELY); // void drawTriangle (x0, y0, x1, y1, x2, y2, color); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // void drawCircle (x0, y0, r, color);
Kreslenie reťazca na obrazovku:
Môže sa použiť nasledujúci kúsok kódu o o zobrazenie akejkoľvek správy na obrazovke na konkrétnom mieste a veľkosti
display.setTextSize (2); // nastavi velkost textu display.setTextColor (WHITE); // nastavenie farieb display.setCursor (10,0); // Reťazec bude začínať na 10,0 (x, y) display.clearDisplay (); // Vymazať všetky predchádzajúce zobrazenia na obrazovke display.println ("Circuit Digest"); // Vytlačte reťazec tu „Circuit Digest“ display.display (); // odošle text na obrazovku
Zobrazenie bitmapového obrázka:
Jednou nedôverčivou vecou, ktorú je možné vykonať s modulom OLED, je to, že sa dá použiť na zobrazenie bitmáp. Nasledujúci kód sa používa na zobrazenie bitmapového obrázka
statický konštantný nepodpísaný znak PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B0111100, 11, 11, 11, 11, 11, 11, 11, 11, 11 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitmapa, š, v, BIELA); // void drawBitmap (x, y, * bitmap, w, h, color);
Ako vidíte, na zobrazenie obrázka musia byť bitmapové údaje uložené v programovej pamäti vo forme smernice PROMGMEM. Jednoducho povedané, musíme dať pokyn OLED displeju, čo má robiť s každým pixelom, a to odovzdaním sekvencie alebo hodnôt z poľa, ako je uvedené vyššie. Toto pole bude obsahovať bitmapové údaje obrázka.
Môže to znieť komplikovane, ale pomocou webového nástroja je veľmi ľahké previesť obrázok na hodnoty bitovej mapy a načítať ich do vyššie uvedeného poľa.
Jednoducho načítajte obrázok a upravte nastavenia, aby ste získali preferovaný náhľad obrázka. Potom kliknite na „Generovať kód“, skopírujte kód a vložte ho do svojho poľa. Nahrajte program a máte hotovo. Skúšal som zobraziť logo batmana a takto to dopadlo.
S týmito knižnicami môžete urobiť ešte veľa vecí. Ak chcete poznať všetky možnosti, navštívte stránku Primitive pre grafiku Adafruit GFX.
Dúfam, že ste to rozbehli a ste pripravení implementovať OLED displej do niektorých svojich projektov. Ak ste mali akýkoľvek problém, zdieľajte ich v sekcii komentárov a pokúsim sa ich čo najlepšie napraviť.