Leonardo Pro Micro e schermo I2C 128x64

Salve, sto disperatamente cercando di far fare qualcosa (qualsiasi cosa) a uno schermo da 0.96'' oled i2c 128x64.
Lo schermo è questo per la precisione: https://www.amazon.it/dp/B07XRV5ZHX
Ho un "leonardo pro micro" basato sul pro micro della sparkfun, che dovrebbe essere in tutto e per tutto compatibile con il leonardo originale, l'ho già usato per un altro progetto e lì è filato tutto liscio.

Collegamenti:
-VCC dello schermo > RAW del pro micro
-GND dello schermo > GND del pro micro
-SDA dello schermo > PIN digitale 2
-SCL dello schermo > PIN digitale 3

Dettagli:
Il pro micro è alimentato da USB, al momento è tutto montato su breadbord, e ho controllato che ci sia tensione tra RAW e GND e continuità tra i collegamenti che ho scritto sopra, quindi a meno che non ho toppato qualcosa di esageratamente idiota i collegamenti dovrebbero essere ok.

Test:
Ho letto varie guide al riguardo, e ho importato la libreria Adafruit GFX e Adafruit SSD1306, ho eseguito l'esempio ssd1306_128x64_i2c ma niente... non ci sono errori in seriale ma sullo schermo non succede nulla.

L'esempio in questione è questo: ssd1306_128x64_i2c.ino

Ho provato anche a modificare il file Adafruit_SSD1306.h rimuovendo:

#define SSD1306_128_32

e mettendo:

#define SSD1306_128_64

come specificato da diverse guide online, ma non ha avuto alcun effetto.
(E in effetti nella libreria c'è scritto che quei define sono deprecati)

Ho anche provato ad eseguire questo codice trovato online che dovrebbe farmi la lista dei device I2C connessi e...
effettivamente lo schermo viene trovato, ed ha lo stesso indirizzo che viene poi specificato nell'esempio...

#include <Wire.h>

void setup() {
  Serial.begin (9600);

  // Leonardo: wait for serial port to connect
  while (!Serial){}

  Serial.println ();
  Serial.println ("Scanning Devices");
  byte count = 0;
  
  Wire.begin();
 
 for (byte i = 8; i < 120; i++)
  {
    Wire.beginTransmission (i);
    if (Wire.endTransmission () == 0)
      {
      Serial.print ("Found address: ");
      Serial.print (i, DEC);
      Serial.print (" (0x");
      Serial.print (i, HEX);
      Serial.println (")");
      count++;
      delay (1);  // maybe unneeded?
      } // end of good response
  } // end of for loop
  Serial.println ("Finshed.");
  Serial.print ("Discovered ");
  Serial.print (count, DEC);
  Serial.println (" device(s).");
}  // end of setup

void loop() {}

Non ho davvero idea di cosa sto sbagliando...

Guarda, io da tempo uso QUESTA libreria, è ottima, compatta, veloce e personalizzabile ... fai un po' tu :wink:

Guglielmo

Salve gpb01, innanzitutto grazie mille per la risposta, comunque l'ho provata giusto ora: e...
Ha funzionato alla prima botta :o

Come libreria ad occhio mi pare abbia tutto quello che mi serva quindi direi che il problema è risolto, grazie ancora!

(Chissà qual'era il problema con le librerie adafruit... :confused: )