Bonjour
Je cherche à convertir un float (récupéré à partir d'un encodeur rotatif) en char pour pouvoir l'afficher sur 5 afficheurs 7 segments
(les valeurs vont de 118.00 à 136.00)
Le code C suivant fonctionne bien :
#include <stdio.h>
int main(int argc, const char * argv[])
{
float x = 125.65;
char buffer[20];
sprintf(buffer, "%f", x);
printf("%c\n", buffer[0]);
printf("%c\n", buffer[1]);
printf("%c\n", buffer[2]);
printf("%c\n", buffer[3]);
printf("%c\n", buffer[4]);
printf("%c\n", buffer[5]);
return 0;
}
J'ai essayé de l'adapté pour le C arduino comme ça :
#include <stdio.h>
int x = 125;
char buffer[7];
void setup(){
Serial.begin(9600);
}
void loop(){
sprintf(buffer, "%d", x);
Serial.print(printf("%s\n", buffer[0]));
Serial.print(printf("%s\n", buffer[1]));
Serial.print(printf("%s\n", buffer[2]));
Serial.print(printf("%s\n", buffer[3]));
Serial.print(printf("%s\n", buffer[4]));
Serial.print(printf("%s\n", buffer[5]));
Serial.println ();
}
Ca ne fonctionne pas, sur la console, je ne récupère que "-1 -1 -1 -1 -1 -1
Quelqu'un aurait une idée ?
Merci