Connecter des Arduino ensembles - Un tutoriel I2C pour Arduino

Nous venons de terminer un Tutoriel en Français sur I2C accessible sur notre Wiki.
Voici quelque-unes des informations que nous avons collectés dans notre tutoriel.

Arduino supporte le protocole I2C (Inter Integrated Circuit)... aussi appelé protocole 2 fils.

Ce dernier permet d'établir des connexions asynchrones entre plusieurs composants intelligent pour partager des informations via un "bus commun".

Si ce protocole est utilisé pour permettre à un Arduino de communiquer avec des senseurs (un réseau de senseur), il permet aussi à des Arduino de communiquer directement ensembles... ou de communiquer avec un système plus évolué tel d'un Raspberry Pi.
Connexion entre Arduino via le bus I2C


Le maître et les esclaves
Sur un bus I2C, il y a un Maître et plusieurs Esclaves. Le maître gère la communication sur le bus et interroge les différents esclave.

Les esclaves n'ont droit a aucune initiative de communication, il doivent simplement attendre une requête en provenance du maître.

Ce concept est plus largement détaillé dans notre tutoriel.

Le concept "Master Reader"
Le "maître lit".
Dans ce concept, le maître se connecte sur un esclave de son choix et envoi une commande/demande à l'esclave pour recevoir de l'information
Ce concept est pratique pour collecter les informations de différents senseurs.
Source: Tutoriel I2C sur le Wiki de MCHobby

Pour être précis, le nom complet de ce concept est "Master Reader/Slave Sender" (le maître lit et les esclaves envoient/parlent) .


Le concept "Master Writer"
Le "maître écrit".
Dans ce concept, le maître écrit/envoi des informations vers de multiples esclaves. Ce concept est bien pratique pour commander différents actionneurs ou répartir des ordres vers les différents éléments physiques (comme, par exemple, les servos moteurs I2C d'un robots).

Pour être précis, le nom complet de ce concept est "Master Writer/Slave Receiver".

Raccordement I2C
Brochage I2C
Le Bus I2C utilise les broches A4 et A5 sur une Arduino Uno. Il suffit de raccorder les broches A4 ensemble et A4 ensemble (et partager la même masse) pour constituer le Bus I2C.

Notez que ces broches ne sont pas identiques pour toutes les plateformes, en voici un résumé.

Arduino Uno
  • SDA sur la broche I2C Data: Pin A4
  • SCL sur la broche I2C Clock: Pin A5
Arduino Mega
  • SDA sur la broche I2C Data: Pin 20
  • SCL sur la broche I2C Clock: Pin21
Arduino Leonardo
  • SDA sur la broche I2C Data: Pin Digital 1
  • SCL sur la broche I2C Clock: Pin Digital 3
Deux Arduino Uno sur un Bus I2C
Voici comment raccorder deux Arduino sur un Bus I2C.
Bus I2C entre deux Arduino Uno
Cliquer pour Agrandir.
Le code
Vous trouverez tous les exemples (avec commentaire en français) relatif à cet sur notre wiki.

Communiquer sur un bus I2C réclame un code avec un minimum d'explication, c'est pour cela que nous n'avons pas copier/coller ce dernier dans l'article.

Ces codes d'exemple sont accessibles sur GitHub et également disponible sur notre wiki.

Ressources