Utrzymywanie wartości w zakresie
Część sekcji Wejścia ścieżki Arduino w Coddy. Lekcja 11 z 22.
Czasami powinna liczyć się tylko część zakresu. Załóżmy, że znaczenie ma tylko środkowa część ruchu pokrętła, czyli odczyty od 200 do 800, i że powinno to odpowiadać zakresowi od 0 do 100 procent:
int percent = map(reading, 200, 800, 0, 100);To daje 0 przy 200 i 100 przy 800, ale map() nie zatrzymuje się na końcach zakresu. Odczyt 0 daje -33, a 1023 daje 137. Procent poniżej 0 lub powyżej 100 nie ma sensu.
constrain(x, low, high) utrzymuje liczbę w zakresie: wszystko poniżej low staje się równe low, wszystko powyżej high staje się równe high, a wszystko pomiędzy pozostaje bez zmian.
percent = constrain(percent, 0, 100);Wyzwanie
ŁatwyPokrętło jest podłączone do A0. Wypisuj wartość procentową, gdzie odczyty od 200 do 800 odpowiadają wartościom od 0 do 100:
- przeskaluj odczyt z zakresu od 200 do 800 na zakres od 0 do 100
- ogranicz go do zakresu od 0 do 100 za pomocą
constrain() - wypisz go, a następnie odczekaj 100 ms
Naciśnij Run, przekręć pokrętło maksymalnie w obie strony, a następnie naciśnij Check.
Spróbuj swoich sił
void setup() {
Serial.begin(9600);
}
void loop() {
int reading = analogRead(A0);
// przeskaluj zakres 200..800 na 0..100, utrzymaj wynik w zakresie 0..100, wypisz go, odczekaj 100 ms
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wejścia
2Wejścia analogowe
Odczyt z pokrętłaPrzeliczanie odczytu z pokrętła na woltyPrzeliczanie na procentyUtrzymywanie wartości w zakresiePróg pokrętłaAutomatyczna lampka nocnaPin przełącznika czujnika światłaPoćwicz samodzielnie: Edytor online Arduino