convertir un int en char arduino
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

convertir un int en char arduino



  1. #1
    kaky951357

    Post convertir un int en char arduino


    ------

    Bonsoir tout le monde,
    je travaille sur un projet qui consiste à piloter un servomoteur avec potentiomètre via une liaison RF avec les modules 433MHz
    le probleme est que la librairie virtualwire n'envoie que les données de type char et le potentiomètre généré une variable de type int
    ma question est : comment transformer la variable int en char et vis versa ?
    merci pour vos réponses
    à +

    -----

  2. #2
    Pauldair

    Re : convertir un int en char arduino

    Bonjour,

    As-tu essayé d'envoyer simplement ton int ?

    Code:
    vw_send(MonInt, SaLongueur)
    Dernière modification par Pauldair ; 27/08/2015 à 07h25.

  3. #3
    freepicbasic

    Re : convertir un int en char arduino

    //on met des casts pour convertir !
    unsigned char high;
    unsigned char low;
    int Myint;

    High = (unsigned char) (Myfunc >> 8);
    Low = (unsigned char) (Myfunc & 0xff);

    Myint = (int) ( (int) high << 8) & (int) LOW ;

    //attention !!!!
    //char est signé tandis que unsigned char ne l'est pas.
    // ainsi que l'int
    A+, pat

  4. #4
    kaky951357

    Post Re : convertir un int en char arduino

    Bonjour,
    Merci pour vos réponses
    Pauldair c'a n'a pas marché le compilateur me dit : invalid conversion from 'int' to 'const char* (il faut convertir )
    freepicbasic svp pouvez vous m'expliquer votre code, Myfunc n'est pas déclaré et ou on récupéré le variable convertie ?
    A+

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

    Re : convertir un int en char arduino

    affiche ton code avec l'erreur...SVP
    A+, pat

  7. #6
    kaky951357

    Post Re : convertir un int en char arduino

    Code:
    unsigned char high;
    unsigned char low;
    int Myint;
    void setup ()
    {
      Serial.begin(9600);
    }
    void loop ()
    {
      if(Serial.available()>0)
      {
         Myint=Serial.read();
         high = (unsigned char) (Myfunc >> 8);
         low = (unsigned char) (Myfunc & 0xff);
         Myint = (int) ( (int) high << 8) & (int) LOW ;
         Serial.println(Myint);
         Serial.println(high);
         Serial.println(low);
      }
    }
    le message erreur : Arduino : 1.6.5 (Windows XP), Carte : "Arduino Uno"

    C:\Program Files\Arduino\hardware\tools\a vr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files\Arduino\hardware\arduino \avr\cores\arduino -IC:\Program Files\Arduino\hardware\arduino \avr\variants\standard C:\DOCUME~1\ADMINI~1\LOCALS~1\ Temp\build5264981083507812893. tmp\Blink.cpp -o C:\DOCUME~1\ADMINI~1\LOCALS~1\ Temp\build5264981083507812893. tmp\Blink.cpp.o

    Blink.ino: In function 'void loop()':
    Blink.ino:13:30: error: 'Myfunc' was not declared in this scope
    'Myfunc' was not declared in this scope

  8. #7
    pm42

    Re : convertir un int en char arduino

    Citation Envoyé par kaky951357 Voir le message
    Pauldair c'a n'a pas marché le compilateur me dit : invalid conversion from 'int' to 'const char* (il faut convertir )
    Si ton compilo attend un 'const char*', ce n'est pas un char mais un pointeur et sans doute une chaine de caractères en C. Convertir un Int en String ne se fait pas comme ça.

  9. #8
    katmai

    Re : convertir un int en char arduino

    Blink.ino: In function 'void loop()':
    Blink.ino:13:30: error: 'Myfunc' was not declared in this scope
    'Myfunc' was not declared in this scope
    Ben oui il connais pas Myfunc, c'est déclaré ou?

    A+

    EDIT:

    Si tes valeurs sont passer en char* il faut que tu fasses une boucle pour les convertir en int..
    Et attention à l'ordre des bytes!
    Dernière modification par katmai ; 27/08/2015 à 14h06.

  10. #9
    freepicbasic

    Re : convertir un int en char arduino

    Code:
    unsigned char high;
    unsigned char low;
    void setup ()
    {
      Serial.begin(9600);
    }
    void loop ()
    {
    int Myint;
    int Myfunc;
    
      Myfunc = 23543;
    
      if(Serial.available()>0)
      {
         Myint=Serial.read();
         high = (unsigned char) (Myfunc >> 8);
         low = (unsigned char) (Myfunc & 0xff);
         Myint = (int) ( (int) high << 8) & (int) LOW ;
         Serial.println(Myint);
         Serial.println(high);
         Serial.println(low);
      }
    }
    Il va falloir apprendre le C ...
    Le chiffre c est juste pour mettre quelque chose.
    Dernière modification par freepicbasic ; 27/08/2015 à 14h15.
    A+, pat

Discussions similaires

  1. Char en C++
    Par andreuxyoupi dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 18/10/2014, 20h38
  2. Arduino, convertir les puissance pwm ?
    Par invite1afd9db2 dans le forum Électronique
    Réponses: 18
    Dernier message: 23/02/2013, 10h49
  3. char rc
    Par invite316acf12 dans le forum Électronique
    Réponses: 10
    Dernier message: 29/07/2010, 22h56
  4. [C]-Conversion Int -> Char, Float -> Char, ...
    Par jorg1n dans le forum Électronique
    Réponses: 2
    Dernier message: 25/06/2008, 11h05
  5. sortir un char d'une table et le convertir en int en C
    Par nordiste dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/05/2006, 17h24
Découvrez nos comparatifs produits sur l'informatique et les technologies.