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 :

Problème de transmission avec nRF24L01+


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Par défaut Problème de transmission avec nRF24L01+
    Bonjour,

    J’ai réalisé le montage suivant comprenant 2 parties pour mesurer température et humidité intérieures et extérieures et l’afficher sur un écran LCD*:
    • Module principal*: Partie intérieure comprend un arduino Uno, un capteur de T° DHT22, un module horloge DS3231, un afficheur LCD I2C 4 lignes sur 20 caractères, un transmetteur nRF24L01+
    ◦ Librairies utilisées*: #include "DHT.h", #include <Wire.h>, #include <LiquidCrystal_I2C.h>, #include <DS3231.h>, #include <SPI.h>, #include <nRF24L01.h>, #include <RF24.h>
    • Module déporté*artie extérieure comprend un arduino Pro Mini, un capteur de T° DHT22, un module horloge DS3231, un transmetteur nRF24L01+
    ◦ Librairies utilisées*: #include "DHT.h", #include <Wire.h>, #include <DS3231.h>, #include <SPI.h>, #include <nRF24L01.h>, #include <RF24.h>
    Chaque module a été testé séparément sur chaque Arduino et la liaison nRF24L01+ a été testé avec succès dans les deux sens.

    Sans la partie du programme concernant l’afficheur, les programmes des 2 parties fonctionnent correctement.
    A la 1ère utilisation de l’instruction*: lcd.setCursor(), l’ensemble continue de fonctionner.
    Si on ajoute une seconde instruction lcd.setCursor() on ne reçoit plus le message en provenance du module déporté.
    De même la réception ne fonctionne plus si on utilise l’instruction*: lcd.createChar()

    Merci d’avance pour votre aide.
    Cordialement
    Jean-Pierre

  2. #2
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Salut

    Et si vous enlevez le lcd et remplacez tous les affichages par une sortie sur le port série, est-ce que ça bug de la même manière ?

    Le code et un schéma détaillé du montage et des alimentations aiderait aussi à y voir plus clair...

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Par défaut
    Merci pour la prise en compte de ma demande

    Les sorties sur le port série fonctionnent correctement dans tous les cas
    Ci-joint les 2 programmes.
    Cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Citation Envoyé par JPD59 Voir le message
    Les sorties sur le port série fonctionnent correctement dans tous les cas
    Quand vous dites
    Chaque module a été testé séparément sur chaque Arduino et la liaison nRF24L01+ a été testé avec succès dans les deux sens.
    est-ce que le test de transmission a été effectué avec votre code mais sans le LCD ?

    (afin d'éliminer l'influence du SPI et de l'alimentation du LCD sur la transmission)

    pouvez vous aussi donner les liens vers les bibliothèques utilisés ? il y a en a plein pour la DS3231 et il y a deux LiquidCrystal_I2C


    cette partie sur la déclaration d'adresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        const byte adresse[][6] = {"00001"};
    n'est pas comme il faut il me semble car l'appel à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    radio.openReadingPipe(1,adresse);
    ne correspond pas à la signature de openReadingPipe(). (vous passez l'adresse d'un tableau à "2 dimensions" (qui n'a qu'un élément) et la bibliothèque attend un truc de 8 octets (uint64_t). essayez avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const uint64_t adresse = 0xABCDABCD71LL;
    par exemple


    à quoi sert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Variables utilisées pour la lecture des données
    const int dimension = 32;
    char information[dimension + 1];

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Par défaut
    est-ce que le test de transmission a été effectué avec votre code mais sans le LCD ?
    Le test a été réalisé avec mon code en mettant en commentaires toutes les lignes relatives à l'afficheur.

    pouvez vous aussi donner les liens vers les bibliothèques utilisés ? il y a en a plein pour la DS3231 et il y a deux LiquidCrystal_I2C
    https://github.com/NorthernWidget/DS3231
    https://github.com/johnrickman/LiquidCrystal_I2C

    cette partie sur la déclaration d'adresse n'est pas comme il faut il me semble car l'appel à ne correspond pas à la signature de openReadingPipe(). (vous passez l'adresse d'un tableau à "2 dimensions" (qui n'a qu'un élément) et la bibliothèque attend un truc de 8 octets (uint64_t)
    Je vais essayer et je vous tiens au courant

    à quoi sert le code
    C'est un ancien morceau de code que j'ai oublié de retirer

    Cordialement

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Par défaut
    J'ai testé l'adresse :

    const uint64_t adresse = 0xABCDABCD71LL;
    en lieu et place de l'adresse initiale :

    const byte adresse[][6] = {"00001"};
    Il semble que le problème soit résolu.
    Je ne pourrai pas travailler dessus demain, mais dès lundi je vous confirme si le problème est totalement résolu.

    Un grand merci pour votre aide.

  7. #7
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    A suivre donc !!

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Janvier 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Janvier 2016
    Messages : 10
    Par défaut
    Bonjour,

    Je vous confirme que le problème est résolu.
    Un grand merci

  9. #9
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 908
    Par défaut
    Super!

    bonne continuation

    Jay

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/01/2019, 16h59
  2. problème de requête avec jointures
    Par tinhat dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/08/2003, 10h33
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. [Kylix] problème compilation kylix3 avec redhat 9.0
    Par madininaoursa dans le forum EDI
    Réponses: 1
    Dernier message: 02/07/2003, 16h21
  5. Problèmes de versions avec Xalan, Xerces et Java
    Par honeyz dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 05/06/2003, 10h18

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