A 0,91 "OLED -display is een klein, hoog contrast scherm perfect voor Tekst-, afbeeldingen- en sensorgegevens weergeven in Arduino -projecten. Deze gids zal je erdoorheen brengen Bedrading, codering en weergave van tekst en afbeeldingen gebruik van de SSD1306-gebaseerde OLED-module met Arduino.
1. Wat je nodig hebt
✅ Arduino Board (Uno, mega, nano, enz.)
✅ 0.91 "OLED Display (SSD1306, I2C)
✅ Jumper draden
✅ Arduino Ide geïnstalleerd
🔹 Opmerking: Deze zelfstudie richt zich op I2C -communicatie, die alleen gebruikt Twee draden (SDA & SCL), waardoor het ideaal is voor eenvoudige projecten.
2. Bedrading van de 0,91 "OLED naar Arduino (I2C -modus)
OLED -display pin | Arduino Uno Pin | Arduino Nano Pin |
---|---|---|
VCC | 5V | 5V |
GND | GND | GND |
SDA | A4 (SDA) | A4 (SDA) |
SCL | A5 (SCL) | A5 (SCL) |
🔹 Voor Arduino Mega: Gebruik SDA (pin 20) en SCL (pin 21).
3. Installeren van vereiste bibliotheken
Installeer voordat u codert Adafruit SSD1306 En Adafruit gfx bibliotheken:
- Open Arduino IDE.
- Gaan naar Sketch → Baten Library → Bibliotheken beheren.
- Zoeken naar Adafruit SSD1306 en installeer het.
- Zoeken naar Adafruit gfx en installeer het.
4. Basiscode om tekst op OLED weer te geven
Dit voorbeeld initialiseert de OLED en displays "Hallo, Arduino!".
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Start OLED display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("SSD1306 allocation failed");
for (;;);
}
display.clearDisplay(); // Clear buffer
display.setTextSize(1); // Text size
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 10);
display.println("Hello, Arduino!");
display.display(); // Show text on screen
}
void loop() {
// Nothing here (text is static)
}
🔹 Wat deze code doet:
✔ Initialiseert de SSD1306 Display.
✔ Afdrukken "Hallo, Arduino!" op het scherm.
✔ Gebruik I2C -adres 0x3c (Sommige modules kunnen gebruiken 0x3d).
5. Graphics weergeven (lijnen, cirkels, afbeeldingen)
Tekenen vormen, wijzig de code met behulp van Adafruit GFX -functies.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
// Draw a rectangle
display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
// Draw a filled circle
display.fillCircle(90, 16, 10, SSD1306_WHITE);
display.display();
}
void loop() {}
🔹 Andere tekenfuncties:
✔ display.drawLine(x1, y1, x2, y2, color);
→ trekt een lijn
✔ display.drawCircle(x, y, radius, color);
→ tekent een cirkel
✔ display.drawRect(x, y, width, height, color);
→ tekent een rechthoek
6. Voorbeeld van scrollende tekst
Dit voorbeeld bladert tekst horizontaal Over het OLED -scherm.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println("Scrolling Text...");
display.display();
// Start scrolling
display.startscrollleft(0x00, 0x0F);
}
void loop() {}
🔹 Scrolling -functies:
✔ display.startscrollleft(start, stop);
→ Scroll -tekst links
✔ display.startscrollright(start, stop);
→ Scroll -tekst rechts
✔ display.stopscroll();
→ Stopt met scrollen
7. Tips voor probleemoplossing
Probleem: Display tonen niets.
✅ Rekening Bedrading (SDA & SCL correct verbonden).
✅ Zorg voor de OLED I2C -adres is 0x3c (of probeer 0x3d).
✅ Gebruik een I2C -scanner Om het apparaat te detecteren:
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("Scanning...");
for (byte address = 8; address < 120; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Found I2C device at 0x");
Serial.println(address, HEX);
}
}
}
void loop() {}
Probleem: Tekst is te klein of te groot.
✅ Aanpassen display.setTextSize(1);
(Verhoging voor grotere tekst).
8. Praktische toepassingen
✔ Sensorgegevens weergeven -Toon realtime lezingen van DHT11, BMP280, etc.
✔ Klokdisplay - Combineer met DS3231 RTC -module om een digitale klok te maken.
✔ Menussystemen - Gebruik knoppen om door menu's te navigeren.
✔ Batterijspanningindicator - Bewaak de stroomniveaus in draagbare projecten.
9. Conclusie
Een 0.91 "OLED met Arduino is een geweldige manier om toe te voegen visuele uitvoer naar uw projecten. Of u nu wilt weergeven tekst-, afbeeldingen- of sensorgegevens, dit kleine scherm biedt hoog contrast en laag stroomverbruik.