Arduino & IoT Academy · Lekcja

Uruchamianie dwóch rzeczy jednocześnie

Jednocześnie migać diodą i odczytywać przycisk.

Lekcja 4 z 413 kroki

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. 🚀

Bezpłatny start

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

  1. int, float, bool na Arduino
  2. Dlaczego delay() blokuje wszystko
  3. Miganie bez delay() za pomocą millis
  4. Uruchamianie dwóch rzeczy jednocześnie
← Powrót do Arduino & IoT Academy