[Arduino] Question d'un debutant. - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 41 sur 41

[Arduino] Question d'un debutant.



  1. #31
    invite21cb1476

    Re : [Arduino] Question d'un debutant.


    ------

    Merci pour le déplacement du sujet.


    Le serial.print("101") et le serial.print(data, BIN) ne marche pas non plus.

    Apparemment, l'arduino lis byte par byte les donnée qui arrive.

    Du coup, quand j"envoie 101, lui il reçois 1, puis le compare dans le programme, il reçois 0, puis le compare dans le programme etc...

    Comment faire pour que l'arduino prenne la valeur 101 ?

    -----

  2. #32
    invite1d577638

    Re : [Arduino] Question d'un debutant.

    Je n'ai pas le lu fil en entier, quelle est la problématique exacte ?

    Si c'est coté réception que ça coince, tu peux tester la taille de ce qui est dans le buffer d'arrivée et ne traiter le résultat que quand tu as 3 caractères, par exemple...

  3. #33
    invite21cb1476

    Re : [Arduino] Question d'un debutant.

    Je tente de faire communiquer mon PC avec mon arduino. (en vue de faire communiquer plusieurs arduino entre eux)

    Mais avec un système de Code à trois chiffre.

    Ma commande fonctionne avec un caractere simple (ex: R ), mais impossible de la faire avec un code a trois chiffre (ex: 101 )

  4. #34
    invite1d577638

    Re : [Arduino] Question d'un debutant.

    Ton "code" il est vérifié coté PC ou arduino ? Si Arduino, tu devrais t'en sortir avec la méthode que je t'ai donnée.

  5. #35
    invite21cb1476

    Re : [Arduino] Question d'un debutant.

    Tout et sur l'arduino, le pc me sert juste a envoyer le code 101.

    Peut tu m'expliquer un peu plus ta méthode ?

  6. #36
    invite1d577638

    Re : [Arduino] Question d'un debutant.

    Je n'ai pas les noms de variables en tête, mais dans le code de réception (des exemples du soft), tu testes si ce qui est dans le buffer de réception est > à 0, ce qui indique qu'il y a de la donnée. Dans ton cas, modifie cette ligne pour que le buffer fasse 3 caractères de long avant de "lire" la variable...


    Exemple : (d'après ici) (non testé)


    Code:
    int incomingByte = 0;   // for incoming serial data
    
    void setup() {
            Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
    }
    
    void loop() {
    
            // send data only when you receive data:
            if (Serial.available() >= 3) {
                    // read the incoming byte:
                    incomingByte = Serial.read();
    
                    // say what you got:
                    Serial.print("I received: ");
                    Serial.println(incomingByte, DEC);
            }
    }

  7. #37
    invite21cb1476

    Re : [Arduino] Question d'un debutant.

    sa ne marche pas.

  8. #38
    invite1d577638

    Re : [Arduino] Question d'un debutant.

    Zut... Donc solution extrême : tu ajoutes avec un string.concat les données reçues à une nouvelle variable. Dès que tu en as 3, tu analyses !

  9. #39
    invite21cb1476

    Re : [Arduino] Question d'un debutant.

    Dac, je vais creuser dans cette voie.

    merci

  10. #40
    adipie

    Re : [Arduino] Question d'un debutant.

    L'autre solution c'est d'utiliser Serial event.
    Tu envois les caractères 101 suivi du caractère CR (retour chariot).
    Teste le programme ci-dessous pour comprendre le principe.
    Donc c'est à ton PC d'envoyer la chaine "101" CR
    Code:
    //Ce programme stocke les caractères reçus dans la chaine 
     //inputString tant qu'un caractère CR n'est pas reçu.
     //A la réception d'un CR il renvoi la chaine en retour, fait
     // une RAZ de InputString et attend la prochaine chaine. 
     
    String inputString = "";         // La chaine qui stoke les caractères reçus
    boolean stringComplete = false;  // Flag CR reçu.
    void setup() {
      // initialize serial:
      Serial.begin(9600);
      inputString.reserve(10);
    }
    
    void loop() {
      // Envoi la chaine reçu quand un CR arrive
      if (stringComplete) {
        Serial.println(inputString); 
        // RAZ de la chaine reçue
        inputString = "";
        stringComplete = false;
      }
    }
    
    void serialEvent() {
      while (Serial.available()) {
        // Réception d'un caractère
        char inChar = (char)Serial.read(); 
        // Ajoute ce caractère à inputString:
        inputString += inChar;
        // Quand une fin de ligne arrive mettre
        // le flag stringComplète à 1
        if (inChar == '\n') {
          stringComplete = true;
        } 
      }
    }
    Nom : Ard0.JPG
Affichages : 63
Taille : 18,8 Ko
    Dernière modification par adipie ; 19/09/2014 à 10h59.

  11. #41
    invite21cb1476

    Re : [Arduino] Question d'un debutant.

    Dac, merci de l'astuce.

    J'ai trouver une solutions plus "simple"

    Je vais bettement envoyer un seul caractère (comme pour mes premier test)

    Quand mon drapeau va recevoir le caractère A, l passera en bleu
    Quand il recevra le caractère B, il passera en Rouge.

    Etc...
    Sa reste le plus simple pour moi, et pour la suite de mon projet aussi je pense.


    Pour la suite, je vais ouvire un nouveau post.
    Je compte crée un petit programme sous visual c++ 2010 pour gérer mes bases.
    -Pour forcer le changement d'état de mes bases.
    -Afficher en temps réel l'état de chaque base.
    etc...


    merci a tous de votre aide !!

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. [Programmation] Arduino-débutant
    Par Lycaon dans le forum Électronique
    Réponses: 12
    Dernier message: 16/12/2015, 11h02
  2. Question d'Arduino
    Par invitef97509f0 dans le forum Électronique
    Réponses: 3
    Dernier message: 03/07/2013, 15h12
  3. Débutant ARDUINO et électronique
    Par invite73e0f748 dans le forum Électronique
    Réponses: 8
    Dernier message: 14/02/2013, 21h39
  4. Débutant Arduino, question de choix
    Par Forhorse dans le forum Électronique
    Réponses: 2
    Dernier message: 30/04/2012, 09h45
  5. Débutant - Choix composant premier robot Arduino
    Par invite966ef1b5 dans le forum Électronique
    Réponses: 15
    Dernier message: 15/04/2012, 17h36
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...