Ligne 1 : |
Ligne 1 : |
| {{Arduino-I2C-Intro-NAV}} | | {{Arduino-I2C-Intro-NAV}} |
| | | |
− | == Programme "Master Reader" == | + | == Programme "Master Writer" == |
| | | |
| {{bloc-etroit | text = Comme précisé plus avant dans la documentation, en "Master Writer", le Maître envoi un message à esclave et n'attend aucune réponse en retour.}} | | {{bloc-etroit | text = Comme précisé plus avant dans la documentation, en "Master Writer", le Maître envoi un message à esclave et n'attend aucune réponse en retour.}} |
Ligne 52 : |
Ligne 52 : |
| Et voici le programme correspondant provenant de l'exemple. | | Et voici le programme correspondant provenant de l'exemple. |
| | | |
− | <nowiki> | + | <nowiki>// Librairie Wire - Master Writer (Maitre ecrit) |
| + | // par Nicholas Zambetti <http://www.zambetti.com> |
| + | // Traduction par MCHobby.be <http://www.mchobby.be> |
| + | // Montage & tutoriel détaillé disponibles sur |
| + | // http://mchobby.be/wiki/index.php?title=Arduino_I2C_Intro-Montage |
| + | // |
| + | // Démontre l'usage de la librairie Wire. |
| + | // Ecrit des données vers un périphérique esclave I2C/TWI |
| + | // |
| + | // 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(4); // Joindre le Bus I2C avec adresse #4 |
| + | Wire.onReceive(receiveEvent); // enregistrer l'événement (lorsqu'une demande arrive) |
| + | Serial.begin(9600); // Démarrer une communication série |
| + | } |
| | | |
− | </nowiki> | + | void loop() |
| + | { |
| + | delay(100); |
| + | } |
| + | |
| + | // Fonction qui est exécutée lorsque des données sont envoyées par le Maître. |
| + | // Cette fonction est enregistrée comme une événement ("event" en anglais), voir la fonction setup() |
| + | void receiveEvent(int howMany) |
| + | { |
| + | while(1 < Wire.available()) // Lire tous les octets sauf le dernier |
| + | { |
| + | char c = Wire.read(); // lecture de l'octet/byte comme caractère |
| + | Serial.print(c); // afficher le caractère |
| + | } |
| + | int x = Wire.read(); // lecture de l'octet/byte ignoré comme un entier |
| + | Serial.println(x); // Afficher la valeur numérique |
| + | }</nowiki> |
| | | |
| == Comment tester == | | == Comment tester == |
Ligne 90 : |
Ligne 130 : |
| | | |
| === Fonctionnement en quelques mots === | | === Fonctionnement en quelques mots === |
− | {{traduction}}
| |
| Le fonctionnement est relativement simple mais démontre très bien le concept "Master Reader". | | Le fonctionnement est relativement simple mais démontre très bien le concept "Master Reader". |
| | | |
− | # Le Maître réclame 6 octets (bytes) à l'esclave sur le bus I2C | + | # Le Maître envoi un message/commande de 6 octets (bytes, 5 octets/bytes de texte + 1 valeur numérique codée sur 1 octet/bytes) à l'esclave sur le bus I2C |
− | # L'esclave réponde "hello " sur le bus I2C | + | # L'esclave reçoit l'ordre sur le bus I2C |
− | # Le Maître renvoi les caractères (byte/octet) reçu sur le bus I2C vers le port série. | + | # L'esclave relaye l'ordre reçu vers le port série. |
| | | |
| == En savoir plus == | | == En savoir plus == |
Ligne 101 : |
Ligne 140 : |
| Vous y trouverez en autre la description des fonctions: | | Vous y trouverez en autre la description des fonctions: |
| * [http://arduino.cc/en/Reference/WireBegin Wire.begin()] | | * [http://arduino.cc/en/Reference/WireBegin Wire.begin()] |
− | * [http://arduino.cc/en/Reference/WireRequestFrom Wire.RequestFrom()] | + | * [http://arduino.cc/en/Reference/WireBeginTransmission Wire.beginTransmission()] |
− | * [http://arduino.cc/en/Reference/WireReceive Wire.receive()] '''maintenant nommée write()''' | + | * [http://arduino.cc/en/Reference/WireEndTransmission Wire.endTransmission()] |
− | * [http://arduino.cc/en/Reference/WireSend Wire.send()] '''maintenant nommée read()''' | + | * [http://arduino.cc/en/Reference/WireSend Wire.send()] '''maintenant nommée write()''' |
− | * [http://arduino.cc/en/Reference/WireOnRequest Wire.onRequest()] | + | * [http://arduino.cc/en/Reference/WireOnReceive Wire.OnReceive()] |
− | | + | * [http://arduino.cc/en/Reference/WireAvailable Wire.available()] |
| | | |
| {{Arduino-I2C-Intro-TRAILER}} | | {{Arduino-I2C-Intro-TRAILER}} |