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
    invite7ade7f5a

    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
    invitef625d7cf

    Re : convertir un int en char arduino

    Bonjour,

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

    Code:
    vw_send(MonInt, SaLongueur)

  3. #3
    invitef86a6203

    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

  4. #4
    invite7ade7f5a

    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
    invitef86a6203

    Re : convertir un int en char arduino

    affiche ton code avec l'erreur...SVP

  7. #6
    invite7ade7f5a

    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 à 15h06.

  10. #9
    invitef86a6203

    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.

Discussions similaires

  1. Char en C++
    Par invite07c97bce dans le forum Programmation et langages, Algorithmique
    Réponses: 8
    Dernier message: 18/10/2014, 21h38
  2. Arduino, convertir les puissance pwm ?
    Par invite1afd9db2 dans le forum Électronique
    Réponses: 18
    Dernier message: 23/02/2013, 11h49
  3. char rc
    Par invite316acf12 dans le forum Électronique
    Réponses: 10
    Dernier message: 29/07/2010, 23h56
  4. [C]-Conversion Int -> Char, Float -> Char, ...
    Par invite3c35244f dans le forum Électronique
    Réponses: 2
    Dernier message: 25/06/2008, 12h05
  5. sortir un char d'une table et le convertir en int en C
    Par invite9426e977 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/05/2006, 18h24
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...