0% ont trouvé ce document utile (0 vote)
133 vues3 pages

Arduino I2C avec Wire.h pour TSTI2D

Transféré par

M'hamed El Azzaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues3 pages

Arduino I2C avec Wire.h pour TSTI2D

Transféré par

M'hamed El Azzaoui
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Lycée Eugène IONESCO TSTI2D - SIN

STI2D - Système d'Information et Numérique


SIN TD TP Cours Synthèse Devoir Evaluation Projet Document ressource

ARDUINO : GESTION DE LA LIAISON I2C


BIBLIOTHEQUE WIRE

Les microcontrôleurs Atmel ATmega possèdent une interface I2C. Les lignes SDA et SCL sont accessibles
respectivement sur les broches A4 et A5 de la carte « Arduino Uno ».

La gestion de cette interface est réalisée par l’intermédiaire des fonctions de la bibliothèque « Wire.h ».
Pour importer cette bibliothèque, utiliser le menu « Croquis/Important bibliothèque…/Wire » :

Fonction « Wire.begin »
Wire.begin() ;

Cette fonction initialise le bus I2C. Elle doit être appelée une fois avant toute utilisation des autres
fonctions de la bibliothèque. La carte Arduino est alors raccordée en tant que maitre.

Dans le cas où la carte Arduino doit fonctionner en tant qu’esclave, cette fonction permet alors
également de spécifier l’adresse de la carte en utilisant la syntaxe suivante :
Wire.begin(Adresse) ;

Arduino : Gestion de la liaison I2C – Bibliothèque « Wire.h » Page n°1/3


Lycée Eugène IONESCO TSTI2D - SIN

Fonction « Wire.beginTransmission »
Wire.beginTransmission(Adresse) ;

Cette fonction permet initialiser la transmission à destination de l’esclave dont l’adresse est passée en
paramètre.

Cette fonction génère la condition de start et transmet l’adresse de l’esclave désigné. Elle peut donc
être suivie par l’envoi de données.

Fonction « Wire.write»
Pour le maître, cette fonction permet l’envoi d’une ou plusieurs données vers l’esclave.Pour l’esclave
cette fonction permet l’envoi des données préalablement demandées par le maître.
Wire.write(Valeur) ;

La variable « Valeur » est du type byte. Il peut s’agir du code ASCII d’un caractère.

Wire.write(Chaîne de caractères) ;

La variable « Chaîne de caractères » est du type byte ou bien une chaîne de caractères entre double
guillemets.
Wire.write(Donnée, Nombre) ;

La variable « Donnée » est du type byte et il s’agit d’un pointeur vers un tableau et la variable
« Nombre » également du type byteindique le nombre d’éléments du tableau.

Fonction « Wire.requestFrom»
Wire.requestFrom(Adresse,Nombre) ;

Cette fonction permet au maître de demander des données à un esclave.

La variable « Adresse » est l’adresse de l’esclave et la variable « Nombre » indique le nombre d’octets
demandés.

Fonction « Wire.read»
donnee = Wire.read() ;

Cette fonction permet à l’esclave de lire un octet transmis par le maîtreet au maître de lire un octet
transmis par l’esclave après une fonction « Wire.request ».

La variable « donnee » est au moins de type byte et contient le caractère lu sur le bus I2C.

Arduino : Gestion de la liaison I2C – Bibliothèque « Wire.h » Page n°2/3


Lycée Eugène IONESCO TSTI2D - SIN

Fonction « Wire.available»
nombre = Wire.available() ;

Cette fonction permet de connaître le nombre d’octets disponibles à lecture après l’appel de la
fonction « Wire.resquestFrom ». L’appel de cette fonction n’est pas obligatoire

La variable « nombre » est au moins de type byte et contient le nombre d’octets disponibles.

Fonction « Wire.receive»
code = Wire.endTransmission() ;

Cette fonction permet de mettre fin à une séquence de transmission et renvoyer une variable
« code » de type byte dont la valeur dépend de l’état de la transmission :
 0 : la transmission s’est bien déroulée ;
 1 : le nombre de données à transmettre est beaucoup trop grand pour contenir dans la
mémoire tampon ;
 2 : Indique qu’il n’y a pas eu d’acquittement suite à l’envoi de l’adresse ;
 3 : Indique qu’il n’y a pas eu d’acquittement suite à l’envoi d’une donnée ;
 4 : Indique une erreur d’un autre type.

Arduino : Gestion de la liaison I2C – Bibliothèque « Wire.h » Page n°3/3

Vous aimerez peut-être aussi