Budowlaniec Napisano Wrzesień 3, 2018 Udostępnij Napisano Wrzesień 3, 2018 Witam wszystkich serdecznie, niedawno zakupiłem podstawowy zestaw Arduino przeznaczony do nauki z kursu. Przebrnąłem migem przez 2 pierwsze lekcje i postanowiłem zrobić coś prostego na własną rekę (grę). Polegać ma ona na tym, że 3 LEDy zmieniają się co 2s (czerowny, zółty, zielony) trzeba wcisnąć przycisk w momencie gdy pali się zielona dioda - wtedy zapala się niebieska dioda (na chwile) i szybkość zmiany LEDów rośnie dwukrotnie. Problem w tym, że kod który póki co napisałem uwzględnia czas w którym można kliknąć przycisk jako pojedynczy punkt (nie jako cały przedział w którym pali się dioda zielona). Pytanie czy jest jakieś proste rozwiązanie tego problemu. (np. w javascripcie mamy tzw. event listener)? int level = 1; void setup() { pinMode(1, OUTPUT); //niebieska pinMode(8, OUTPUT); //czerwona pinMode(7, OUTPUT); //zolta pinMode(6, OUTPUT); //zielona pinMode(0, INPUT_PULLUP); //przycisk } void loop() { digitalWrite(1, LOW); digitalWrite(8, HIGH); delay(2000/level); digitalWrite(7, HIGH); digitalWrite(8, LOW); digitalWrite(1, LOW); delay(2000/level); if (digitalRead(0)==LOW) { digitalWrite(1, HIGH); level = level + 1; } digitalWrite(6, HIGH); digitalWrite(7, LOW); delay(2000/level); } Cytuj Link do komentarza Share on other sites More sharing options...
deshipu Wrzesień 3, 2018 Udostępnij Wrzesień 3, 2018 (edytowany) Twój "event listener" tutaj nazywa się "przerwanie", ale jest prostszy sposób w tym konkretnym przypadku. Po prostu zamiast czekać te 2 sekundy, a potem sprawdzać przycisk, zrób sobie pętlę, która czeka 0.01 sekundy i sprawdza przycisk i wykonuje się 200 razy. Edytowano Wrzesień 3, 2018 przez deshipu Cytuj Link do komentarza Share on other sites More sharing options...
Budowlaniec Wrzesień 3, 2018 Autor tematu Udostępnij Wrzesień 3, 2018 Dzięki, zadziałało Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!