OLED 0.96″ – I2C Scanner Shield

OLED 0.96″ – I2C Scanner Shield

A cosa dovrebbe servire questa shield?

A poco o a qualcosa, dipende.

Il motivo principale per cui ho voluto realizzare questa semplicissima shield per Arduino Uno, è per rilevare l’indirizzo esadecimale dei piccoli display OLED 0.96″ che utilizzo spesso in molti miei progetti. In alcuni OLED può essere impresso nella serigrafia posteriore dello stampato del display, ma in molti casi non è indicato da nessuna parte.

Ecco che nasce l’esigenza di questo semplice PCB.  Dato che la connessione Arduino-OLED è estremamente semplice, non sarebbe nemmeno necessario, ma ho voluto realizzarlo per avere sotto mano un qualcosa di più carino e pulito possibile, anzichè utilizzare una piccola breadboard e cavetti dupont.

Questo è lo schema elettrico:

Per trovare l’indirizzo ci viene in aiuto un piccolo codice chiamato I2C scanner. Esso cercherà gli indirizzi I2C dei dispositivi connessi tramite I2C all’Arduino e li invierà tramite seriale.

Apriamo l’Arduino IDE ed incolliamo e carichiamo il codice dell’I2C scanner sul nostro Arduino UNO:

#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println(“\nI2C Scanner”);
}
void loop()
{
byte error, address;
int nDevices;
Serial.println(“Scanning…”);
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print(“I2C device found at address 0x”);
if (address<16)
Serial.print(“0″);
Serial.print(address,HEX);
Serial.println(” !”);
nDevices++;
}
else if (error==4)
{
Serial.print(“Unknown error at address 0x”);
if (address<16)
Serial.print(“0”);
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println(“No I2C devices found\n”);
else
Serial.println(“done\n”);
delay(5000); // wait 5 seconds for next scan
}

 

Una volta terminato, apriamo il monitor seriale dove ci verrà visualizzato un risultato del genere:

I2C Scanner
Scanning…
I2C device found at address 0x3C !
done
In questo caso, l’indirizzo del display è “0x3C”

 

Tutto qui. A breve pubblicherò anche una altro PCB per poter invertire i due PIN dell’LCD dell’alimentazione e della massa. Stay Tuned!

 

LINK:

 

 

 

 

 

237 Visualizzazioni totali 3 Visualizzazioni odierne

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *