Volledige gids: 0.96″ OLED-schermen met Arduino

oled

Het OLED-display is een populaire keuze geworden voor integratie in Arduino-projecten, vooral omdat het compact is, een laag stroomverbruik heeft en een uitzonderlijke zichtbaarheid mogelijk maakt, zelfs in heldere omgevingen. Bovendien ligt het gebruik ervan, dankzij de eenvoudige aansluiting, binnen het bereik van elke elektronicaliefhebber, ongeacht zijn of haar ervaring. In dit artikel gaan we dieper in op het aansluiten en programmeren van een 0.96-inch OLED-display met Arduino, waarbij zowel de technische aspecten worden beschreven als praktische codevoorbeelden worden aangeboden.

Als u nog nooit met een OLED-scherm hebt gewerkt, zijn er een paar belangrijke punten die u moet weten voordat u aan uw project begint. OLED's (Organic Light Emitting Diode) hebben fundamentele verschillen met andere soorten schermen zoals LCD's. OLED heeft bijvoorbeeld geen achtergrondverlichting nodig, waardoor het energieverbruik aanzienlijk wordt verminderd. Op schermen zo klein als 0.96 inch kan dit essentieel zijn als het project op batterijen werkt. Laten we nu eens kijken naar de functies ervan.

Wat is een OLED-scherm?

Een OLED-scherm is een type beeldscherm dat gebruik maakt van een organische verbinding die licht uitstraalt wanneer er elektrische stroom wordt toegepast. Dit maakt ze ideaal voor veel elektronicaprojecten, omdat hun technologie ervoor zorgt dat elke pixel zelfstandig kan oplichten, wat ook de zichtbaarheid buitenshuis verbetert. De meeste OLED-schermen die voor Arduino op de markt worden gebracht, hebben een SSD1306-controller, waarmee het verzenden van signalen naar het scherm kan worden beheerd. In feite is de SSD1306 een van de meest voorkomende in Arduino-projecten, en we zullen hem later in de voorbeelden zien.

Een van de belangrijkste voordelen van OLED-schermen is hun lage verbruik. Gemiddeld kan een klein scherm van 0.96 inch ongeveer 20 mA verbruiken. Waarom is dit belangrijk? Als u een batterij gebruikt om uw Arduino-project van stroom te voorzien, is het verminderen van het stroomverbruik altijd een belangrijk pluspunt. Bovendien kan de resolutie van 128x64 pixels afbeeldingen weergeven met een redelijk goede scherpte gezien de grootte.

Aan de andere kant is een van de problemen die zich bij dit type scherm kunnen voordoen, dat het formaat erg klein is. Hoewel ze een goede zichtbaarheid bieden, kan dit formaat in sommige projecten waarbij veel informatie moet worden weergegeven, onvoldoende zijn.

Het OLED-display verbinden met Arduino

Het OLED-display kan eenvoudig worden aangesloten op het Arduino-bord via een I2C- of SPI-bus, afhankelijk van het model. Voor deze tutorial zullen we ons concentreren op de verbinding met behulp van I2C, omdat dit een van de meest voorkomende en eenvoudigste is.

Je moet de pinnen van het OLED-display als volgt verbinden met de overeenkomstige pinnen van je Arduino:

  • GND (Ground) met de Arduino GND-pin
  • VCC met de 5V- of 3.3V-pin van Arduino
  • SDA naar Arduino-pin A4
  • SCL op pin A5 van de Arduino

Zoals je ziet is de aansluiting vrij eenvoudig: je hebt maar vier kabels nodig. Of u nu de SPI- of I2C-bus gebruikt, het verbindingsproces is vergelijkbaar, hoewel de pinnen variëren afhankelijk van het type communicatie dat u kiest.

Codevoorbeeld voor OLED-display

Om het OLED-scherm met Arduino te laten werken, is een van de beste opties het gebruik van de door Adafruit ontwikkelde bibliotheken. De SSD1306-controller is, zoals we eerder vermeldden, compatibel met de bibliotheek Adafruit SSD1306, wat ons leven gemakkelijker maakt bij het maken van afbeeldingen en tekst op het scherm.

Hieronder laat ik een basiscode achter waarmee je tekst kunt weergeven op een OLED-scherm met een I2C-verbinding:

#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() {}

Deze code initialiseert het scherm, maakt het scherm leeg en schrijft vervolgens "Hallo, wereld!" op het OLED-scherm. U kunt verschillende functies van de Adafruit GFX-bibliotheek gebruiken om grafieken te maken, lijnen, cirkels te tekenen of zelfs afbeeldingen op het scherm weer te geven.

Andere handige voorbeelden voor het OLED-scherm

Het bovenstaande voorbeeld is slechts een basisintroductie, maar je kunt nog veel meer doen met OLED-schermen. U kunt bijvoorbeeld verschillende geometrische vormen tekenen, animaties maken of zelfs kleine afbeeldingen maken.

Een van de meest interessante functies die Adafruit-bibliotheken bieden, is de mogelijkheid om meerdere pixels te tekenen, wat betekent dat je scrollende animaties kunt maken. Een ander voorbeeld is het scrollen van tekst, wat erg handig is als u van plan bent berichten weer te geven die dynamisch veranderen.

Een ander gebruik dat u aan deze schermen kunt geven, is het weergeven van realtime gegevens in interactieve projecten, zoals een temperatuur- of vochtigheidssensor. Het scherm kan worden bijgewerkt zodra er nieuwe sensorwaarden worden verkregen, waardoor elk project veel visueler wordt.

Veel voorkomende problemen bij het gebruik van OLED-schermen

Een van de meest voorkomende problemen bij het gebruik van OLED-schermen met Arduino is een gebrek aan geheugen. De Adafruit-bibliotheken, hoewel zeer compleet, kunnen een aanzienlijke hoeveelheid geheugen op de Arduino-processor verbruiken, vooral in versies zoals de Arduino Uno. Als je ruimteproblemen hebt, kun je proberen je code te optimaliseren, functies te verwijderen die je niet nodig hebt, of zelfs gebruik te maken van een bord met meer capaciteit, zoals een Arduino Mega.

Een ander veel voorkomend probleem is de initiële installatie van de I2C-verbinding. Als u niet de juiste SDA- en SCL-pinnen gebruikt, werkt het beeldscherm mogelijk niet of worden er verbindingsfouten weergegeven. Zorg ervoor dat u de juiste pinnen gebruikt op basis van uw Arduino-model.

Ten slotte melden sommige gebruikers ook een leeg scherm of een scherm dat niet op commando's reageert. Dit kan worden opgelost door ervoor te zorgen dat de voedingsspanning correct is (3.3 V of 5 V, afhankelijk van het displaymodel) en dat de kabels correct zijn aangesloten.


Wees de eerste om te reageren

Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.