constrain()
Description :
Limite un nombre à une plage donnée. L’entrée de cette fonction peut être, par exemple, une valeur de capteur contrôlant la position d’un moteur, les plages inférieure et supérieure de la fonction représentant les limites physiques du mouvement possible.
Syntaxe :
Utilisez la fonction suivante pour contraindre la plage d’une variable donnée :
constrain(x, a, b)
Paramètres :
La fonction admet les paramètres suivants :
- x : le nombre à contraindre. Types de données autorisés : tous les types de données.
- a : la limite inférieure de la plage. Types de données autorisés : tous les types de données.
- b : la limite supérieure de la plage. Types de données autorisés : tous les types de données.
Retours :
La fonction renvoie ce qui suit :
- x : si le paramètre d’entrée (x) est compris entre a et b.
- a : si le paramètre d’entrée (x) est inférieur à a.
- b : si le paramètre d’entrée (x) est supérieur à b.
Exemple de code :
Le code définit une valeur de capteur émulée et imprime son résultat contraint sur le moniteur série.
int sensVal = 50; // essayez avec 170 et 5 pour vérifier la fonctionnalité void setup() { Serial.begin(9600); sensVal = constrain(sensVal, 10, 150); // limite la plage de valeurs du capteur entre 10 et 150 Serial.print("La valeur du capteur est: "); Serial.println(sensVal); } void loop() { }
Remarques et avertissements :
En raison de la façon dont la fonction constrain() est implémentée, évitez d’utiliser d’autres fonctions à l’intérieur des crochets, cela peut conduire à des résultats incorrects.
Ce code donnera des résultats incorrects :
int constrainedInput = constrain(Serial.parseInt(), minimumValue, maximumValue); // éviter ça
Utilisez plutôt ceci :
int input = Serial.parseInt(); // garder les autres opérations en dehors de la fonction de contrainte int constrainedInput = constrain(input, minimumValue, maximumValue);
Source : https://docs.arduino.cc/language-reference/en/functions/math/constrain/