Miganie, które przyspiesza
Część sekcji Pierwsze obwody ścieżki Arduino w Coddy. Lekcja 17 z 22.
delay(waitTime) czeka przez czas określony przez wartość waitTime w danym momencie. Zmień wartość zmiennej, gdy szkic jest uruchomiony, a miganie się do niej dostosuje.
waitTime = waitTime - 100; // następne mignięcie jest o 100 ms krótszeUmieść to na końcu loop(), a każde mignięcie będzie krótsze od poprzedniego.
Obserwuj, co się dzieje, gdy program działa przez jakiś czas. Czas oczekiwania skraca się do 0, a potem spada poniżej 0. delay() nie może czekać przez ujemny czas: odczytuje -200 jako ogromną wartość, około 49 dni, więc dioda LED wygląda na zawieszoną. Szkic musi sam zdecydować, kiedy przestać skracać czas oczekiwania — o tym jest następna lekcja.
Wyzwanie
ŁatwySpraw, aby dioda LED podłączona do pinu 13 migała coraz szybciej:
- na górze dodaj
int waitTime = 1000; - w
loop()migaj, używającdelay(waitTime)dla obu opóźnień - na końcu
loop()zmniejszwaitTimeo 200
Naciśnij Run i obserwuj, aż program się zawiesi, a następnie naciśnij Check.
Spróbuj swoich sił
// utwórz tutaj waitTime
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
// zmniejsz waitTime
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Pierwsze obwody
3Matematyka na tablicy
Stałe nazwaneOperatory arytmetyczneDzielenie całkowiteLiczby dziesiętne typu floatMiganie, które przyspieszaPoćwicz samodzielnie: Edytor online Arduino