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 :

Comprendre un programme


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 15
    Par défaut Comprendre un programme
    Bonjour à tous,
    je possède un programme arduino réalisé par mon professeur sauf que je dois présenté se programme à l’oral bientôt. j'aurais donc vraiment besoin que vous m'aidiez a comprendre ce programme et de savoir l'expliquer.
    but du programme : il me sert dans un projet pour répondre a une commande/demande de labview, labview est donc mon maitre et larduino l'esclave

    Sans nom ard.pdf


    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
    #include <Wire.h>
     
    int x;
    char f[2];
    void setup() {
      Wire.begin(8);                // join i2c bus with address #8
      Wire.onReceive(receiveEvent); // register event
        Wire.onRequest(requestEvent); // register event
      Serial.begin(9600);           // start serial for output
     
     
    }
     
    void loop() {
      delay(100);
    }
     
    // function that executes whenever data is received from master
    // this function is registered as an event, see setup()
    void receiveEvent(int howMany) {
     while (1 < Wire.available()) { // loop through all but the last
        char c = Wire.read(); // receive byte as a character
        Serial.print(c);         // print the character
     
      }
      x = Wire.read();    // receive byte as an integer
     // Serial.println(x);         // print the integer 
     
    }
    void requestEvent() {
      itoa(x,f,16);
          Wire.write(f);
           Serial.println(f);  
    }

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Bonjour,

    Quelles sont les lignes de code que tu ne comprends pas ? Le code est commenté, pour les fonctions un peu spécifiques de la bibliothèque Wire tu as la documentation Arduino : https://www.arduino.cc/en/Reference/Wire
    et pour l'objet Serial c'est ici :https://www.arduino.cc/reference/en/...cation/serial/

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 15
    Par défaut
    merci bien

    la fonction Itoa j'aimerais savoir ce qu'elle fais, son rôle

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    383
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 383
    Par défaut
    Citation Envoyé par baptiste.0809 Voir le message
    merci bien

    la fonction Itoa j'aimerais savoir ce qu'elle fais, son rôle
    elle convertit ton int x en une chaine de 2 caracteres f en base 16. (après une recherche google vu que je la connaissait pas)

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Loire (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2019
    Messages : 15
    Par défaut
    Merci beaucoup

  6. #6
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Bonjour,

    Ma première recherche pour arduino itoa() m'a donné https://forum.arduino.cc/index.php?topic=472698.0
    Pour un débutant .... quel "salade"! Il faut donc chercher ailleurs.

    Regarde aussi: http://www.cplusplus.com/reference/cstdlib/itoa/

    Ce n'est ni de l'ANSI-C ni du C++. La note du sizeof() est importante. Ton f[2] pourrait poser de gros problèmes.
    Je l'ai essayé sur un ESP32 avec l'IDE de l'Arduino, f[2] et des x > 15 grandissant dans la loop(). Pas de plantage ... mais c'est faux!

    Bon travail avec l'Arduino.

Discussions similaires

  1. comprendre ce programme
    Par diamentelle dans le forum Windows Forms
    Réponses: 5
    Dernier message: 08/04/2009, 15h33
  2. Comprendre un programme Matlab?
    Par nejm59 dans le forum MATLAB
    Réponses: 22
    Dernier message: 12/12/2008, 20h32
  3. Comprendre un programme
    Par Konala dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 27/10/2008, 12h21
  4. Comprendre un programme C simple décompilé
    Par _jeez_ dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 07/10/2007, 16h06
  5. Réponses: 1
    Dernier message: 25/08/2007, 23h14

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