Komplet guide: 0.96" OLED-skærme med Arduino

OLED

OLED-skærmen er blevet et populært valg til integration i Arduino-projekter, hovedsageligt fordi det er kompakt, har lavt strømforbrug og tillader enestående synlighed selv i lyse omgivelser. Takket være dens lette tilslutning er brugen desuden inden for rækkevidde af enhver elektronikentusiast, uanset deres erfaring. I denne artikel vil vi tage et dybdegående kig på, hvordan man tilslutter og programmerer en 0.96-tommer OLED-skærm med Arduino, der beskriver både de tekniske aspekter og tilbyder praktiske kodeeksempler.

Hvis du aldrig har arbejdet med en OLED-skærm, er der et par nøglepunkter, du bør vide, før du starter dit projekt. OLED'er (Organic Light Emitting Diode) har grundlæggende forskelle med andre typer skærme såsom LCD'er. For eksempel kræver OLED ikke baggrundsbelysning, hvilket reducerer strømforbruget markant. På skærme så små som 0.96 tommer kan dette være vigtigt, hvis projektet er batteridrevet. Lad os nu dykke ned i dens funktioner.

Hvad er en OLED-skærm?

En OLED-skærm er en type skærm, der bruger en organisk forbindelse, der udsender lys, når en elektrisk strøm påføres. Dette gør dem ideelle til mange elektronikprojekter, da deres teknologi tillader hver pixel at lyse af sig selv, hvilket også forbedrer udendørs synlighed. De fleste OLED-skærme, der markedsføres til Arduino, har en SSD1306-controller, som gør det muligt at styre afsendelsen af ​​signaler til skærmen. Faktisk er SSD1306 en af ​​de mest almindelige i Arduino-projekter, og vi vil se det i eksemplerne senere.

En af de vigtigste fordele ved OLED-skærme er deres lave forbrug. I gennemsnit kan en lille 0.96″ skærm forbruge omkring 20mA. Hvorfor er dette vigtigt? Nå, hvis du bruger et batteri til at drive dit Arduino-projekt, er det altid et betydeligt plus at reducere strømforbruget. Derudover kan dens opløsning på 128x64 pixels repræsentere billeder med ganske god skarphed taget i betragtning af dens størrelse.

På den anden side er et af de problemer, der kunne opstå med denne type skærm, at dens størrelse er virkelig lille. Selvom de giver god synlighed, kan denne størrelse være utilstrækkelig i nogle projekter, hvor der skal vises meget information.

Tilslutning af OLED-skærmen til Arduino

OLED-skærmen forbindes nemt til Arduino-kortet ved hjælp af en I2C- eller SPI-bus, afhængigt af modellen. Til denne tutorial vil vi fokusere på forbindelsen ved hjælp af I2C, da det er en af ​​de mest almindelige og enkleste.

Du skal forbinde benene på OLED-skærmen med de tilsvarende ben på din Arduino som følger:

  • GND (Ground) med Arduino GND-stiften
  • VCC med 5V eller 3.3V pin af Arduino
  • SDA til Arduino pin A4
  • SCL til pin A5 på Arduino

Som du kan se, er forbindelsen ret enkel: Du behøver kun fire kabler. Så, uanset om du bruger SPI- eller I2C-bussen, er forbindelsesprocessen ens, selvom stifterne varierer afhængigt af den type kommunikation, du vælger.

Kodeeksempel for OLED-skærm

For at få OLED-skærmen til at fungere med Arduino er en af ​​de bedste muligheder at bruge bibliotekerne udviklet af Adafruit. SSD1306-controlleren, som vi nævnte før, er kompatibel med biblioteket Adafruit SSD1306, som gør vores liv nemmere, når vi laver grafik og tekst på skærmen.

Nedenfor efterlader jeg dig en grundlæggende kode, der giver dig mulighed for at vise tekst på en OLED-skærm med en I2C-forbindelse:

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}

Denne kode initialiserer skærmen, rydder skærmen og skriver derefter "Hello, World!" på OLED-skærmen. Du kan bruge forskellige funktioner i Adafruit GFX-biblioteket til at lave grafer, tegne linjer, cirkler eller endda vise billeder på skærmen.

Andre nyttige eksempler til OLED-skærmen

Eksemplet ovenfor er blot en grundlæggende introduktion, men du kan gøre meget mere med OLED-skærme. Du kan for eksempel tegne forskellige geometriske former, lave animationer eller endda lave små grafikker.

En af de mest interessante funktioner, som Adafruit-biblioteker tilbyder, er evnen til at tegne flere pixels, hvilket betyder, at du kan oprette rullende animationer. Et yderligere eksempel ville være rulletekst, hvilket er meget nyttigt, hvis du planlægger at vise meddelelser, der ændrer sig dynamisk.

En anden anvendelse, som du kan give disse skærme, er at vise realtidsdata i interaktive projekter, såsom en temperatur- eller fugtighedssensor. Skærmen kan opdateres, efterhånden som der opnås nye sensoraflæsninger, hvilket gør ethvert projekt meget mere visuelt.

Almindelige problemer ved brug af OLED-skærme

Et af de mest almindelige problemer ved brug af OLED-skærme med Arduino er mangel på hukommelse. Adafruit-bibliotekerne, selvom de er meget komplette, kan forbruge en betydelig mængde hukommelse på Arduino-processoren, især i versioner som Arduino Uno. Hvis du har pladsproblemer, kan du prøve at optimere din kode, fjerne funktioner, du ikke har brug for, eller endda gøre brug af et board med mere kapacitet, såsom en Arduino Mega.

Et andet almindeligt problem er den indledende opsætning af I2C-forbindelsen. Hvis du ikke bruger de korrekte SDA- og SCL-ben, fungerer skærmen muligvis ikke eller viser forbindelsesfejl. Sørg for at bruge de korrekte stifter baseret på din Arduino-model.

Endelig rapporterer nogle brugere også en tom skærm eller en, der ikke reagerer på nogen kommandoer. Dette kan løses ved at sikre, at forsyningsspændingen er korrekt (3.3V eller 5V afhængig af skærmmodellen), og at kablerne er tilsluttet korrekt.