Go Down

Topic: Aide pour Transformer une String (prov.lecture serie) en Int pour arduino ! (Read 645 times) previous topic - next topic

fdufnews

Voilà un code qui fonctionne
Code: [Select]
String Txt1 ="aaa23456";
String Txt2 ="";
String Txt3 ="";
char buffer[7];


void setup(void){
 
  Serial.begin(9600);
 
  Txt2=Txt1.substring(0,3);
  Txt3=Txt1.substring(3);
 
  Serial.println(Txt1);
  Serial.println(Txt2);
  Serial.println(Txt3);
  Txt3.toCharArray(buffer,7);
  Serial.println(atoi(buffer));
}


void loop(void){
}


Maintenant, il fonctionne avec un int comme tu l'as demandé. Seulement 123456 c'est plus grand qu'un int (entre -32768 et +32767) ce qui explique peut être le résultat que tu obtenais. Si tu remplaces le atoi par un atol alors le résultat est correct mais tu dois travailler avec des long

gef13

Merci les amies !

Merci skywodd !
Pour cette solution que je trouve pas mal !
j'ai testé mais j'ai toujours une erreur de trame malgres plusieurs essais de formatage...
(http://skyduino.wordpress.com/2012/03/22/arduino-parser-une-chaine-de-caracteres/)

Merci lolo81 ! ca aussi j'avais testé mais toujours erreur!

et Merci fdufnews !

Effectivement cette solution fonctionne bien ! et j'ai bien compris le problème de la taille et je pense aussi que la différence que j'avais dans mes 1er test était en rapport avec la taille...

vous m'avez bien aidé et je vous en remercie !

maintenant je vais me pencher sur l'utilisation de float en place de int avec le système de fdufnews et me re pencher aussi sur sscanf()
car je pense aussi éviter le plus possible les strings...

Bonne journée a tous et merci encore.
cdlt gerard



Arduino leonard

Go Up