Découpe valeur

Bonjour,

Je suis débutant avec la programmation Arduino, et je test actuellement une sonde DS18B20.

J'ai récupérer un code qui fonctionne, puisque j'ai un affichage dans la console de la t°C.
Le résultat est sous la forme 12,34

J'aimerais maintenant envoyé cette valeur vers un affichage à 7 segments

et pour cela, j'ai besoin de découper le 12,34 -> en 1 puis 2 puis 3 et le 4 pour envoyer chaque nombre vers l'afficheur.

Merci pour votre aide.

Il y a plusieurs facçons

  1. Si votre température est toujours inférieure à 100, Vous multipliez par 100 et stockez le résultat dans un int, puis vous utilisez le modulo (reste de la division)
float t = 12.34;
int v = t * 100; // 1234
int d0 = v % 10; // 1234 = 123 * 10 + 4 ==> modulo = 4 = dernier digit (sous forme de nombre)
int d1 = (v % 100) / 10; // 1234 = 12 * 100 + 34 ==> modulo = 34 divisé par 10 = 3
int d2 = (v % 1000)  / 100; // 1234 = 1 * 1000 + 234 ==> modulo = 234 divisé par 100 = 2
int d3 = v / 1000; // = 1

Autre option la fonction itoa() que vous appelez sur v comme défini ci dessus

float t = 12.34;
int v = t * 100; // 1234
char digits[6]; // 5 chiffres max de temperature suivis dun caractere nul
itoa(v,digits,10); // convertit en chaine de caractère en base 10
// ici digit[0] contient le caractère ascii '1', digit[1] contient le caractère ASCII '2',digit[2] contient '3',digit[3] contient '4', digit[4] contient le caractère nul '\0' et marque la fin de la chaine 
// (digit[0]-'0') serait le nombre 1 puisqu'on soustrait la valeur du caractère ASCII '0'