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);Défi
FacileLe 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
}
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
2Entrées analogiques
Lire un potentiomètreConvertir la lecture du potentiomètre en voltsConvertir en pourcentageMaintenir les valeurs dans la plageSeuil du potentiomètreVeilleuse automatiqueBroche de commutation du capteur de lumièreEntraînez-vous par vous-même : Playground Arduino