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 ?
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
….
}
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.