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 avec le moniteur série


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2019
    Messages : 64
    Par défaut Problème avec le moniteur série
    Bonjour,
    Il y a un mois de cela je me suis sur la programmation d'une carte arduino dans le but d'afficher une fréquence sur 5 digit 7 segments pour des récepteurs radios (voir présentation).
    Je commence à y voir clair, mais je suis tombé sur un bout de code facilement compréhensible ( qui vient d' un autre site) mais qui ne fonctionne pas (test sur plusieurs pc).

    Que j'écrive on ou off dans le moniteur , j'ai toujours la même réponse "commande inconnue".
    Pourtant String msg contient bien les bons caractères...

    J'ai remarqué que l'affichage dans la barre du moniteur série par ex "on "n'était pas exactement identique à l'écriture du "on" dans le code.
    Est ce que cela pourrait être dû à un pb de casse.

    Merci



    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
    //Informations nécessaires pour la led :
    #define LED 13
     
    //Informations nécessaires pour la communication série :
    String msg; //Variable contenant le message
     
    void setup() {
      //Déclaration de la led en tant que sortie :
      pinMode(LED, OUTPUT);
     
      //Initialisation de la liaison Série :
      Serial.begin(9600);
    }
     
    void loop() {
      if (Serial.available() > 0) //Si un message a été reçu :
      {
     
      msg = Serial.readString(); //Lit le message reçu comme une suite de caractère
      Serial.print(msg); //Affiche le message dans l'interface Série
     
        if (msg == "on") //Test du message pour on
        {
          digitalWrite(LED, HIGH); //Allume la led
          Serial.println(" OK"); //Affiche OK sur l'interface Série afin de montrer que l'opération est terminée
        }
     
        else if (msg == "off") //Test du message pour off
        {
          digitalWrite(LED, LOW); //Éteint la led
          Serial.println(" OK"); //Affiche OK sur l'interface Série afin de montrer que l'opération est terminée
        }
        else //Si le message n'est ni on ni off = Sinon
        {
          Serial.println(" -> Commande inconnue");
        }
      }
    }

  2. #2
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour Pat42
    Citation Envoyé par Pat42 Voir le message
    Est ce que cela pourrait être dû à un pb de casse.
    Dans ton cas, si tu écris on ou off exactement comme dans le programme, ça devrait marcher, mais dans ce genre de fonctions, il est bon de convertir en majuscules la ligne introduite dans le moniteur et tester les mots en majuscules (== "ON" == "OFF"), cela permet plus de liberté à celui qui tape le commande et évite au programmeur un mode d'emploi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		msg = Serial.readString(); //Lit le message reçu comme une suite de caractère
    		msg.toUpperCase();
    Maintenant, pourquoi ton code ne fonctionne pas, l'ajout d'une ligne est très instructive:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		Serial.print(msg); //Affiche le message dans l'interface Série
    		Serial.print(msg.length()); //Affiche la longueur du message
    Le chiffre accolé au message est plus grand que le nombre de caractères du message, cela vient des caractères "fantômes" (CR ou LF ou CR et LF) ajoutés par la console et qui sont ajoutés au moment du Enter et réglés en bas à droite du moniteur série, à gauche de la vitesse. Si tu mets pas de fin de ligne ton programme fonctionne.
    Mais, comme pour majuscule/minuscule cités plus haut, le mieux est de "passer par-dessus" ce problème, en ignorant ces fins de lignes ajoutés par cette façon de tester:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		if (msg.startsWith("ON")) //Test du message pour on
    Cordialement
    jpbbricole

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2019
    Messages : 64
    Par défaut re moniteur série
    Merci de me donner un coup de main...même un Dimanche...
    Comme je l'expliquai dans mon message, le texte que je tape dans le moniteur série: ""on ou off " n'a pas exactement la même fonte que le "on ou off " que je tape pour écrire le code.

    Je vais lire attentivement votre réponse et ...tester.

    Cordialement

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2019
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2019
    Messages : 64
    Par défaut re moniteur série
    Je te remercie pour le coup de main, j'ai testé et bien compris.
    j'ai appris en 1/2 heure plus que seul en une semaine.

    Beaucoup d'autres questions se bousculent dans ma tête concernant mon projet .

    Bonne soirée

    Pat42

  5. #5
    Membre Expert
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 017
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 017
    Par défaut
    Bonjour Pat42
    Citation Envoyé par Pat42 Voir le message
    Beaucoup d'autres questions se bousculent dans ma tête concernant mon projet .
    Si on peut calmer cette bousculade, alors n'hésites pas

    Cordialement
    jpbbricole

Discussions similaires

  1. problème avec un port série
    Par Invité dans le forum Composants
    Réponses: 7
    Dernier message: 15/03/2008, 23h05
  2. Problèmes avec la communication série
    Par rzayani dans le forum Windows
    Réponses: 3
    Dernier message: 18/06/2007, 11h57
  3. Problème avec la liaison série
    Par perchman dans le forum Général Python
    Réponses: 3
    Dernier message: 22/03/2007, 16h52
  4. [C#]Problème avec le port série sous Win98
    Par Polux63 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/09/2006, 09h14
  5. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50

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