Comment utiliser les appareils I2C avec Arduino?

12

J'ai quelques composants I2C utiles, comme un expandeur de port 16 bits (MCP23017), que j'aimerais utiliser dans divers projets.

Que dois-je faire pour que cela fonctionne avec Arduino? Cela fonctionnera-t-il avec n'importe quel Arduino, ou ai-je besoin d'une carte ou d'un blindage spécifique?

Peter Bloomfield
la source

Réponses:

9

Arduino a la Wire Library qui communique avec I2C.

Cette bibliothèque vous permet de communiquer avec des périphériques I2C / TWI. Sur les cartes Arduino avec la disposition R3 (brochage 1.0), le SDA (ligne de données) et SCL (ligne d'horloge) sont sur les en-têtes de broches près de la broche AREF. L'Arduino Due a deux interfaces I2C / TWI SDA1 et SCL1 sont proches de la broche AREF et l'autre est sur les broches 20 et 21. Comme référence, le tableau ci-dessous montre où les broches TWI sont situées sur diverses cartes Arduino.

Broches de la carte I2C / TWI

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

Vous pouvez jeter un oeil à ces exemples.

Comme @TheDoctor a dit:

Les lignes de données I2C ont toutes deux besoin de résistances à 3,3 V. Cela les empêche de dériver s'ils sont désactivés. La valeur de la résistance Andy devrait fonctionner, mais il est recommandé d'en utiliser une entre 10k ohm et 47k ohm.

Butzke
la source
1
N'oubliez pas les résistances de pullup sur les lignes I2C
TheDoctor
1
Pour développer cela, les lignes de données i2c ont toutes deux besoin de résistances à 5v. Cela les empêche de dériver s'ils sont désactivés. La valeur de la résistance Andy devrait fonctionner, mais il est recommandé d'en utiliser une entre 10k ohm et 47k ohm
TheDoctor
Il faut dire que si vous utilisez des pullups 5V sur l'Arduino due (qui a été nommé dans la réponse) vous avez endommagé la carte. L'Arduino Due utilise une logique 3,3 V et il n'a PAS besoin de tractions 5 V, également SDA et SCL sont déjà relevés en interne par la carte.
John
3

Des boucliers supplémentaires ne sont pas nécessaires.

Vous n'avez besoin que de la bibliothèque de fils et de quelques fils pour connecter l'appareil à SDA et SCL .

La position de ces broches est différente sur les différents Arduinos, jetez un œil ici .

Klaus-Dieter Warzecha
la source
2

Pour les futurs lecteurs: utilisez la bibliothèque Adafruit_MCP23017.

Gordon
la source