[Programmation] Problème émetteur/récepteur 433Mhz
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Problème émetteur/récepteur 433Mhz



  1. #1
    Robszyy

    Problème émetteur/récepteur 433Mhz


    ------

    Bonjour,

    Dupuis quelques temps j'essaye de faire communiquer deux Arduino avec un kit d’émetteur récepteur 433Mhz afin d'allumer une led avec un bouton.
    Le problème c'est que ma led ne fait que clignoter sans même avoir appuyer sur le bouton pour la faire allumer.
    J'ai cherché par moi-même du coté de l'émetteur, et il s’avère qu'il rentre dans une boucle ou le bouton doit être pressé alors qu'il ne l'ai pas.
    Je vous met images et code ci-dessous.

    Merci.

    Voici le code de l'émetteur : Il y a différents serial print pour m'aidé à savoir ou passe t-il.

    Code:
    #include <VirtualWire.h> 
     
    int EtatBouton = 0;
    int Bouton = 11;
     
    void setup()
    {
        Serial.begin(9600);
        vw_setup(2000);               
        vw_set_tx_pin(12);            
        pinMode(Bouton,INPUT);
        Serial.println("1");
    }
     
    void loop()
    {
       EtatBouton = digitalRead(Bouton);
       Serial.println("2");
       if(EtatBouton = HIGH)
       {
       Serial.println("3");
       const char *msg = "ledbleu";                
       vw_send((uint8_t *)msg, strlen(msg));
       vw_wait_tx();
       }
       delay(200);
       Serial.println("Ok");
    }
    20170713_130510.jpg

    20170713_130546.jpg

    20170713_130612.jpg

    Le "ok" signifie que le signal est envoyé et c'est donc ce qui fait clignoté ma led !

    -----

  2. #2
    Povogla

    Re : Problème émetteur/récepteur 433Mhz

    Salut,

    En langage Arduino (qui est basé sur le langage C notamment) quand on veut tester une condition, on utilise l'opérateur double-égale ''=='', le simple-égale ''='' est un opérateur d'affectation uniquement.

    Il faut donc revoir la syntaxe du test réalisé dans ton if()
    Dernière modification par Povogla ; 13/07/2017 à 12h32.

  3. #3
    Robszyy

    Re : Problème émetteur/récepteur 433Mhz

    Bonjour, merci de ta réponse,

    J'ai modifié ce dont tu m'a parlé, et, j'ai maintenant un autre problème : Quand j'appuie sur le bouton, ma variable ne rentre pas dans la boucle ...

    Code:
    #include <VirtualWire.h> 
     
    int EtatBouton = 0;
    int Bouton = 11;
     
    void setup()
    {
        Serial.begin(9600);
        vw_setup(2000);               
        vw_set_tx_pin(12);             
        pinMode(Bouton,INPUT);
        Serial.println("1");
    }
     
    void loop()
    {
       Serial.println("2");
       if(EtatBouton == HIGH)
       {
       Serial.println("3");
       const char *msg = "ledbleu";                
       vw_send((uint8_t *)msg, strlen(msg));
       vw_wait_tx();
       Serial.println("Ok");
       }
       delay(200);
       
    }
    Donc ici, le moniteur série m'indique 2 avec des répétitions, ce qui veut dire qu'il arrive dans la partie loop mais quand j'appuie sur le bouton, rien ne ce passe alors qu'il devrait afficher 3 puis "Ok".

  4. #4
    Povogla

    Re : Problème émetteur/récepteur 433Mhz

    Dans le deuxième code que tu propose, le test est juste, mais tu as supprimé la ligne : ''EtatBouton = digitalRead(Bouton);''

    Et donc le code fait bien son boulot.
    Dernière modification par Povogla ; 13/07/2017 à 13h35.

  5. A voir en vidéo sur Futura
  6. #5
    Robszyy

    Re : Problème émetteur/récepteur 433Mhz

    D'accord, effectivement ça fonctionne mieux

    Une dernière question : Comment faire pour que, quand j'appuie une fois sur mon bouton, la led reste allumer et quand je ré-appuie, elle s’éteigne ?

  7. #6
    Povogla

    Re : Problème émetteur/récepteur 433Mhz

    Il faut que tu fasses en sorte que ton programme fonctionne ainsi =)

    Plus sérieusement, je ne connais pas ton matériel ni son fonctionnement donc difficile de répondre.
    Et même si je connaissait tout cela je ne te donnerais pas une réponse toute cuite. Il va falloir que tu réfléchisse
    par toi même.

    Le mieux étant d'avoir une part de réflexion sur le fonctionnement souhaité avant de se lancer tête baissée dans le code.
    Cela peut-être simplement de décrire l’algorithme en quelque lignes. Par exemple :
    1) Attente appuis bouton
    2) commande d'allumage LED
    3) Attente relâchement bouton
    4) Attente appuis bouton
    5) commande d'extinction LED
    6) Attente relâchement bouton
    7) reprendre à 1

    Ou alors la réalisation d'un diagramme de flux ou d'un structogramme (plus complexe mais aussi plus rigoureux).

    Cette étape permet de visualiser quelque peut les parties du software à réaliser. Ensuite seulement on
    se lance dans le code.
    Sinon pour ton cas, une machine d'état me parait adaptée, Renseignes toi la dessus.
    Dernière modification par Povogla ; 14/07/2017 à 07h54.

Discussions similaires

  1. [RF/Radioelec] émetteur et récepteur genre 144 ou 433Mhz a transistors
    Par lemartien19 dans le forum Électronique
    Réponses: 11
    Dernier message: 24/12/2015, 16h05
  2. Réponses: 79
    Dernier message: 16/08/2015, 13h46
  3. question emetteur recepteur 433MHz
    Par lilise98 dans le forum Électronique
    Réponses: 2
    Dernier message: 23/04/2015, 10h00
  4. arduino - émetteur récepteur HF 433Mhz
    Par TSTI2D1 dans le forum Électronique
    Réponses: 12
    Dernier message: 14/04/2015, 09h55
  5. Problème émetteur récepteur 433 !
    Par jejesg dans le forum Électronique
    Réponses: 3
    Dernier message: 17/08/2012, 07h58
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...