Uruchamianie dwóch rzeczy jednocześnie
Jednocześnie migać diodą i odczytywać przycisk.
Uruchamianie dwóch rzeczy jednocześnie to bezpłatna lekcja Arduino & IoT Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Arduino & IoT Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Marzenie o wielozadaniowości
Prawdziwe urządzenia robią wiele rzeczy jednocześnie: migają światłem, a zarazem obserwują przycisk. Dzięki nieblokującemu odmierzaniu czasu płytka może wreszcie wykonywać oba zadania.
Każde zadanie ma własny licznik czasu
Sposób polega na użyciu jednego licznika czasu na zadanie. Miganiu należy przypisać własne previousMillis i interval, niezależnie od innych zadań do wykonania.
Śledź czas niezależnie
Przechowuj osobną wartość previousMillis dla diody LED, aby jej harmonogram nie mieszał się z innymi zadaniami sterowanymi czasem w tej samej pętli.
unsigned long ledPrevious = 0;
const long ledInterval = 500;Blok migania
Najpierw blok migania sprawdza własny licznik czasu. Po upływie 500 milisekund przełącza diodę LED i resetuje licznik, a następnie sterowanie przechodzi dalej.
if (millis() - ledPrevious >= ledInterval) {
ledPrevious = millis();
}Odczytuj przycisk w każdej iteracji pętli
Zaraz po bloku migania odczytujesz przycisk przy każdym obrocie pętli. Ponieważ nic nie zostało zamrożone, żadne naciśnięcie nie zostanie pominięte.
int state = digitalRead(buttonPin);Dwa zadania, jedna pętla
Teraz ta sama pętla obsługuje oba zadania: odmierza czas migania i sprawdza przycisk tysiące razy na sekundę. Sprawiają wrażenie wykonywanych jednocześnie.
Dodaj trzecie zadanie
Potrzebujesz więcej? Po prostu dodaj kolejny licznik czasu i blok, na przykład do odczytywania czujnika co dwie sekundy. Ten wzorzec łatwo skaluje się do wielu zadań.
Dbaj o szybkość pętli
Zasada, dzięki której to działa, brzmi: nigdy nie blokuj działania. Każda część pętli powinna wykonywać się szybko, aby pętla często wracała i sprawiedliwie obsługiwała wszystkie zadania.
To nie jest prawdziwa równoległość
Płytka nadal wykonuje tylko jedno zadanie naraz, ale robi to bardzo szybko. To wielozadaniowość kooperacyjna, w której każde zadanie wykonuje niewielką część pracy, a następnie oddaje sterowanie.
Pozbądź się długiego delay
Jedno długie delay w dowolnym miejscu niszczy całe wrażenie równoczesności, ponieważ zamraża każde zadanie. Zastąp pauzy sprawdzaniem millis, aby zachować płynność działania.
Serce responsywnego IoT
Ten styl oparty na maszynie stanów, czyli wielu małych sprawdzeniach czasu w jednej pętli, jest podstawą budowy responsywnych czujników, wyświetlaczy i urządzeń połączonych z siecią.
Szybkie sprawdzenie
Jak jedna pętla może jednocześnie migać diodą LED i odczytywać przycisk?
Podsumowanie
Połączyłeś liczniki czasu w jednej pętli, aby uzyskać wielozadaniowość: jednocześnie migać i odczytywać przycisk, bez blokującego delay. To podstawowa umiejętność potrzebna przy tworzeniu prawdziwych urządzeń IoT. 🚀
Ucz się C++ dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Uruchamianie dwóch rzeczy jednocześnie” jest bezpłatna?
Tak — pełny tekst „Uruchamianie dwóch rzeczy jednocześnie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Arduino & IoT Academy, przejdź na CoddyKit PRO. Kurs Arduino & IoT Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uruchamianie dwóch rzeczy jednocześnie”?
Jednocześnie migać diodą i odczytywać przycisk. Ćwiczysz Arduino & IoT Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Arduino & IoT Academy?
Nie wymagamy żadnego doświadczenia. Arduino & IoT Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Uruchamianie dwóch rzeczy jednocześnie”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Arduino & IoT Academy?
Tak. Każda lekcja Arduino & IoT Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- int, float, bool na Arduino
- Dlaczego delay() blokuje wszystko
- Miganie bez delay() za pomocą millis
- Uruchamianie dwóch rzeczy jednocześnie