Nel post di oggi vedremo uno sketch che ci permette di Trovare indirizzo I2C di un modulo con Arduino, utile quando non si conosce o non si riesce a trovare l’indirizzo di un qualsiasi modulo.
Trovare indirizzo I2C di un modulo con Arduino
Sketch I2C Scanner
L’Inter Integrated Circuit (I2C) è un protocollo di comunicazione seriale che utilizza solo due cavi. Solitamente ai moduli viene assegnato, dal costruttore, un indirizzo di comunicazione. Alcuni moduli permettono anche di poter modificare l’indirizzo I2C.
Se il nostro modulo non permette di configurare l’indirizzo, o non si conosce quello assegnato di default, possiamo ricavarlo collegandolo ad una board Arduino e utilizzando lo sketch seguente (trovato su https://playground.arduino/):
Lo sketch, una volta collegato il modulo di cui si vuole trovare l’indirizzo I2C, non fa altro che scansionare tutti gli indirizzi possibili fino a quando non trova quello relativo al modulo connesso.
Esempio di utilizzo
Per vedere in pratica come funziona lo sketch ho realizzato un circuito utilizzato i seguenti materiali:
- Arduino Nano ATmega328P CH340G: (Link Amazon – Link eBay)
- Display LCD I2C 0.96 128×64 Pixel SSD1306: (Link Amazon – Link eBay)
- Breadboard: basetta forata sperimentale (Link Amazon – Link eBay)
- Jumper Wire: cavetti elettrici (Link Amazon – Link eBay)
- Arduino IDE: ambiente di sviluppo (per l’installazione e la configurazione vi rimando a questi post)
Effettuiamo i collegamenti tra il modulo I2C (il Display nel mio caso) e il micro-controllore come mostrato nella tabella seguente:
COLLEGAMENTO PIEDINI | ||
---|---|---|
Arduino Nano | I2C LCD SSD1306 | Jumper Wire |
3.3 | + | Rosso |
GND | – | Nero |
A4 | SDA | Giallo |
A5 | SCL | Verde |
Questo il circuito realizzato con Fritzing
Configurazione IDE e test dello sketch I2C_scanner
Ora colleghiamo la board Arduino al PC, tramite la porta USB, e configuriamola dal pannello Strumenti dell’IDE in questo modo
- Scheda -> Arduino Nano
- Processore -> ATmega328P
- Porta -> COM3 (N.B. la porta potrebbe essere differente)
Da Arduino IDE creiamo un nuovo file, incolliamo lo sketch che abbiamo visto poco prima, e carichiamolo cliccando sul pulsante Carica (contrassegnato da una freccia rivolta verso destra)
Se non ci sono errori e lo sketch viene caricato correttamente, aprendo il Monitor Seriale da Strumenti -> Monitor Seriale vedremo visualizzato l’indirizzo I2C rilevato dal modulo
Per maggiori informazioni sul protocollo I2C vi rimando alla pagina di wikipedia a questo link.
A presto 😉