Arduino Nano - SSD1309 OLED Display 128x64 | 2.42 inch I2C OLED Tutorial
Een OLED (Organic Light-Emitting Diode) display heeft zelfoplichtende pixels die diepe zwartwaarden, hoog contrast en brede kijkhoeken bieden — waardoor het een uitstekende upgrade is ten opzichte van traditionele LCD’s. De SSD1309 is de driver IC die vaak voorkomt op 2.42-inch (soms aangeduid als 2.4-inch) 128×64 I2C OLED-modules.
In deze stapsgewijze handleiding leert u hoe u de SSD1309 OLED 128×64 aansluit en programmeert met een Arduino Nano board met behulp van de DIYables_OLED_SSD1309 bibliotheek. Specifiek behandelen we:
- Aansluiten van het 2.42-inch SSD1309 OLED op Arduino Nano via I2C
- Tekst en cijfers weergeven op het scherm
- Tekst zowel verticaal als horizontaal centreren
- Geometrische vormen tekenen (lijnen, rechthoeken, cirkels, driehoeken, afgeronde rechthoeken)
- Monochrome bitmapafbeeldingen renderen
- Hardware scrollen in vier richtingen
- Contrast instellen en het scherm dimmen
- Gebruik van aangepaste externe lettertypen uit de Adafruit GFX lettertypen collectie
Hardware Benodigdheden
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over het SSD1309 2.42 inch OLED Display
De SSD1309 is een single-chip CMOS OLED driver IC, ontworpen voor 128×64 dot-matrix panelen. Het is register-compatibel met de veelgebruikte SSD1306, wat betekent dat veel bestaande codevoorbeelden met minimale aanpassingen bruikbaar zijn. De belangrijkste hardwareverschillen zijn:
- Geen ingebouwde charge pump — de SSD1309 vereist een externe VCC-voeding; vrijwel alle breakout boards (inclusief 2.42-inch en 2.4-inch modules) bevatten echter een onboard boost converter, dus dit merkt u als gebruiker niet.
- Hogere spannings-tolerantie — de SSD1309 accepteert tot 16 V aan VCC, terwijl de SSD1306 beperkt is tot ongeveer 4,2 V.
Het 2.42 inch (2.4 inch) OLED-module gebruikt doorgaans de SSD1309-driver en heeft een resolutie van 128×64 pixels met I2C-interface. De paneelkleur (wit, blauw, geel, groen of dual-zone) wordt bepaald door het fysieke OLED-materiaal en is niet via software aan te passen.
Deze handleiding communiceert met het display via de I2C-bus, die slechts twee signaaldraadjes (SDA en SCL) nodig heeft en gedeeld kan worden met andere I2C-onderdelen.
SSD1309 OLED Pinout (I2C Module)
- GND pin: Verbind met de aarde (ground) van de Arduino Nano.
- VCC pin: Voedingsspanning voor het display, verbind met 5V.
- SCL pin: Seriële klokpin voor I2C. Verbind met A5.
- SDA pin: Seriële datapin voor I2C. Verbind met A4.

※ Notiz:
- De pinnen van het OLED-module kunnen verschillen per fabrikant en type. Gebruik altijd de op het OLED-module gedrukt labels. Let hier goed op!
- Deze handleiding gebruikt een OLED-display aangestuurd door de SSD1309 I2C driver. We hebben getest met het OLED-display van DIYables en het werkt perfect.
Aansluitschema
- Aansluitschema tussen Arduino Nano en SSD1309 OLED 128x64

This image is created using Fritzing. Click to enlarge image
De aansluittafel tussen Arduino Nano en SSD1309 OLED display:
| OLED Module | Arduino Nano |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Arduino Nano programmeren voor SSD1309 OLED
Installeer de DIYables_OLED_SSD1309 Bibliotheek
De DIYables_OLED_SSD1309 bibliotheek is speciaal aangepast voor SSD1309 displays en breidt Adafruit_GFX uit voor uitgebreidere grafische ondersteuning.
- Klik op het Libraries icoon in de linker balk van de Arduino IDE.
- Zoek op DIYables_OLED_SSD1309 en selecteer de DIYables OLED SSD1309 bibliotheek door DIYables.
- Klik op de Install knop om de DIYables_OLED_SSD1309 bibliotheek te installeren.

- U wordt gevraagd om afhankelijkheden te installeren.
- Installeer alle afhankelijkheden door te klikken op de Install All knop.

Programmeerstappen
- Include de benodigde bibliotheken
- Definieer de schermafmetingen
- Declareer het display-object
- Initialiseer de OLED in setup()
- Toon content
Arduino Nano Code — Hello World op SSD1309 OLED
Het eenvoudigste beginpunt: een paar regels tekst tonen in verschillende groottes.
Arduino Nano Code — Tekst Weergeven op SSD1309 OLED
Het volgende voorbeeld toont uitgebreidere tekstmogelijkheden — meerdere groottes, getalnotatie en het F() macro om RAM te besparen.
Handige Display Functies Referentie
Hieronder een snelle referentielijst van de meest gebruikte functies bij het werken met de SSD1309 OLED via de DIYables bibliotheek:
- oled.clearDisplay() — wist de frame buffer (alle pixels uit).
- oled.display() — stuurt de buffer naar de OLED zodat wijzigingen zichtbaar worden.
- oled.drawPixel(x, y, color) — zet of wist een individuele pixel.
- oled.setTextSize(n) — schaalt het lettertype met factor *n* (1 = 6×8, 2 = 12×16, …, tot 8).
- oled.setCursor(x, y) — verplaatst de tekstcursor naar pixelcoördinaten *(x, y)*.
- oled.setTextColor(SSD1309_PIXEL_ON) — tekst met alleen een voorgrondkleur (achtergrond is transparant).
- oled.setTextColor(SSD1309_PIXEL_OFF, SSD1309_PIXEL_ON) — tekst met expliciete achtergrondkleur.
- oled.println("message") — print een string en gaat naar de volgende regel.
- oled.println(number) — print een geheel getal in decimaal.
- oled.println(number, HEX) — print een geheel getal in hexadecimaal.
- oled.startscrollright(start, stop) — hardware scroll naar rechts tussen pagina *start* en *stop*.
- oled.startscrollleft(start, stop) — hardware scroll naar links.
- oled.startscrolldiagright(start, stop) — hardware scroll diagonaal naar rechts.
- oled.startscrolldiagleft(start, stop) — hardware scroll diagonaal naar links.
- oled.stopscroll() — stopt actieve hardware-scroll.
- oled.setContrast(value) — stelt de helderheid van het display in (0–255).
- oled.dim(true/false) — dimt snel het display tot minimum of herstelt het vorige contrastniveau.
- oled.invertDisplay(true/false) — hardwarekleurinvertie (aan pixels ↔ uit pixels).
Tekst Verticaal en Horizontaal Centreren op de SSD1309 OLED
Arduino Nano Code — Vormen Tekenen op SSD1309 OLED
Omdat de DIYables_OLED_SSD1309 bibliotheek Adafruit_GFX uitbreidt, krijgt u een compleet pakket aan vormtekenfuncties: pixels, lijnen, rechthoeken, gevulde rechthoeken, cirkels, gevulde cirkels, driehoeken, gevulde driehoeken en afgeronde rechthoeken. Onderstaand sketch toont ze allemaal in een animatie.
Arduino Nano Code — Hardware Scrollen op SSD1309 OLED
De SSD1309 heeft een ingebouwde scroll engine die de inhoud van het scherm verschuift zonder CPU-belasting. De DIYables bibliotheek biedt vier scrollrichtingen: rechts, links, diagonaal naar rechts en diagonaal naar links. Elke functie neemt een start- en stop-pagina parameter (pagina’s zijn horizontale stroken van 8 pixels hoog, genummerd 0–7 op dit 64-pixel-tall display).
※ Notiz:
Roep altijd display() aan om de content naar de OLED te sturen voordat u scrollen start. Vermijd het tekenen van nieuwe content tijdens het scrollen — roep eerst stopscroll() aan.
Arduino Nano Code — Bitmap Afbeelding Tonen op SSD1309 OLED
Om een bitmap op de SSD1309 OLED te tonen moet u eerst uw afbeelding converteren naar een C-byte-array. Gebruik hiervoor de gratis image2cpp online tool:
- Upload uw afbeelding (PNG, JPG, BMP, etc.).
- Stel het canvasformaat in op 128×64 (of kleiner).
- Kies Arduino code als uitvoerformaat.
- Kopieer de gegenereerde array in uw sketch.

Het onderstaande voorbeeld wisselt af tussen een 16×16 hart-icoontje en een logo van DIYables over de volle breedte:
※ Notiz:
- De bitmap afmetingen mogen niet groter zijn dan de schermresolutie (128×64 voor het 2.42 inch module).
Arduino Nano Code — Contrast en Dim op SSD1309 OLED
De SSD1309 ondersteunt 256 contrastniveaus (0–255). De DIYables bibliotheek heeft setContrast() voor fijnmazige regeling en dim() voor een snelle schakelaar tussen minimale helderheid en de eerder ingestelde waarde.
Arduino Nano Code — Aangepaste Externe Lettertypen op SSD1309 OLED
De Adafruit GFX bibliotheek bevat tientallen schaalbare FreeFont lettertypen (Serif, Sans, Mono — elk in Regular, Bold, Italic en vier groottes). U activeert ze op het SSD1309 display door de corresponderende header te includen en setFont() te gebruiken.
※ Notiz:
- Bij het gebruik van een extern lettertype verwijst de cursor Y-coördinaat naar de tekst basislijn in plaats van de linkerbovenhoek. Dit is anders dan bij het ingebouwde 5×7 lettertype.
- Externe lettertypen worden opgeslagen in flash (PROGMEM). Op Arduino Nano (32 KB flash) is het verstandig deze spaarzaam te gebruiken.
SSD1309 OLED Problemen oplossen met Arduino Nano
Als er na het uploaden van uw sketch niets verschijnt op het 2.42 inch SSD1309 OLED-display, doorloopt u de volgende controles:
- Controleer de bekabeling — zorg dat SDA, SCL, VCC en GND correct zijn aangesloten op de Arduino Nano pins.
- Controleer de driver chip — deze bibliotheek is ontworpen voor de SSD1309. Gebruik van een andere controller (zoals SH1106) werkt niet correct.
- Controleer het I2C-adres — de meeste SSD1309 modules gebruiken standaard 0x3C, maar sommige 0x3D. Gebruik onderstaande I2C scanner sketch om het daadwerkelijke adres te vinden:
Verwachte output in de Serial Monitor als de SSD1309 wordt gedetecteerd:
- Zorg ervoor dat display() wordt aangeroepen — de SSD1309 gebruikt een frame buffer. Tekentaken wijzigen alleen de buffer in RAM totdat oled.display() wordt aangeroepen.
- Controleer de voeding — het 2.42 inch module trekt meer stroom dan kleinere OLED’s. Zorg dat uw voeding voldoende stroom levert (typisch 20–40 mA bij maximale helderheid).
Video Tutorial
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en praktische tips om snel aan de slag te gaan met uw SSD1309 OLED display en Arduino Nano.
Afronding
Deze handleiding heeft alle basisprincipes behandeld voor het gebruik van het 2.42-inch SSD1309 OLED display (128×64) met Arduino Nano, waaronder:
- Hardwareverbindingen en I2C bekabeling
- Tekst- en cijferweergave in meerdere groottes
- Vormtekenen (rechthoeken, cirkels, driehoeken)
- Weergave van bitmapafbeeldingen
- Hardware scrollen in vier richtingen
- Contrast- en helderheidsregeling
- Gebruik van aangepaste externe lettertypen
De DIYables_OLED_SSD1309 bibliotheek maakt het programmeren van de SSD1309 eenvoudiger door hoog-niveau functies aan te bieden voor tekst-, grafiek- en displaycontrole, terwijl het Adafruit GFX gebruikt voor uitgebreide tekenmogelijkheden.
Voor meer Arduino Nano projecten en tutorials, bezoek arduinogetstarted.com