Ligne 1 : |
Ligne 1 : |
| {{Arduino-I2C-Intro-NAV}} | | {{Arduino-I2C-Intro-NAV}} |
| + | |
| + | == Programme "Master Reader" == |
| + | |
| + | Comme précisé plus avant dans la documentaiton en "Master Reader", le Maître interroge un esclave et attend une réponse de la part de ce dernier. |
| + | |
| + | === Programme du Maître === |
| + | Voici le programme issu de l'article [http://arduino.cc/en/Tutorial/MasterReader "Arduino - MasterReader" sur Arduino.cc]. |
| + | |
| + | <nowiki>// Librairie Wire - Master Reader (Maitre Lit) |
| + | // *** Programme pour le Maître - Le maître Lit *** |
| + | // |
| + | // par Nicholas Zambetti <http://www.zambetti.com> |
| + | // Traduction par MCHobby.be <http://www.mchobby.be> |
| + | // |
| + | // Démontre l'usage de la librairie Wire. |
| + | // Lectures de données depuis un périphérique I2C/TWI esclave. |
| + | // |
| + | // A utiliser avec le programme esclave de cet exemple. |
| + | // |
| + | // Crée le 29 mars 2006 |
| + | // Traduit le 9 mars 2013 (MCHobby) |
| + | // |
| + | // This example code is in the public domain. |
| + | // Ce code d'exemple fait partie du domaine public. |
| + | |
| + | #include <Wire.h> |
| + | |
| + | void setup() |
| + | { |
| + | Wire.begin(); // joindre le bus i2c (adresse est optionnelle pour un maître) |
| + | Serial.begin(9600); // démarré une communication série |
| + | } |
| + | |
| + | void loop() |
| + | { |
| + | Wire.requestFrom(2, 6); // lecture de 6 octets (bytes) depuis l'esclave #2 |
| + | |
| + | while(Wire.available()) // l'esclave pourrait envoyer moins de données qu'attendu |
| + | { |
| + | char c = Wire.read(); // Reception de l'octet (byte) comme caractère |
| + | Serial.print(c); // Affichage du caractère. |
| + | } |
| + | |
| + | delay(500); // Attendre une demi seconde. |
| + | }</nowiki> |
| + | |
| + | === Programme de l'esclave === |
| + | Voici le programme issu de l'article [http://arduino.cc/en/Tutorial/MasterReader "Arduino - MasterReader" sur Arduino.cc]. |
| + | |
| + | <nowiki>// Librairie Wire - Master Reader (Maitre Lit) |
| + | // *** Programme pour l' Esclave - L'esclave écrit *** |
| + | // |
| + | // par Nicholas Zambetti <http://www.zambetti.com> |
| + | // Traduction par MCHobby.be <http://www.mchobby.be> |
| + | // |
| + | // Démontre l'usage de la librairie Wire. |
| + | // Envoi des données sur le bus i2c en tant qu'esclave. |
| + | // |
| + | // A utiliser avec le programme Maître de cet exemple. |
| + | // |
| + | // Crée le 29 mars 2006 |
| + | // Traduit le 9 mars 2013 (MCHobby) |
| + | // |
| + | // This example code is in the public domain. |
| + | // Ce code d'exemple fait partie du domaine public. |
| + | |
| + | |
| + | #include <Wire.h> |
| + | |
| + | void setup() |
| + | { |
| + | Wire.begin(2); // Joindre le bus i2c avec l'adresse #2 |
| + | Wire.onRequest(requestEvent); // enregistrer l'événement (lorsqu'une demande arrive) |
| + | } |
| + | |
| + | void loop() |
| + | { |
| + | delay(100); // Attendre 100ms |
| + | } |
| + | |
| + | // Fonction qui est exécutée lorsque des données sont demandées par le Maître. |
| + | // Cette fonction est enregistrée comme une événement ("event" en anglais), voir la fonction setup() |
| + | void requestEvent() |
| + | { |
| + | Wire.write("hello "); // Répondre avec un message de 6 octets (bytes) |
| + | // comme attendu par le maître. |
| + | }</nowiki> |
| + | |
| + | === En savoir plus === |
| + | L'article [http://arduino.cc/en/Tutorial/MasterReader "Arduino - MasterReader" sur Arduino.cc] vous propose plus d'informations. |
| + | Vous y trouverez en autre la description des fonctions: |
| + | * [http://arduino.cc/en/Reference/WireBegin Wire.begin()] |
| + | * [http://arduino.cc/en/Reference/WireRequestFrom Wire.RequestFrom()] |
| + | * [http://arduino.cc/en/Reference/WireReceive Wire.receive()] '''maintenant nommée write()''' |
| + | * [http://arduino.cc/en/Reference/WireSend Wire.send()] '''maintenant nommée read()''' |
| + | * [http://arduino.cc/en/Reference/WireOnRequest Wire.onRequest()] |
| | | |
| {{Arduino-I2C-Intro-TRAILER}} | | {{Arduino-I2C-Intro-TRAILER}} |