I2C, pour Inter Integrated Circuit , est un protocole de communication crée à la base par Philips en 1982 pour standardiser l’échange de données entre différents circuits intégrés d’un même système. Elle est aujourd’hui assurée par le fabricant NXP, spin-off de l’entreprise.
Ce protocole est basé sur un bus de communication sériel, ce qui signifie qu’un seul câble est utilisé pour le transfert de données.
En pratique, le bus I2C est constitué de deux câbles, un donc pour les données, nommé SDA (Serial Data) et l’autre faisant office d’horloge pour déterminer la fréquence de la communication, nommé SCL (Serial Clock).
Le nombre maximum d'équipements est limité par le nombre d'adresses disponibles, 7 bits d'adressage et un bit R/W (lecture ou écriture), soit 128 périphériques, mais il dépend également de la capacité (CB) du bus (dont dépend la vitesse maximale du bus).
Il faut savoir que des adresses sont réservées pour diffuser des messages en broadcast et que de nombreuses adresses sont déjà attribuées par les fabricants ce qui limite grandement le nombre d'équipements (une variante d'adressage sur 10 bits existe également).
Temps et vitesses
Il existe cinq vitesses de transmission :
Cette librairie vous permet de communiquer avec les composants utilisant le protocole I2C / TWI (communication série sur 2 fils).
Pour plus de détails sur le bus I2C : http://fr.wikipedia.org/wiki/I%C2%B2C
Sur la plupart des cartes Arduino :
Sur la carte Arduino Mega :
Fonctions d'initialisation
Fonctions “mode maître”
Fonctions “mode esclave”
Fonctions obsolètes
Principe d'utilisation
Pour inclure la librairie Wire dans un programme, on ajoutera au début du programme la ligne suivante :
#include <Wire.h> [$[Get Code]]
Pour ce faire, le plus simple est d'utiliser le menu du logiciel Arduino Programme > Importer Librairie > Nom_librairie
Voir également l'instruction #include
Note
Il existe deux versions d'adresses I2C en 7 et en 8 bits.
La librairie Wire utilise les adresses 7 bits. Si vous avez une fiche technique ou un exemple de code qui utilise des adresses 8 bits, vous devrez éliminer le bit de poids faible ( en décalant la valeur de l'adresse d'un bit vers la droite - voir notamment l'opérateur de décalage à droite »), pour obtenir une adresse comprise entre 0 et 127.