IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Auto acknowledge sur radio nRF24L01+


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut Auto acknowledge sur radio nRF24L01+
    Bonjour,

    1. J'ai un transmetteur avec un Arduino Pro Mini 5V et une radio nRF24L01+.
    J'utilise le code suivant pour initialiser la radio:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
       radio.begin();
        radio.setChannel(125);
        radio.setPALevel(RF24_PA_LOW);
        radio.setDataRate(RF24_1MBPS);
        radio.setAddressWidth(5);
        radio.setAutoAck(true);
        radio.setRetries(5, 3);
        radio.setPayloadSize(sizeof(radio_data));
        radio.openWritingPipe(address);
        radio.stopListening();
    2. J'ai aussi un récepteur avec un ESP32 et une radio nRF24L01+.
    J'utilise le code suivant pour initialiser la radio :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        radio.begin();
        radio.setChannel(125);
        radio.setPALevel(RF24_PA_LOW);
        radio.setDataRate(RF24_1MBPS);
        radio.setAddressWidth(5);
        radio.setAutoAck(true);
        radio.setRetries(5, 3);
        radio.setPayloadSize(sizeof(radio_data));
        radio.openReadingPipe(0, address);
        radio.startListening();
    3. Quand je veux transmettre des données (depuis le transmetteur), j'appelle la fonction write.
    Je vérifie le booléen de retour de la fonction qui doit m'indiquer si la communication a réussi entre le transmetteur et le récepteur. J'obtiens toujours la valeur false qui indique une erreur d’acquittement.

    Qu'est ce que je fais de travers dans l'initialisation, ou que je ne fais pas dans l’émission des données ?

    Merci pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 912
    Par défaut
    sans voir tout le code, difficile de se prononcer.

    L'auto-ack est actif par défaut.

    Est-ce que le montage est fonctionnel? ==> les exemples de la bibliothèque fonctionnent-ils?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Par défaut
    Le transmetteur ne fait qu'appeler la fonction write à partir de la fonction loop() de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F_send_radio_ok = radio.write(&radio_data, sizeof(radio_data));
    Le récepteur appelle la fonction read à partir de la fonction loop() de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (radio.available())
        {
            radio.read(&radio_data, sizeof(radio_data));
    Il s'avère que si je supprime l'appel à la fonction setChannel dans le transmetteur et le récepteur, je récupère un ACK 2 fois sur 14 dans le transmetteur (le booléeen de retour est vrai). Pour les 2 fois, le récepteur reçoit bien la trame, pour les 12 autres, le récepteur ne reçoit rien.

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 912
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 912
    Par défaut
    Le reste du code importe aussi…

    Faites un code de démo et vérifiez que tout fonctionne. Sinon vous avez un souci de montage (alimentation, perturbations…)

Discussions similaires

  1. Concaténation sur radio
    Par bugland dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 11/04/2007, 17h10
  2. Auto Increment sur champs numérique
    Par Sami Xite dans le forum Access
    Réponses: 19
    Dernier message: 09/02/2007, 16h40
  3. [Forms5] Key pressed sur radio bouton
    Par Steph82 dans le forum Forms
    Réponses: 1
    Dernier message: 29/05/2006, 16h44
  4. [debutant]Auto incrementation sur sql-server 2000
    Par syl2095 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 18/11/2004, 18h00
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo