O Afișaj OLED de 0,91 " este un ecran mic, cu contrast ridicat, perfect pentru Afișarea datelor de text, grafică și senzori În proiectele Arduino. Acest ghid vă va parcurge Cablarea, codificarea și afișarea textului și a graficii folosind Modul OLED bazat pe SSD1306 cu Arduino.
1. Ce ai nevoie
✅ Board Arduino (UNO, Mega, Nano, etc.)
✅ Ecran OLED de 0,91 "(SSD1306, I2C)
✅ Fire de jumper
✅ Arduino IDE instalat
🔹 Nota: Acest tutorial se concentrează pe Comunicare I2C, care folosește numai Două fire (SDA și SCL), făcându -l ideal pentru proiecte simple.
2. Cablarea OLED de 0,91 "către Arduino (modul I2C)
Pin de afișare OLED | Arduino Uno Pin | Arduino Nano Pin |
---|---|---|
VCC | 5V | 5V |
GND | GND | GND |
SDA | A4 (SDA) | A4 (SDA) |
SCL | A5 (SCL) | A5 (SCL) |
🔹 Pentru Arduino Mega: Utilizare SDA (PIN 20) și SCL (pinul 21).
3. Instalarea bibliotecilor necesare
Înainte de codare, instalați Adafruit SSD1306 şi Adafruit GFX Biblioteci:
- Deschide Arduino IDE.
- Du -te la Schiță → Includeți biblioteca → Gestionați bibliotecile.
- Caută Adafruit SSD1306 și instalați -l.
- Caută Adafruit GFX și instalați -l.
4. Cod de bază pentru afișarea textului pe OLED
Acest exemplu inițializează OLED și afișaje "Bună ziua, 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)
}
🔹 Ce face acest cod:
✔ Inițializează Afișaj SSD1306.
✔ Imprimeuri "Bună ziua, Arduino!" pe ecran.
✔ Utilizări Adresa I2C 0x3c (Unele module pot utiliza 0x3d).
5. Afișarea graficii (linii, cercuri, imagini)
A desena Forme, modificați codul folosind Funcții Adafruit GFX.
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() {}
🔹 Alte funcții de desen:
✔ display.drawLine(x1, y1, x2, y2, color);
→ desenează o linie
✔ display.drawCircle(x, y, radius, color);
→ desenează un cerc
✔ display.drawRect(x, y, width, height, color);
→ Desenează un dreptunghi
6. Exemplu de text de defilare
Acest exemplu derulează text orizontal Peste ecranul 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() {}
🔹 Funcții de defilare:
✔ display.startscrollleft(start, stop);
→ Textul de defilare stânga
✔ display.startscrollright(start, stop);
→ Textul de defilare corect
✔ display.stopscroll();
→ Opriți defilarea
7. Sfaturi de depanare
Problemă: Afișare nu arată nimic.
✅ Verifica cabluri (SDA și SCL conectate corect).
✅ Asigurați -vă Adresa OLED I2C este 0x3c (sau încercați 0x3D).
✅ Folosiți un Scaner I2C Pentru a detecta dispozitivul:
#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ă: Textul este prea mic sau prea mare.
✅ Regla display.setTextSize(1);
(Creșterea pentru un text mai mare).
8. Aplicații practice
✔ Afișarea datelor senzorului -Afișați lecturi în timp real de la DHT11, BMP280, etc.
✔ Afișare ceas - Combinați cu DS3231 Modul RTC Pentru a face un ceas digital.
✔ Sisteme de meniu - Folosiți butoane pentru a naviga prin meniuri.
✔ Indicator de tensiune a bateriei - Monitorizați nivelurile de putere în proiecte portabile.
9. Concluzie
Folosind a 0,91 "OLED cu Arduino este o modalitate excelentă de a adăuga ieșire vizuală la proiectele tale. Indiferent dacă doriți să afișați Text, grafică sau date senzor, acest mic ecran oferă contrast ridicat și consum redus de energie.