Codice Arduino e video per display OLED SSD1306 128 x 32 con I2C
In questo tutorial esploreremo come usare il display OLED SSD1306 128 x 32 con comunicazione I2C su Arduino. L'obiettivo è visualizzare vari elementi come testo, rettangoli e valori dinamici come tensione e temperatura sullo schermo. Questa configurazione è ideale per progetti che richiedono una soluzione di visualizzazione compatta ed efficiente.

Passeremo in rassegna i componenti hardware necessari, le istruzioni per il cablaggio e il codice Arduino per mettere tutto in funzione. Per una guida visiva, assicurati di guardare il video che accompagna questo tutorial (nel video a 00:00).
Hardware spiegato
I componenti chiave per questo progetto includono il display OLED SSD1306, un modulo a basso consumo che utilizza la comunicazione I2C per un'interfaccia semplice. Il display ha una risoluzione di 128 x 32 pixel, rendendolo adatto alla visualizzazione di testo e grafica semplice.
Per controllare il display, useremo la scheda Arduino, che invierà comandi e dati tramite I2C. L'Arduino gestisce la logica per visualizzare le informazioni utilizzando librerie comeAdafruit_GFXeAdafruit_SSD1306. Queste librerie semplificano il processo di comunicazione e consentono di disegnare facilmente forme e testo.
Dettagli della scheda tecnica
| Produttore | Adafruit |
|---|---|
| Numero di parte | SSD1306 |
| Tensione logica/IO | 3.3 - 5 V |
| Tensione di alimentazione | 3.3 - 5 V |
| Assorbimento di corrente | ~20 mA (tipico) |
| Risoluzione del display | 128 x 32 pixel |
| Interfaccia | I2C |
| Dimensioni | 128 x 32 mm |
| Note / varianti | Disponibili in varie dimensioni e interfacce |
- Verifica l'indirizzo I2C, solitamente 0x3C per gli OLED.
- Assicurarsi che l'alimentazione sia adeguata per evitare danni.
- Usare resistenze di pull-up sulle linee SDA e SCL se necessario.
- Mantieni i collegamenti corti per ridurre il rumore sul segnale I2C.
- Considerare la dissipazione del calore se si alimentano più moduli.
Istruzioni di cablaggio

Per collegare il display OLED SSD1306, prima collega il pin VCC del display all'uscita 5V dell'Arduino. Successivamente, collega il pin GND a uno dei pin di massa (GND) dell'Arduino. Per la comunicazione I2C, collega il pin SDA del display al pin SDA dell'Arduino, che è A4 per l'UNO. Poi collega il pin SCL del display al pin SCL dell'Arduino, che è A5 per l'UNO. Se stai usando un modello di Arduino diverso, fai riferimento alla mappatura specifica dei pin SDA e SCL.
Per componenti aggiuntivi, se hai un LED che vuoi controllare, collegalo al pin 9 tramite una resistenza da 330 ohm. Assicurati di collegare l'altro capo della resistenza all'anodo del LED, mentre il catodo deve andare a massa. Questa configurazione permetterà al LED di accendersi quando il pin 9 viene attivato.
Esempi di codice e guida passo passo
Nel codice Arduino, iniziamo includendo le librerie necessarie per il display OLED. Un identificatore chiave èdisplay, che è un'istanza diAdafruit_SSD1306classe. Il display viene inizializzato insetup()funzione, nella quale cancelliamo anche il display per prepararlo al disegno.

void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.display();
delay(2000);
display.clearDisplay();
}Nelloop()funzione, definiamo una variabile stringavStringper memorizzare il valore della tensione, che viene aggiornato dinamicamente. IlrobojaxText()La funzione viene utilizzata per visualizzare testo sullo schermo alle coordinate specificate.
void loop() {
String vString = String(count, 3);
display.clearDisplay();
robojaxText("Voltage: ", 4, 3, 1, false);
robojaxText(vString, 72, 3, 1, false);
display.display();
count += 0.173;
delay(2000);
}IlrobojaxText()La funzione è fondamentale per posizionare e visualizzare il testo. Prende come parametri la stringa di testo, le coordinate x e y, la dimensione del testo e un valore booleano per determinare se il display debba essere aggiornato immediatamente.
void robojaxText(String text, int x, int y, int size, boolean d) {
display.setTextSize(size);
display.setTextColor(WHITE);
display.setCursor(x, y);
display.println(text);
if(d) {
display.display();
}
}Questa funzione imposta la dimensione del testo, il colore e la posizione del cursore prima di stampare il testo. Ricorda di guardare il video per una spiegazione completa del codice (nel video a 10:00).
Dimostrazione / Cosa aspettarsi
Quando il codice viene caricato sull'Arduino, il display OLED dovrebbe mostrare i valori di tensione, temperatura e capacità aggiornandosi dinamicamente ogni due secondi. Dovresti vedere anche un rettangolo disegnato intorno agli elementi di testo. Se il display non mostra nulla, verifica che le connessioni siano corrette e che l'indirizzo I2C corrisponda a quello specificato nel codice.
Marcatori temporali del video
- 00:00- Introduzione al progetto
- 02:00- Istruzioni per il cablaggio
- 05:00- Revisione del codice
- 10:00- Dimostrazione dell'output
Cose di cui potresti avere bisogno
-
AmazonAcquista OLED 128x32 da Amazonamzn.to
-
AliExpressAcquista SSD1306 OLED 128x32 da AliExpresss.click.aliexpress.com
Risorse e riferimenti
-
EsternoLibreria Adafruit-GFX (da GitHub)github.com
-
EsternoLibreria SSD1306 (da GitHub)github.com
File📁
Nessun file disponibile.