Petite aide pour une equation

Mesure1=analogRead(mesure);
  Mesure2=5/1023*Mesure1;                  //conversion en volt
  Serial.print("Mesure (en V) : ");
  Serial.print(Mesure2, DEC);

Voila mon problème vient de l'équation il retourne a chaque fois 0 je ne comprends vraiment pas

Essaie ! :

Mesure1=analogRead(mesure);
Mesure2=0.0048875855*Mesure1;
  Serial.print("Mesure (en V) : ");
  Serial.print(Mesure2, DEC);

Sinon c'est surement tes types de variable qui ne sont pas bons. Par exemple si mesure1 est un integer et que la mesure réelle est égale à 0.49V, bin mesures1 = 0 ... :wink:

ah ok sa marche :-? je comprends toujours pas pourquoi sa ne marchai pas mais bon il y a des mystère sur ce logiciel parfois et j'ai bien mis la variable en double

et merci :stuck_out_tongue:

j'ai bien mis la variable en double

Le problème ce n'est pas la variable c'est la constante.
5/1023 c'est un calcul avec des entiers donc ç'est évalué à 0.
5.0/1023.0 c'est un calcul avec des flottants et là ça marche

Bonjour,

La méthode de rajouter .0 à la fin marche bien, mais.
De façon plus rigoureuse on peut retyper à la volée la variable.

Exemple:
5/1023 calcul avec des entiers
5.0/1023.0 calcul avec des flottants
(float)5/(float)1023 calcul avec des flottants

Ca fonctionne aussi avec des variables:

int a;
int b;
float c;

c=float(a)/float(b);

C'est un typage à la volée, c'est à dire que a et b restent des int après le calcul.