Display oled 128x64 i2c non funzionante su Arduino uno

Salve a tutti, sto realizzando un progetto con Arduino, che utilizzerà il display oled i2c 128x64. E' un progetto abbastanza grande, che occupa il 55% dello spazio disponibile per i programmi. Quando carico il codice su Aduino, il display non viene inizializzato.
Questo è il codice nel setup:

void setup() {
  keypad.begin();
  Serial.begin(9600);
  Serial.println("setup");
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println("Il display non funziona");
    while (true);
  }
  Serial.println("il display funziona correttamente");
  display.clearDisplay();
  
  display.setTextColor(WHITE);
  display.setTextSize(2);
  display.setCursor(0,0);
  display.println("sel. una modalita");
  display.display();
  modes = SETUP;
}

Come si può evincere dal codice, il display non viene inizializzato e quindi si blocca. Dopo aver fatto diverse prove e ricontrollato numerose volte i collegamenti, per avere la prova del nove ho anche caricato alcuni dei codici di esempio scritti dalla Adafruit, ma funzionano senza problemi.
Essendo un progetto abbastanza grande, ed avendo a disposizione Arduino r4 WIFI, ho provato a trasferire il progetto su di esso e lo schermo funziona senza intoppi. Secondo voi questo problema è riconducibile alla elevata dimensione del progetto?

Ma che libreria stai usando per controllare il display OLED (immagino un classico 0.96")?

Guglielmo

Si scusami, ho dimenticato di citare le librerie:

#include "Adafruit_Keypad.h" //per il keypad
//librerie oled
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Si lo schermo è un classico 0.96''

Allora, come dico sempre, evitate le librerie di Adafruit ... sono dei veri "mattoni" ...

... se devi usare il display solo per informazioni di testo, c'è la leggerissima SSD1306Ascii che funziona benissimo;

... se devi fare anche grafica, allora usa la OLED_I2C di Rinky-Dink Electronics, un ottima ed efficiente libreria.

Tutte e due sono ben corredate di esempi d'uso ed ampia documentazione.

Guglielmo

Grazie mille, funziona perfettamente, mi scuso per la risposta tardiva, ma ho avuto da fare e non era un problema che mi urgeva risolvere. E' impressionante quanto la libreria della Adafruit non sia ottimizzata. Adesso utilizzo solamente il 30% dello spazio disponibile per i programmi.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.