Modifications

Sauter à la navigation Sauter à la recherche
2 018 octets supprimés ,  6 avril 2013 à 21:07
aucun résumé de modification
Ligne 10 : Ligne 10 :  
Dans cet exemple, le programme Arduino se content d'envoyer les informations reçues vers le Moniteur Série... ce qui permet d'espionner le processus de communication I2C.
 
Dans cet exemple, le programme Arduino se content d'envoyer les informations reçues vers le Moniteur Série... ce qui permet d'espionner le processus de communication I2C.
   −
== Arduino ==
+
== Montage ==
Commençons par le programme Arduino, c'est le plus simple.  
+
Nous utilisons ici le [[ArduPi-I2C-Montage|montage général]] décrit dans ce tutoriel.
   −
Comme déjà précisé, il reçoit des informations en provenance du Raspberry-Pi sur le bus I2C.
  −
  −
Il se contente simplement de le renvoyer vers le Moniteur Série d'Arduino. Nous pourrons par la suite analyser le contenu de l'information et ainsi parfaire notre connaissance.
  −
  −
=== Programme SlaveListener ===
  −
Voici le contenu du programme Arduino. N'oubliez pas d'ouvrir le moniteur série d'Arduino pour voir ce qui passe sur le bus ;-)
  −
  −
  <nowiki>// === ArduPi-I2C ================================================
  −
// Communication entre Arduino et Raspberry Pi via le BUS I2C
  −
// ===============================================================
  −
// Tutoriel: http://mchobby.be/wiki/index.php?title=ArduPi-I2C
  −
//
  −
// Programme Esclave qui Recoit les données données envoyées par Raspberry Pi
  −
// S'utilise avec le programme Arduino MasterWriter.py
  −
//
  −
// Ecrit par D. Meurisse pour MCHobby.be
  −
// www.mchobby.be - Vente de kit et composant Arduino et Raspberry Pi
  −
// Licence CC-BY-SA
  −
//
  −
// Basé sur l'exemple de Nicholas Zambetti <http://www.zambetti.com>
  −
//
  −
#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
  −
}
  −
  −
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)
  −
{
  −
  Serial.println("---- READING ---");
  −
  Serial.print("Number of Bytes: ");
  −
  Serial.println( 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>
   
{{ArduPi-I2C-TRAILER}}
 
{{ArduPi-I2C-TRAILER}}
29 917

modifications

Menu de navigation