Program ma typową strukturę Arduino: setup() wykonuje się raz po starcie, a loop() powtarza się w nieskończoność.
W setup() wywołanie pinMode(13, OUTPUT) ustawia pin 13 jako wyjście cyfrowe, czyli taki pin może wystawiać stan wysoki lub niski, aby sterować np. diodą LED (na wielu płytkach Arduino pin 13 jest połączony z wbudowaną diodą).
W loop() wykonywana jest sekwencja:
- digitalWrite(13, HIGH) – ustawienie stanu wysokiego, czyli LED świeci (ON),
- delay(1000) – zatrzymanie programu na 1000 ms (1 s),
- digitalWrite(13, LOW) – ustawienie stanu niskiego, czyli LED gaśnie (OFF),
- delay(1000) – ponownie 1 s przerwy.
Ponieważ całość jest w pętli loop(), dioda jest cyklicznie włączana i wyłączana, czyli po prostu miga. Dioda zmienia stan co 1 sekundę (raz się zapala, raz gaśnie), ale pełny okres migania to 1 s świecenia + 1 s zgaszenia = 2 s. Z tego wynika częstotliwość pełnego cyklu: f = 1/T = 1/2 s = 0,5 Hz.
Dlaczego pozostałe odpowiedzi są błędne?
- "Steruje diodą LED z częstotliwością 1 Hz." – 1 Hz oznacza jeden pełny cykl na sekundę. Tutaj pełny cykl trwa 2 sekundy, więc jest 0,5 Hz. To częsty błąd wynikający z mylenia "co sekundę zmienia stan" z "1 Hz".
- "Włącza diodę LED na stałe." – po włączeniu (HIGH) program po 1 s przechodzi do wyłączenia (LOW), więc nie ma świecenia ciągłego.
- "Wyłącza diodę LED na stałe." – analogicznie, zanim dioda zostanie wyłączona, jest włączana na 1 s, a cały cykl stale się powtarza.
Wskazówka egzaminacyjna: gdy w kodzie widzisz naprzemienne HIGH i LOW rozdzielone delay(), policz czas świecenia i czas zgaszenia. Dopiero suma daje okres, a z okresu liczysz częstotliwość.