Arduino I2C Intro

De MCHobby - Wiki
Révision datée du 9 mars 2013 à 17:32 par Admin (discussion | contributions) (→‎Bus SPI)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche

Introduction

Le "bus I2C" est un terme qui peut intimidé pourtant, il n'y a absolument pas de quoi s'inquiéter.

Il est vraiment très simple a exploiter, ne nécessite que deux fils et on rencontre de nombreux périphériques et senseurs I2C.

Arduino et Raspberry Pi supportent tous deux le Bus I2C... de quoi ravir les curieux.

Cette introduction fera la part belle à Arduino... mais il n'est pas exclus que ce tutoriel s'étende jusqu'à interconnecter un Arduino et un Pi par le bus I2C.

Note: Pour Raspberry Pi, nous disposons aussi d'un tutoriel sur le GPIO introduisant l'utilisation de son bus I2C.

Bus I2C en quelques mots

I2C est la contraction de "Inter Integrated Circuit".

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

Si ce bus 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.

  • Arduino dispose d'une librairie pour I2C, ce qui rend la mise en oeuvre très facile.
  • Principalement développé pour la Domotique et l'électronique domestique, ce bus est très populaire et donc utilisé par de nombreux composants. Les PC, lecteurs DVD, télévisions, etc disposent généralement d'un tel bus.
  • Le protocole I2C ne requière que 3 fils pour fonctionner et peut être implémenté sur n'importe quel microcontroleur.
  • La longueur du bus est de l'ordre de 1 mètre... mais il est possible de l'étendre jusqu'à 30 mètres à l'aide d'un simple composant nommé "I2C extender".
  • Il dispose d'un mécanisme d'adressage à la fois simple et efficace permettant à plusieurs senseurs de fonctionner sur un seul bus.
  • Supporte plusieurs maître (Attention: dans ce cas il y a donc risque de collisions).

Quelques documents sur le net:

Bus SPI

Bien que n'entrant pas dans le cadre de ce tutoriel, Arduino supporte également le bus SPI. Il ne faut pas confondre le bus SPI avec le bus I2C.

SPI signifie "Serial Peripheral Interface".

SPI est également simple à mettre en oeuvre mais nécessite plus de broches/connexion que le bus I2C.

Il est exploité par de nombreux composants (circuit intégrés) permettant d'étendre le nombre d'entrée/sorties digitales, de lectures analogies supplémentaires, etc. c'est aussi le bus utilisé par la célèbre interface PiFace.

  • Le bus SPI est Full Duplex (communique dans les deux sens en même temps) et basé sur une communication maître-esclave.
  • Le bus SPI supporte plusieurs esclaves mais un seul peut communiquer à la fois avec le maître (donc logique de sélection!)
  • Documentation "Serial Peripheral Interface" sur Wikipédia (fr)

Ce tutoriel n'aborde pas le bus SPI... mais il est important de savoir (1) qu'il existe et (2) que ce n'est pas le bus I2C.


Réalisé par Meurisse D. pour MCHobby.be.

Contient également quelques images et exemples d'Arduino.cc, droits et copyrights sur ces ressources restant bien évidement à Arduino.cc.

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.