- Hårdvara krävs:
- Lär känna OLED-skärmar:
- Hårdvara och anslutningar:
- Programmering av SSD1306 OLED-skärm för Arduino:
De flesta av oss känner till 16 × 2 Dot matrix LCD-skärm som används i de flesta projekten för att visa lite information för användaren. Men dessa LCD-skärmar har mycket begränsning vad de kan göra. I den här handledningen ska vi lära oss mer om OLED-skärmar och hur man använder dem Arduino. Det finns många typer av OLED-skärmar tillgängliga på marknaden och det finns många sätt att få dem att fungera. I denna handledning diskuterar vi klassificeringarna och vilka som passar bäst för ditt projekt.
Hårdvara krävs:
- 7-polig 128 × 64 OLED-skärmmodul (SSD1306)
- Arduino UNO / Nano
- Bakbord
- Anslutande ledningar
- Dator / bärbar dator
Lär känna OLED-skärmar:
Uttrycket OLED står för " Organic Light emitting diode", det använder samma teknik som används i de flesta av våra tv-apparater men har färre pixlar jämfört med dem. Det är jättekul att ha dessa snygga skärmmoduler som ska anslutas till Arduino eftersom det gör att våra projekt ser coola ut. Vi har täckt en fullständig artikel om OLED-skärmar och dess typer här.
Vi använder en monokrom 7-stifts SSD1306 0,96-tums OLED-skärm. Anledningen till att du väljer den här skärmen är att den kan fungera på tre olika kommunikationsprotokoll, såsom SPI 3 Wire-läge, SPI-fyrtrådsläge och IIC-läge. Denna handledning kommer att beskriva hur man använder modulen i SPI 4-trådsläge, eftersom det är det snabbaste kommunikationsläget och standardläget.
Stiften och dess funktioner förklaras i tabellen nedan.
Pinkod |
Pin-namn |
Andra namn |
Användande |
1 |
Gnd |
Jord |
Jordens stift på modulen |
2 |
Vdd |
Vcc, 5V |
Strömstift (3-5 V acceptabelt) |
3 |
SCK |
D0, SCL, CLK |
Fungerar som klockstift. Används för både I2C och SPI |
4 |
SDA |
D1, MOSI |
Modulens datapinne. Används för både IIC och SPI |
5 |
RES |
RST, RESET |
Återställer modulen (användbar under SPI) |
6 |
DC |
A0 |
Data Command pin. Används för SPI-protokoll |
7 |
CS |
Chip Select |
Användbar när mer än en modul används under SPI-protokollet |
I denna handledning kommer vi helt enkelt att använda modulen i 4-Wire SPI-läge, vi lämnar resten för någon annan handledning.
Arduino-communityn har redan gett oss många bibliotek som kan användas direkt för att göra detta mycket enklare. Jag testade några bibliotek och fann att Adafruit_SSD1306-biblioteket var väldigt enkelt att använda och hade en handfull grafiska alternativ, därför kommer vi att använda detsamma i denna handledning. Men om ditt projekt har en minnes- / hastighetsbegränsning, försök använda U8g-biblioteket eftersom det fungerar snabbare och tar mindre programminne.
Hårdvara och anslutningar:
Den kopplingsschema SSD1306 OLED samverkar med Arduino är verkligen enkelt och visas nedan
Vi har helt enkelt upprättat en SPI-kommunikation mellan OLED-modulen och Arduino. Eftersom OLED körs på 3V-5V och förbrukar väldigt lite ström behöver den inte någon extern strömförsörjning. Du kan helt enkelt använda kablar för att skapa anslutningen eller använda en bräda som jag har använt så att det är lätt att experimentera. Anslutningen listas också i berättelsen nedan
S. nr |
Fäst namn på OLED-modulen |
Pin-namn på Arduino |
1 |
Gnd, Ground |
Jord |
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 |
Obs! Du kommer inte att kunna visualisera någon bakgrundsbelysning / glöd på OLED-modulen bara genom att driva den. Du måste programmera det korrekt för att märka eventuella ändringar på OLED-skärmen.
Programmering av SSD1306 OLED-skärm för Arduino:
När anslutningarna är klara kan du börja programmera Arduino. Som sagt tidigare kommer vi att använda Adafruit-biblioteket och GFX-biblioteket för att arbeta med denna OLED-modul. Följ stegen för att testköra din OLED-skärm.
Steg 1: Ladda ner Adafruit-biblioteket och GFX-biblioteket från Github med länken nedan
- Adafruit-biblioteket
- GFX grafikbibliotek
Steg 2: Du borde ha laddat ner två Zip-filer. Lägg dem nu till din Arduino genom att följa
Skiss-> Inkludera bibliotek -> Lägg till zip-bibliotek som visas nedan. Välj sedan det bibliotek vi just laddat ner. Du kan bara välja ett bibliotek åt gången, därför måste du upprepa detta steg igen.
Steg 3: Starta exemplet Program genom att välja Arkiv-> Exempel-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino som visas i bilden nedan.
Steg 4: Lägg till raden "#define SSD1306_LCDHEIGHT 64" i exemplet på toppen av rad 64 som visas i bilden nedan.
Steg 5: Ladda nu upp programmet så ska du se OLED-skärmen starta med standard Adafruit-exempelkoden som visas på bilden nedan. Den fullt fungerande video ges i slutet.
Detta exempelprogram visar all möjlig grafik som kan visas på OLED-skärmen. Den här koden borde räcka för att du kan skapa bitmappar, rita linjer / cirklar / rektanglar, spela med pixlar, visa tecken och strängar med olika teckensnitt och storlek osv…
Om du vill förstå biblioteket och dess funktioner bättre kan du läsa vidare. Varje koder i koden delas upp och förklaras med hjälp av kommentarrader. Komplett kod ges i slutet av denna artikel
Visa och rensa skärmen:
Att skriva på OLED-skärmen är precis som att skriva på ett svart tavla, vi måste skriva värdena och sedan rengöra det innan det kan skrivas över. Följande kommandon används för att skriva och rensa displayen
display.display (); // Skriv för att visa display.clearDisplay (); // rensa skärmen
Visar en karaktärvariabel:
För att visa innehållet i en variabel kan följande kod användas.
char i = 5; // variabeln som ska visas display.setTextSize (1); // Välj storlek på textdisplayen. SetTextColor (WHITE); // endast för monokrom visning är det möjligt att visa.setCursor (0,0); // 0,0 är det övre vänstra hörnet på OLED-skärmens display. Skriv (i); // Skriv variabeln som ska visas
Rita en linje, cirkel, rektangel, triangel:
Om du vill lägga till några symboler på din skärm kan du använda följande kod för att rita något av följande
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, färg); display.drawRect (i, i, display.width () - 2 * i, display.höjd () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, färg); display.drawTriangle (display.width () / 2, display.höjd () / 2-i, display.width () / 2-i, display.höjd () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, WHITE); // void drawTriangle (x0, y0, x1, y1, x2, y2, färg); display.drawCircle (display.width () / 2, display.höjd () / 2, i, WHITE); // void drawCircle (x0, y0, r, färg);
Rita en sträng till skärmen:
Följande bit kod kan användas o visa vilket meddelande som helst på skärmen på en viss plats och storlek
display.setTextSize (2); // ställa in storleken på textdisplayen. setTextColor (WHITE); // färginställning display.setCursor (10,0); // Strängen börjar vid 10,0 (x, y) display.clearDisplay (); // Radera alla föregående visningar på skärmen display.println ("Circuit Digest"); // Skriv ut strängen här “Circuit Digest” display.display (); // skicka texten till skärmen
Visar en bitmappsbild:
En otroende sak som kan göras med OLED-modulen är att den kan användas för att visa bitmappar. Följande kod används för att visa en bitmappsbild
statisk konst osignerad char PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B111111111111111111111111 B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bitmap, w, h, WHITE); // void drawBitmap (x, y, * bitmap, w, h, color);
Som du kan se måste bitmappdata lagras i programminnet i form av PROMGMEM-direktiv för att kunna visa en bild. Enkelt uttryckt måste vi instruera OLED-skärmen vad vi ska göra med varje pixel genom att skicka en sekvens eller värden från en matris som visas ovan. Denna matris kommer att innehålla bitmapdata för bilden.
Det kan låta komplicerat men med hjälp av ett webbverktyg är det väldigt enkelt att konvertera en bild till en bitmappsvärden och ladda dem i ovanstående array.
Ladda bara bilden och justera inställningarna för att få din önskade förhandsgranskning av bilden. Klicka sedan på "Skapa kod" kopiera koden och klistra in den i din matris. Ladda upp programmet så är du klar. Jag försökte visa en batman-logotyp och så blev det.
Det finns fortfarande många saker du kan göra med dessa bibliotek. Om du vill veta de fullständiga möjligheterna besöker du Adafruit GFX-grafik Primitives-sidan.
Hoppas att du är igång och redo att implementera en OLED-skärm i några av dina projekt. Om du hade några problem dela dem i kommentarsektionen och jag kommer att göra mitt bästa för att rätta till dem.