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?

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.


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 .


2

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.