Facebook
From Lucachacha, 10 Months ago, written in C.
Embed
Download Paste or View Raw
Hits: 21
  1.  
  2. #include <SPI.h>
  3. #include <RF24.h>
  4.  
  5. #define pinCE   7             // On associe la broche "CE" du NRF24L01 à la sortie digitale D7 de l'arduino
  6. #define pinCSN  8             // On associe la broche "CSN" du NRF24L01 à la sortie digitale D8 de l'arduino
  7. #define tunnel  "PIPE1"       // On définit un "nom de tunnel" (5 caractères), pour pouvoir communiquer d'un NRF24 à l'autre
  8. # define pinBouton 5          // On associe la broche du bouton à la sortie digitale D5 de l'arduino
  9.  
  10. RF24 radio(pinCE, pinCSN);    // Instanciation du NRF24L01
  11.  
  12. const byte adresse[6] = tunnel;   // Mise au format "byte array" du nom du tunnel
  13. int OrdreFeu = 0;                 // Variable contenant la valeur que l'on envoie
  14.  
  15. int lastB=0;                      // dernière valeur du bouton
  16. int currentB=0;                   // valeur présente du bouton
  17. void setup() {
  18.   //Partie Serial
  19.   Serial.begin(9600);                 // on ouvre le port serial pour causer au pc
  20.  
  21.   //Partie NRF24
  22.   radio.begin();                      // Initialisation du module NRF24
  23.   radio.openWritingPipe(adresse);     // Ouverture du tunnel en ÉCRITURE, avec le "nom" qu'on lui a donné
  24.   radio.setPALevel(RF24_PA_MAX);      // Sélection d'un niveau "MINIMAL" pour communiquer (pas besoin d'une forte puissance, pour nos essais)
  25.   radio.setDataRate(RF24_250KBPS);    // Sélection de la fréquence
  26.   radio.stopListening();              // Arrêt de l'écoute du NRF24 (signifiant qu'on va émettre, et non recevoir, ici)
  27.  
  28.   //Partie bouton
  29.   pinMode(pinBouton, INPUT_PULLUP);   // On déclare le bouton
  30.   pinMode(LED_BUILTIN, OUTPUT);       //Puis la led
  31.   digitalWrite(LED_BUILTIN, LOW);     //et on coupe la led
  32.  
  33.   //debugging
  34.   Serial.println("setup...............check");
  35. }
  36.  
  37. void loop() {
  38.   // ******** Bouton ********
  39.  
  40.   currentB = digitalRead(pinBouton);
  41.   if ( currentB>lastB){
  42.     OrdreFeu = 1;
  43.   }
  44.   else {
  45.     OrdreFeu = 0;
  46.   }
  47.   lastB = currentB;
  48.  
  49.   /*//Serial.println(OrdreFeu);
  50.   if (digitalRead(pinBouton)==HIGH){
  51.    OrdreFeu = 0;
  52.    digitalWrite(LED_BUILTIN, LOW);
  53.   }
  54.   if (digitalRead(pinBouton)==LOW) {
  55.     OrdreFeu = 1;
  56.     digitalWrite(LED_BUILTIN, HIGH);
  57.   }
  58.   */
  59.   // ******** Envoi ********
  60.   radio.write(&OrdreFeu;, sizeof(OrdreFeu));     // Envoi de notre message
  61.   Serial.println(OrdreFeu);                       //ptit envoie de debug
  62.   delay(5);                                // … toutes les secondes !
  63. }