Différences entre versions de « ArduPi-I2C-Simple »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
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}}

Version du 6 avril 2013 à 21:07


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Introduction

Cet exemple est certes rudimentaire mais il met en place tous les éléments nécessaires à la communication I2C structurée entre un Raspberry Pi et un Arduino.

Dans l'exemple suivant:

  • Raspberry Pi est le MASTER WRITER
    Pi est donc le maître de la communication envoyant ses instructions.
  • Arduino est le SLAVE LISTENER
    Il attend donc les instructions envoyée sur le bus 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.

Montage

Nous utilisons ici le montage général décrit dans ce tutoriel.


Ecrit par Meurisse D. pour mchobby.be

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.