Modifications

Sauter à la navigation Sauter à la recherche
1 577 octets ajoutés ,  4 avril 2013 à 21:03
aucun résumé de modification
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}}
29 917

modifications

Menu de navigation