Ligne 60 : |
Ligne 60 : |
| | | |
| Si vous n'avez qu'une seule alimentation pour vos deux Arduinos, vous pouvez connecter la sortie 5V de l'Arduino Maître sur la broche VIN de l'Arduino esclave. | | Si vous n'avez qu'une seule alimentation pour vos deux Arduinos, vous pouvez connecter la sortie 5V de l'Arduino Maître sur la broche VIN de l'Arduino esclave. |
− |
| |
− | == 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}} |