Ligne 20 : |
Ligne 20 : |
| 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 ;-) | | 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> | + | <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> | | </nowiki> |
| {{ArduPi-I2C-TRAILER}} | | {{ArduPi-I2C-TRAILER}} |