Menu
CoddyTech

Maintenir les valeurs dans la plage

Fait partie de la section Entrées du Journey Arduino de Coddy. Leçon 11 sur 22.

Parfois, seule une partie d'une plage doit être prise en compte. Disons que seule la partie centrale de la course du bouton compte, avec des mesures de 200 à 800, ce qui doit correspondre à 0 à 100 pour cent :

int percent = map(reading, 200, 800, 0, 100);

Cela donne 0 à 200 et 100 à 800, mais map() ne s'arrête pas aux extrémités de la plage. Une mesure de 0 donne -33, et 1023 donne 137. Un pourcentage inférieur à 0 ou supérieur à 100 n'a aucun sens.

constrain(x, low, high) maintient un nombre dans une plage : toute valeur inférieure à low devient low, toute valeur supérieure à high devient high, et tout ce qui se trouve entre les deux reste tel quel.

percent = constrain(percent, 0, 100);
challenge icon

Défi

Facile

Le potentiomètre est connecté à A0. Affiche un pourcentage où les mesures de 200 à 800 correspondent à 0 à 100 :

  • convertis la mesure de 200 à 800 en une valeur de 0 à 100 avec map
  • maintiens-la entre 0 et 100 avec constrain()
  • affiche-la, puis attends 100 ms

Appuie sur Run, tourne le potentiomètre à fond dans les deux sens, puis appuie sur Check.

Essayez vous-même

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // convertir la plage 200..800 en 0..100, maintenir le résultat entre 0..100, l'afficher, attendre 100 ms
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Entrées

Entraînez-vous par vous-même : Playground Arduino