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 :

Communication voie serie mauvaise interpretation


Sujet :

Arduino

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Communication voie serie mauvaise interpretation
    Bonjour à tous, petit message pour gros problème. Je dois réalisé une liaison entre une carte Arduino Mega et une balance industrielle via la voie série et jusque la pas de problème. Ensuite pour recevoir le poids de la balance j'utilise tout simplement la fonction Serial3.read (j'utilise la voie série 3 de la Mega) et j'affiche le résultat sur la console pour voir si tout va bien. Malheureusement se que je reçois n'est pas ce que j'attends. Je devrais recevoir les caractères " 20 20 20 20 20 20 20 20 38 30 2e 30 20 6b 67 20 80.0 kg " pour donc 80 Kg pesé (c'est ce que je reçois en connectant la balance à un PC via le port série), mais la je reçois " 251 251 251 251 251 251 251 123 159 163 151 191 41 49 191 229 235 0".
    Ma vitesse est réglé à l'identique sur le PC comme sur la carte Arduino. Que peut-il bien se passer. Merci par avance

    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
    int octetReception = 0;
    char caractereRecu= 0;
    int compt = 0;
    String chaineReception="";
     
    void setup() {
      // initialize both serial ports:
      Serial.begin(9600);
      Serial3.begin(9600, SERIAL_8N2);
    }
     
    void loop() {
      while(Serial3.available() > 0){
        octetReception = Serial3.read();
        compt = compt+1;
        Serial.println("ASCII caractere recu "+ String(compt) + " = " + String(octetReception, DEC));
        if (octetReception == 10){
          Serial.println("Saut de ligne recu");
          Serial.println("Chaine recu = " + chaineReception);
          compt = 0;
        }else{
        caractereRecu=char(octetReception);
        chaineReception = chaineReception + caractereRecu;
        }
      }
    }

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour Montmirail

    Je suppose que la balance sort le signal série au niveau RS232 (+12V / -12V) Est-ce que tu utilises bien un convertisseur de niveau genre MAX232 pour le relier à l'Arduino?
    Si oui, joint le schéma à la discussion, si non arrête tes essais sinon tu vas cassé ton Mega (si ne n'est pas déjà fait)

    Delias

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Non, je n'utilise pas de convertisseur, bien pour quelqu'un qui fait de l’électronique d'avoir oublier ce détail fort important. Un très très grand merci pour cette solution

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 267
    Points : 4 829
    Points
    4 829
    Par défaut
    Bonjour

    C'est aussi que le convertisseur de niveau introduit une inversion du signal le 1 c'est 5V (niveau TTL) ou -12V (niveau RS232).
    Si la transmission est unidirectionnel, un transistor NPN, une diode et une résistance sont suffisants. Montage en émetteur commun, diode et résistance en série sur la base et utilisation de la pull-up interne de l'Arduino.

    Delias

Discussions similaires

  1. Probleme de voie Serie
    Par Bartholivier dans le forum VB.NET
    Réponses: 11
    Dernier message: 19/11/2008, 10h42
  2. Mauvaise interpretation des z-index par IE
    Par cels dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 21/01/2008, 15h09
  3. communication port serie avec GTK+?
    Par cguignol dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 28/06/2007, 11h15
  4. Communication port serie avec un microcontrolleur
    Par crazydede8 dans le forum C
    Réponses: 4
    Dernier message: 29/07/2006, 14h49
  5. [communication] Port serie
    Par Mr bizzz dans le forum Flash
    Réponses: 8
    Dernier message: 07/06/2006, 01h38

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