Come uso i dispositivi I2C con Arduino?


12

Ho alcuni utili componenti I2C, come un espansore di porte a 16 bit (MCP23017), che mi piacerebbe usare in vari progetti.

Cosa devo fare per far funzionare questi con Arduino? Funzionerà con qualsiasi Arduino o ho bisogno di una scheda o uno scudo specifici?

Risposte:


9

Arduino ha la Wire Library che comunica con I2C.

Questa libreria consente di comunicare con i dispositivi I2C / TWI. Sulle schede Arduino con layout R3 (pinout 1.0), SDA (linea dati) e SCL (linea di clock) si trovano sulle intestazioni dei pin vicino al pin AREF. Arduino Due ha due interfacce I2C / TWI SDA1 e SCL1 sono vicine al pin AREF e quella aggiuntiva si trova sui pin 20 e 21. Come riferimento la tabella seguente mostra dove si trovano i pin TWI su varie schede Arduino.

Pin I2C / TWI della scheda

  • Uno, Ethernet A4 (SDA), A5 (SCL)
  • Mega2560 20 (SDA), 21 (SCL)
  • Leonardo 2 (SDA), 3 (SCL)
  • Scadenza 20 (SDA), 21 (SCL), SDA1, SCL1

Puoi dare un'occhiata a questo esempio.

Come ha detto @TheDoctor:

Le linee dati I2C necessitano entrambe di resistori a 3,3V. Questo impedisce loro di andare alla deriva se sono disabilitati. Il valore della resistenza andy dovrebbe funzionare, ma si consiglia di usarne uno tra 10k ohm e 47k ohm.


1
Non dimenticare le resistenze pullup sulle linee I2C
TheDoctor,

1
Per espandersi, le linee dati i2c necessitano entrambe di resistori a 5v. Questo impedisce loro di andare alla deriva se sono disabilitati. Il valore della resistenza andy dovrebbe funzionare, ma si consiglia di usarne uno tra 10k ohm e 47k ohm
TheDoctor,

Va detto che se usi i pullup 5V su Arduino (che è stato nominato nella risposta) hai danneggiato la scheda. Arduino Due utilizza una logica da 3,3 V e NON ha bisogno di pullup da 5 V, anche SDA e SCL sono già estratti internamente dalla scheda.
Giovanni,

3

Non sono necessari scudi aggiuntivi.

Hai solo bisogno della libreria Wire e di un paio di cavi per connettere il dispositivo a SDA e SCL .

La posizione di questi pin è diversa sui vari Arduinos, per favore dai un'occhiata qui .


2

Per i lettori futuri: utilizzare la libreria Adafruit_MCP23017.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.