Vous êtes sur la page 1sur 11

Arduino : I2C

Serial Peripheral Interface


• Une liaison SPI est un bus
de données série
synchrone ( Motorola,
1980) qui opère en mode
full-duplex.
• Les circuits
communiquent selon un
schéma maître-esclaves,
où le maître contrôle la
communication.
• Plusieurs esclaves peuvent coexister sur
un même bus, dans ce cas, la sélection
du destinataire se fait par une ligne
dédiée entre le maître et l'esclave
appelée Slave Select (SS).
2
Inter-Integrated Circuit
• C’ est un bus informatique conçu par Philips pour
les applications de domotique et d’électronique
domestique, etc.

• Il existe d’innombrables périphériques exploitant


ce bus, il est même implémentable par logiciel
dans n’importe quel microcontrôleur. Le poids
de l’industrie de l’électronique grand public a
permis des prix très bas grâce à ces nombreux
composants.

• Ce bus porte parfois le nom de TWI (Two Wire


Interface) ou TWSI (Two Wire Serial Interface)
chez certains constructeurs.

I2C est un bus série synchrone bidirectionnel half-duplex, où plusieurs


équipements, maîtres ou esclaves, peuvent être connectés au bus.

3
Architecture
• Les échanges ont toujours lieu entre un seul maître et un (ou tous les)
esclave(s), toujours à l'initiative du maître (jamais de maître à maître ou
d'esclave à esclave). Cependant, rien n'empêche un composant de passer
du statut de maître à esclave et réciproquement.
• La connexion est réalisée par l'intermédiaire de deux lignes :
– SDA (Serial Data Line) : ligne de données bidirectionnelle,
– SCL (Serial Clock Line) : ligne d'horloge de synchronisation bidirectionnelle.
• Il ne faut également pas oublier la masse qui doit être commune aux
équipements.
• Le nombre maximal 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

4
Architecture

5
I2C sur arduino
• Les pins nécessaire pour
l’I2C sont disponibles au
niveau de l’A4/A5 ou à
côté de la pin AEF.
• C’est le même bus avec
deux pins différents.

6
Wire.h
• L’arduino utilise Wire.h pour mettre en
« marche » la communication I2C.

7
Adresse d’un composant
• Certains
comopsants
donne le choix
de l’adresse de
cette façon.

8
I2C Scanner
• Dans le doute, le
code
I2C_Finder_address
vous permet d’avoir
l’adresse du
composant:

9
Application LCD
• L’exemple le plus
classique, c’est
l’écran LCD (type
16x2).
• Il nous faut le
module I2C pour
le brancher sru
une carte
arduino.

10
Câblage

11

Vous aimerez peut-être aussi