bonjour,
Après plusieurs recherche je suis parvenue à afficher les chiffres avant la virgule mais je ne peux pas afficher les 2 chiffres après la virgule
pourriez-vous m'aider s'il vous plaît avec des explications claires je suis débutant
merci
#include <InvertedTM1638.h>
#include <TM1638.h>
TM1638 module(10, 11, 9);
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// 0 1 2 3 4 5 6 7 8 9 A b C d E F ° C - Point
byte dispDig[] = {63, 6, 91, 79, 102, 109, 125,7, 127, 111, 119, 124, 57, 94, 121, 113, 99, 57, 64, 128};
long values1 = 32.45;
byte values[] = { 0,0,0,0,0,0,0,0 };
int theDigits[] = { 0,0,0,0,0,0,0,0 };
void setup()
{
Serial.begin(9600);
module.clearDisplay();
module.setupDisplay(true, 0);
}
void loop() {
// Affichage de la valeur (en décimal)
values[7] = dispDig[values1 % 10];
values[6] = dispDig[values1 / 10 % 10];
values[5] = dispDig[values1 / 100 % 10];
values[4] = dispDig[values1 / 1000 % 10];
values[3] = dispDig[values1 / 10000 % 10];
values[2] = dispDig[values1 / 100000 % 10];
values[1] = dispDig[values1 / 1000000 % 10];
values[0] = dispDig[values1 / 10000000 % 10];
module.setDisplay(values);
Serial.println(values1);
}
grankaba:
bonjour,
Après plusieurs recherche je suis parvenue à afficher les chiffres avant la virgule mais je ne peux pas afficher les 2 chiffres après la virgule
pourriez-vous m'aider s'il vous plaît avec des explications claires je suis débutant
merci
long values1 = 32.45;
Bonjour
un long ne peu pas comporter de fractions decimales
je vois que tu souhaite utiliser un tm1638 avec la lib batista
le plus simple : tu multiplie ta valeur par 100 et tu determine quel afficheur doit recevoir le point de separation decimal.
Je me demande meme si la lib ne gere pas ça directement, je regarderais plus tard
edit : lire çà
Merci pour avoir pris le temps de me répondre
Si je multiples ma variable par 100 ça me donne (3200)
Pour que la variable prennent des fractions décimal je la déclarant flottante (float values1 = 32.45;)
Quand je détermine la variable en flottante le compilateur se plante
error: invalid operands of types 'float' and 'int' to binary 'operator%'
merci
grankaba:
Merci pour avoir pris le temps de me répondre
Si je multiples ma variable par 100 ça me donne (3200)
Pour que la variable prennent des fractions décimal je la déclarant flottante (float values1 = 32.45;)
Non !
la lib ne permet d'afficher que des entiers
tu oublie les variables float pour la lib TM1638
si ce que tu veux afficher sur un TM1638 est 32.45 et que la variable d'origine est un float , tu multiplie par 100 ton float vers un entier ( 3245)
tu affiche par la lib la valeur 3245 et tu positionne le point decimal sur le bon digit
i
bonjour
Merci pour la réponse qui fonctionne
En ce qui concerne cette information
(module1.setDisplayToDecNumber(15, 0, false)
Je l'avais trouvé sur le net, mais je n'ai pas trouvé pour afficher un chiffre sur un afficheur précis avec cette méthode mais si tu as une idée je suis preneur
Exemple: 3 2. 4 5
Un - égale 1 afficheur - - - - - - - -
Merci
bonjour
Avec un petit peu de retard
merci beaucoup pour l'aide
à bientôt sur le forum