map me retorune une valeur inversé


bonjour à tous

je mesure l'humidité du sol.
après calibration, la capteur me retourn 670  quand le sol est sec et 490 quand il est très très humide.

j'utilise map() pour avoir ceci en %
code: [select]

val = map(val,670,490,0,100);


donc la valeur base est 670 et la valeur haute est 490. logiquement quand le sol est humide, je devrais avoir 100% et quand il est sec je devraisavoir 0% (pour ma notion de valeur haute et basse).

ce capteur fonctionne inversément... :o)

le problème avec ma fonction map, c'est quand il est humide, il m'affiche 100% mais plus le sol devient sec, plus mon pourcentage augmente au lieu de diminuer

je me demande à quel niveau je dois corrigé ceci, si c'est au niveau de ma fonction map()

j'avais deja essayé ceci
code: [select]

val = map(val,490,670,0,100);
, mais j'ai une valeur proche du 0% quand mon sol est rès humide.

qu'en pensez-vous à propo de map()?

il faut écrire :

code: [select]
val = map(val, 490, 670, 100, 0);
et éventuellement ajouter :

code: [select]
val = constrain(val, 0, 100);
si vous ne voulez pas avoir des valeurs inférieures à zéro et supérieures à 100.

cordialement

pierre


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > map me retorune une valeur inversé


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???