- Szükséges hardver:
- Ismerkedés az OLED kijelzőkkel:
- Hardver és csatlakozások:
- Az SSD1306 OLED kijelző programozása az Arduino számára:
Legtöbben ismerik a 16 × 2 Dot mátrixú LCD-kijelzőt, amelyet a legtöbb projektben használnak bizonyos információk megjelenítésére a felhasználó számára. De ezeknek az LCD-kijelzőknek sok korlátja van abban, amit tehetnek. Ebben az oktatóanyagban megismerjük az OLED kijelzőket és az Arduino használatát. Sokféle OLED-kijelző kapható a piacon, és sokféleképpen lehet őket működésbe hozni. Ebben az oktatóanyagban megvitatjuk az osztályozását és azt is, hogy melyik lesz a legalkalmasabb a projektedhez.
Szükséges hardver:
- 7 tűs 128 × 64 OLED kijelző modul (SSD1306)
- Arduino UNO / Nano
- Kenyérlemez
- Vezetékek csatlakoztatása
- Számítógép / laptop
Ismerkedés az OLED kijelzőkkel:
Az OLED kifejezés „ szerves fénykibocsátó dióda” rövidítése, ugyanazt a technológiát használja, amelyet a legtöbb televíziónkban használnak, de kevesebb pixel van hozzájuk képest. Igazán szórakoztató, hogy ezeket a hűvös megjelenésű modulokat összekapcsolják az Arduino-val, mivel ez remek megjelenést kölcsönöz a projektjeinknek. Itt egy teljes cikket ismertettünk az OLED kijelzőiről és típusairól.
Most egy monokróm 7-pólusú SSD1306 0,96” -os OLED kijelző. A kijelző kiválasztásának oka az, hogy három különböző kommunikációs protokollon működhet, mint például az SPI 3 vezetékes mód, az SPI négy vezetékes mód és az IIC mód. Ez az oktatóanyag bemutatja, hogyan kell a modult SPI 4 vezetékes módban használni, mivel ez a leggyorsabb és az alapértelmezett kommunikációs mód.
A csapokat és funkcióit az alábbi táblázat ismerteti.
Pinkód |
PIN neve |
Más nevek |
Használat |
1 |
Gnd |
Talaj |
A modul földelt csapja |
2 |
Vdd |
Vcc, 5V |
Tápcsatlakozó (3-5V tolerálható) |
3 |
SCK |
D0, SCL, CLK |
Óraszegként működik. I2C és SPI esetén egyaránt használható |
4 |
SDA |
D1, MOSI |
A modul adatlapja. IIC-hez és SPI-hez egyaránt használják |
5. |
RES |
RST, RESET |
Visszaállítja a modult (SPI során hasznos) |
6. |
DC |
A0 |
Data Command pin. SPI protokollhoz használják |
7 |
CS |
Chip Select |
Hasznos, ha több modult használ SPI protokoll alatt |
Ebben az oktatóanyagban egyszerűen működtetjük a modult 4-vezetékes SPI módban, a többit más oktatóanyagra hagyjuk.
Az Arduino közösség rengeteg könyvtárat adott már nekünk, amelyek közvetlenül felhasználhatók ennek egyszerűbbé tételéhez. Kipróbáltam néhány könyvtárat, és megállapítottam, hogy az Adafruit_SSD1306 könyvtár nagyon könnyen használható és egy maroknyi grafikus lehetőséggel rendelkezik, ezért ugyanezt fogjuk használni ebben az oktatóanyagban. De ha a projekt memória- / sebességkorlátozással rendelkezik, próbálkozzon az U8g könyvtár használatával, mivel az gyorsabban működik és kevesebb programmemóriát foglal el.
Hardver és csatlakozások:
Az Arduino-val való interfész SSD1306 OLED áramköri diagramja nagyon egyszerű, és az alábbiakban látható
Egyszerűen létrehoztunk egy SPI kommunikációt az OLED modul és az Arduino között. Mivel az OLED 3V-5V-on működik, és nagyon kevés energiát fogyaszt, nincs szüksége külső áramforrásra. Egyszerűen vezetékeket használhat a kapcsolat létrehozásához, vagy használhat egy kenyérlapot, amint azt én használtam, így könnyű kísérletezni. A kapcsolatot az alábbi mese is felsorolja
S.No |
Pin Name az OLED modulon |
PIN-név az Arduino-n |
1 |
Gnd, Ground |
Talaj |
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, Chip Select |
12. |
Megjegyzés: Csak az áramellátás révén nem lesz képes megjeleníteni az OLED modul háttérvilágítását / fényét. Helyesen kell beprogramoznia, hogy észrevegye az esetleges változásokat az OLED kijelzőjén.
Az SSD1306 OLED kijelző programozása az Arduino számára:
Miután a kapcsolatok elkészültek, elkezdheti az Arduino programozását. Mint korábban említettük, az Adafruit könyvtárat és a GFX könyvtárat fogjuk használni az OLED modul használatához. Kövesse a lépéseket az OLED kijelző teszteléséhez.
1. lépés: Töltse le az Adafruit könyvtárat és a GFX könyvtárat a Githubról az alábbi link használatával
- Adafruit Könyvtár
- GFX Graphics Library
2. lépés: Két Zip fájlt kell letöltenie. Most kövesse őket az Arduino készülékéhez
Vázlat-> Könyvtár hozzáadása -> Zip könyvtár hozzáadása az alábbiak szerint. Ezután válassza ki az imént letöltött könyvtárat. Egyszerre csak egy könyvtárat választhat ki, ezért ezt a lépést meg kell ismételnie.
3. lépés: Indítsa el a példa programot a Fájl-> Példák-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino kiválasztásával , az alábbi képen látható módon.
4. lépés: A példa programon belül, a 64. sor tetején adja hozzá az „#define SSD1306_LCDHEIGHT 64” sort az alábbi képen látható módon.
5. lépés: Most töltse fel a programot, és látnia kell az OLED kijelzőt, amely az alapértelmezett Adafruit példakóddal indul, amint az az alábbi képen látható. A teljes működő videó a végén található.
Ez a példa program megmutatja az összes lehetséges grafikát, amely megjeleníthető az OLED képernyőn. Ennek a kódnak elegendőnek kell lennie bitképek készítéséhez, vonalak / körök / téglalapok rajzolásához, pixelekkel történő játékhoz, különböző betűtípusú és méretű karakterek és karakterláncok megjelenítéséhez stb.
Ha jobban meg akarja érteni a könyvtárat és annak funkcióit, olvashat tovább. A kód minden egyes junkja fel van osztva, és megjegyzés sorok segítségével magyarázható. A teljes kód a cikk végén található
A képernyő megjelenítése és törlése:
Az OLED képernyőn történő írás ugyanolyan, mint egy táblára való írás, meg kell írnunk az értékeket, majd meg kell tisztítanunk, mielőtt felülírható lenne. A következő parancsokat használjuk a kijelző megírásához és törléséhez
display.display (); // Írás a display.clearDisplay () megjelenítéséhez; // a kijelző törlése
Karakterváltozó megjelenítése:
A tartalom megjelenítéséhez egy változóban a következő kód használható.
char i = 5; // a megjelenítendő változó display.setTextSize (1); // Válassza ki a szöveges kijelző méretét.setTextColor (WHITE); // monokróm megjelenítés esetén csak pünkösd lehetséges: display.setCursor (0,0); // 0,0 az OLED képernyő bal felső sarka. Írja (i); // Írja meg a megjeleníteni kívánt változót
Vonal, kör, téglalap, háromszög rajzolása:
Ha néhány szimbólumot szeretne hozzáadni a kijelzőhöz, akkor az alábbi kód segítségével rajzolhatja az alábbiak bármelyikét
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, szín); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, szín); háromszög (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, WHITE); // void drawTriangle (x0, y0, x1, y1, x2, y2, color); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // void drawCircle (x0, y0, r, szín);
Karakterlánc rajzolása a képernyőre:
A következő kódrészlet használható: bármely üzenet megjelenítéséhez a képernyőn egy adott helyen és méretben
display.setTextSize (2); // állítsa be a szöveges kijelző méretét.setTextColor (WHITE); // színbeállítás display.setCursor (10,0); // A karakterlánc kezdete: 10,0 (x, y) display.clearDisplay (); // A képernyő bármelyik korábbi megjelenítésének törlése.println ("Circuit Digest"); // Itt nyomtassa ki a karakterláncot “Circuit Digest” display.display (); // küldje el a szöveget a képernyőre
Bittérképes kép megjelenítése:
Az egyik nem megbízható dolog, amit az OLED modullal el lehet végezni, az, hogy bitképek megjelenítésére használható. A következő kódot használjuk egy bittérképes kép megjelenítésére
static const unsigned char B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitkép, w, h, FEHÉR); // void drawBitmap (x, y, * bittérkép, w, h, szín);
Mint látható, egy kép megjelenítéséhez a bitkép adatokat a PROMGMEM irányelv formájában a program memóriájában kell tárolni. Egyszerűen fogalmazva, meg kell utasítanunk az OLED kijelzőt, hogy mit tegyünk az egyes pixelekkel, úgy, hogy egy tömbből adunk neki egy szekvenciát vagy értékeket a fentiek szerint. Ez a tömb a kép bitkép adatait tartalmazza.
Lehet, hogy bonyolultnak hangzik, de egy webes eszköz segítségével nagyon könnyen konvertálhat egy képet bit térképértékekké és betöltheti a fenti tömbbe.
Egyszerűen töltse be a képet, és állítsa be a beállításokat a kívánt kép előnézetének megszerzéséhez. Ezután kattintson a „Kód előállítása” elemre, másolja a kódot, és illessze be a tömbbe. Töltse fel a programot, és készen áll. Megpróbáltam egy batman logót megjeleníteni, és ez így alakult.
Ezekkel a könyvtárakkal még mindig sok mindent megtehet. A teljes lehetőségek megismeréséhez keresse fel az Adafruit GFX grafikus primitívek oldalt.
Remélem, hogy fut, és készen áll egy OLED-kijelző megvalósítására néhány projektjében. Ha bármilyen probléma merülne fel, ossza meg őket a megjegyzés részben, és megpróbálok minden tőlük telhetőt kijavítani.