A 0,91 "wyświetlacz OLED to mały ekran o wysokiej kontroli idealny Wyświetlanie danych tekstowych, graficznych i czujników W projektach Arduino. Ten przewodnik przechodzi cię przez okablowanie, kodowanie i wyświetlanie tekstu i grafiki za pomocą Moduł OLED oparty na SSD1306 z Arduino.
1. Czego potrzebujesz
✅ Board Arduino (Uno, Mega, Nano itp.)
✅ 0,91 "wyświetlacz OLED (SSD1306, I2C)
✅ Przewody zworki
✅ Zainstalowane Arduino IDE
🔹 Notatka: Ten samouczek się koncentruje Komunikacja I2C, który używa tylko Dwa przewody (SDA i SCL), czyniąc go idealnym do prostych projektów.
2. Okablowanie 0,91 "OLED do Arduino (tryb I2C)
OLED PIN | Arduino Uno Pin | Arduino Nano Pin |
---|---|---|
VCC | 5v | 5v |
GND | GND | GND |
SDA | A4 (SDA) | A4 (SDA) |
Scl | A5 (SCL) | A5 (SCL) |
🔹 Dla Arduino Mega: Używać SDA (PIN 20) i SCL (PIN 21).
3. Instalowanie wymaganych bibliotek
Przed kodowaniem zainstaluj Adafruit SSD1306 I Adafruit GFX Biblioteki:
- Otwarte Arduino Ide.
- Idź do Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami.
- Szukaj Adafruit SSD1306 i zainstaluj to.
- Szukaj Adafruit GFX i zainstaluj to.
4. Podstawowy kod do wyświetlania tekstu na OLED
Ten przykład inicjuje OLED i wyświetla „Witaj, 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)
}
🔹 Co robi ten kod:
✔ Inicjuje Wyświetlacz SSD1306.
✔ Wydruki „Witaj, Arduino!” na ekranie.
✔ Zastosowania Adres I2C 0x3c (Mogą użyć niektórych modułów 0x3d).
5. Wyświetlanie grafiki (linie, koła, obrazy)
Rysować kształty, zmodyfikuj kod za pomocą Funkcje GFX Adafruit.
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() {}
🔹 Inne funkcje rysunku:
✔ display.drawLine(x1, y1, x2, y2, color);
→ rysuje linię
✔ display.drawCircle(x, y, radius, color);
→ rysuje okrąg
✔ display.drawRect(x, y, width, height, color);
→ rysuje prostokąt
6. Przykład przewijania tekstu
Ten przykład przewija tekst poziomo na ekranie OLED.
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() {}
🔹 Funkcje przewijania:
✔ display.startscrollleft(start, stop);
→ Przewiń tekst lewy
✔ display.startscrollright(start, stop);
→ Przewiń tekst Prawidłowy
✔ display.stopscroll();
→ Przestaje przewijanie
7. Wskazówki dotyczące rozwiązywania problemów
Problem: Wyświetlacz nic nie pokazuje.
✅ Sprawdzać okablowanie (poprawnie podłączone SDA i SCL).
✅ Upewnij się Adres OLED I2C to 0x3c (lub spróbuj 0x3d).
✅ Użyj Skaner I2C Aby wykryć urządzenie:
#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() {}
Problem: Tekst jest zbyt mały lub zbyt duży.
✅ Regulować display.setTextSize(1);
(Wzrost dla większego tekstu).
8. Praktyczne zastosowania
✔ Wyświetlanie danych czujników -Pokaż odczyty w czasie rzeczywistym z DHT11, BMP280 itd.
✔ Wyświetlacz zegara - Połącz z Moduł RTC DS3231 zrobić zegar cyfrowy.
✔ Systemy menu - Użyj przycisków do nawigacji przez menu.
✔ Wskaźnik napięcia akumulatora - Monitoruj poziomy mocy w przenośnych projektach.
9. Wniosek
Za pomocą 0,91 "OLED z Arduino to świetny sposób na dodanie Wyjście wizualne do twoich projektów. Czy chcesz wyświetlić Dane tekstowe, graficzne lub czujniki, ten mały ekran oferuje Wysoki kontrast i niskie zużycie energii.