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 :

Erreur d'emission avec RF24L


Sujet :

Arduino

  1. #1
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 754
    Par défaut Erreur d'emission avec RF24L
    Bonsoir / bonjour à tous,

    Tout est dans le titre. Avec ce
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    #include <Arduino.h>
    #include <SPI.h>
    #include "RF24.h"
     
    #define CE_PIN		6
    #define CSN_PIN		7
    #define EMIT_NAME	"EMIT1"
     
    const byte sender_name[]=EMIT_NAME;
     
    RF24 sender(CE_PIN, CSN_PIN);
     
    void setup(void) {
    	Serial.begin(9600);
    	Serial.print(EMIT_NAME);
    	if(!sender.begin()) {
    		Serial.println(": pas de réponse");
    		while(1);
    	}
    	Serial.println(": prêt");
    	Serial.print(EMIT_NAME);
    	Serial.print(sender.isChipConnected() ? " est" : " n'est pas");
    	Serial.println(" connecté au bus spi");
    	sender.setChannel(120);
    	sender.setPALevel(RF24_PA_MIN);
    	sender.setDataRate(RF24_250KBPS);
    	sender.openWritingPipe(sender_name);
    	sender.stopListening();
    }
     
    int count;
    char msg[]="Hello world";
     
    void loop(void) {
    //	sender.write(&(count++), sizeof(count));   --> le vrai but du programme: envoyer un 1 ou un 0
    	if(!sender.write(msg, sizeof(msg)))
    		Serial.println("Erreur d'émission");
    	delay(500);
    }
    j'ai "Erreur d'émission" qui s'affiche toutes les demi-secondes. Avant ça, j'ai les messages "EMIT1: prêt" et "EMIT1 est connecté au bus spi" qui s'affichent.

    Si quelqu'un pouvait trouver l'erreur ou me donner une piste.... merci d'avance.

    PS: comme conseillé dans plusieurs tutos, j'ai soudé un condensateur électrolytique (de 47µF) entre vcc et gnd.

  2. #2
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Quel est le code cote réception? Sans ack le write dira que ça n’a pas fonctionné

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 754
    Par défaut
    Merci de ta réponse.

    Voici le code de réception, mais je n'ai lu nulle part quelque chose concernant l'acknowledgement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    #include <Arduino.h>
    #include <SPI.h>
    #include "RF24.h"
     
    #define CE_PIN			6
    #define CSN_PIN			7
    #define RECV_NAME		"RECV1"
    #define NO_RECV_DELAY	1000	// millisec
     
    RF24 recv(CE_PIN, CSN_PIN);
    const byte recv_name[]=RECV_NAME;
    unsigned long btime;
     
    void setup(void) {
    	Serial.begin(9600);
    	Serial.print(RECV_NAME);
    	if(!recv.begin()) {
    		Serial.println(": pas de réponse");
    		while(1);
    	}
    	Serial.println(": prêt");
    	Serial.print(RECV_NAME);
    	Serial.print(recv.isChipConnected() ? " est" : " n'est pas");
    	Serial.println(" connecté au bus spi");
    	recv.setChannel(120);
    //	recv.setPALevel(RF24_PA_MIN);
    //	recv.setDataRate(RF24_250KBPS);
    	recv.openReadingPipe(0, recv_name);
    	recv.startListening();
    	btime=millis();
    }
     
    int no_recv_time;
     
    void loop(void) {
    	if(recv.available()) {
    		char msg[32];
    		recv.read(msg, sizeof(msg));
    		Serial.println(msg);
    		no_recv_time=0;
    	}
    	else
    		if(millis()-btime > NO_RECV_DELAY) {
    			no_recv_time+=NO_RECV_DELAY/1000;
    			Serial.print("Pas d'information depuis au moins ");
    			Serial.print(no_recv_time);
    			Serial.println(" secondes");
    			btime=millis();
    		}
    }
    Là aussi, j'ai les messages "prêt" et "connecté au bus spi"

    Peux-tu m'aiguiller pour trouver une solution? D'avance merci. Edgar;

    Edit: j'ai mis les lignes 26 et 27 en commentaire, car à mon sens, elles ne servent que pour un émetteur.

  4. #4
    Expert confirmé

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

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    testez votre montage avec des codes connus comme étant fonctionnels (à prendre dans des tutos) pour vous assurer que tout est alimenté et branché correctement

Discussions similaires

  1. Erreur de socket avec le composant Indy idHTTP
    Par Etanne dans le forum C++Builder
    Réponses: 3
    Dernier message: 25/10/2004, 11h27
  2. Erreur ORA-12514 avec database link
    Par gafreu dans le forum Administration
    Réponses: 20
    Dernier message: 09/09/2004, 11h53
  3. Erreur sur IIS avec des cripts ASP
    Par Alin dans le forum ASP
    Réponses: 7
    Dernier message: 22/06/2004, 14h15
  4. erreur tcp/ip avec jdbc
    Par champion dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 03/04/2004, 14h32
  5. Erreur de sgmentation avec malloc
    Par simonm dans le forum C
    Réponses: 5
    Dernier message: 27/02/2003, 08h29

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