Bonjour,
Je me permets de poster un message car il y a un truc que je ne comprends pas....
Mon but est simple:
j'envoie un message par exemple ("1") pour lancer l'alerte.
-L'esclave reçoit le message et si c'est ("1") il envoie son "etat" .
Cependant, l'Arduino reste bloqué, c'est à dire que je ne vois pas "envoie" .
Donc je pense qu'il n'arrive pas à envoyer le message mais je ne sais pas pourquoi
Merci pour votre réponse rapide, maintenant, cela fonctionne, merci
-Mais maintenant, quand je le repasse en mode 'écoute' il ne se passe plus rien....
-Quand vous dites "anti-rebond" est-ce le fait de rajouter un delay après avoir appuyé sur l'interrupteur ?
voici le code amélioré:
//**************************************** recepteur
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#define CE_PIN 7
#define CSN_PIN 8
#include <avr/sleep.h>
const uint64_t adresse[] = {0x01, 0x02}; // adresse du canal de communication
RF24 radio(CE_PIN, CSN_PIN); // création de l'objet radio
int data[1];
int etat[1];
boolean flag = false;
void setup()
{
Serial.begin(9600);
etat[0] = 1;
pinMode (2, OUTPUT);
radio.begin();
radio.openReadingPipe(1, adresse[0]);
radio.startListening();
radio.maskIRQ(1, 1, 0);
attachInterrupt(1, interruptFunction, FALLING);//1 pour pin 3
}
void interruptFunction() {
flag = true;
}
void loop() {
if (flag == true) {
if ( radio.available() )
{
digitalWrite(2, HIGH);
radio.read( data, sizeof(data) );
Serial.print("recu =");
Serial.println(String(data[0]));
if (data[0] == 1) {
Serial.println("alerte recu");
}
digitalWrite(2, LOW);
}
radio.openWritingPipe(adresse[1]);
radio.write( etat, sizeof(etat) );
Serial.print("envoie");
delay(200);
radio.openReadingPipe(1, adresse[0]);
radio.startListening();
flag = false;
}
}
Je viens de me rendre compte qu'il y a des problèmes d'indentation (enfin de crochet).
Quand je téléverse ce code, la DEL reste allumée, donc il bloque lors de l'envoie du message...étrange
Merci, en effet, il me manquait des bouts...
IL reste un petit problème, je ne reçois pas en retour le message....Voyez vous pourquoi ?
Nouveau code EMMETTEUR
D'accord, j'ai rectifié cela.
Est-il nécessaire de mettre un delay avant de repasser en mode 'écoute' ? Car quand je l'ajoute, de temps en temps j'ai une réponse (je reçois l'etat : 1). (voir ci dessous)
Mais pas à tous les coups....
A oui effectivement, j'étais sans doute trop près de l'émetteur. Merci à vous !
D'ailleurs, si je veux relier en série mon Arduino nano à un esp32 il faut bien un convertisseur de niveau bilinéaire 5v 3.3v ?
Bonne soirée