[Résolu] Valeures proportionnelle

Bonjour, j'aimerai savoir si il serait possible de faire évoluer une valeur en fonction d'une seconde valeur. Par exemple, en admettant que je bouge un joystick, la valeur analogique peut elle être associée à une valeur qui me renverrait l'angle en degrés ?

Bonjour liam83

Regades du côté de la fonction map()

Cordialement
jpbbricole

1 Like

Oui. C’est tout à fait possible mais bien sûr il faut que le code de la loop() lise la valeur du potentiomètre et ensuite fasse le calcul (ou map() comme dit fort justement @jpbbricole) pour maintenir à jour la variable (ce n’est pas automatique, on ne relie pas une variable simplement une fois à une pin)

void loop() {
  long x = analogRead(A0) * 27 + 156; // on maintient à jour la variable x

  …. 
  
}
1 Like

super, c'est exactement ce que je cherchais, merci à vous deux !

Attention map() ne gère que des entiers.
Est-ce gênant ou pas ?

Référence des fonctions arduino :

Extrait :

Appendix

For the mathematically inclined, here’s the whole function

long map(long x, long in_min, long in_max, long out_min, long out_max) {
  return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

Si tu as besoin de nombres réels (float) map() n'est rien d'autre que l'application de la formule
y = mx + b, dont m et b se déterminent à partir de x1, x2, y1 ,y2
ou pour reprendre les noms utilisés: in_min, in_max, out_min, out_max

Tu peux la réécrire en gardant le nom map, le compilateur verra que ce ne sont pas les mêmes définitions de variables et fera la différence tout seul.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.