KWALIFIKACJA ELM3 - TEST WIEDZY NR 3

PYTANIE NR 8.
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Powyższy kod jest często używany do testowania układów programowalnych. Jaki jest główny cel tego kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Program ustawia pin 13 jako wyjście i w pętli przełącza go na HIGH oraz LOW z opóźnieniem 1000 ms między zmianami.
W efekcie dioda LED podłączona do pinu 13 miga z okresem około 2 s (1 s świeci, 1 s gaśnie), co służy do prostego testu działania układu i wgranego programu.

Pełne wyjaśnienie:

Ten fragment jest klasycznym przykładem typu blink używanym do szybkiego sprawdzenia, czy mikrokontroler działa, program został poprawnie wgrany i czy wyjście cyfrowe steruje elementem wykonawczym.

W funkcji setup() wykonywanej jednorazowo po starcie ustawiane jest pinMode(13, OUTPUT), czyli pin 13 pracuje jako wyjście. Następnie w nieskończonej pętli loop() program:

  • ustawia stan wysoki: digitalWrite(13, HIGH) (na wyjściu pojawia się stan logiczny "1"),
  • czeka 1000 ms: delay(1000),
  • ustawia stan niski: digitalWrite(13, LOW) (stan logiczny "0"),
  • znów czeka 1000 ms.

Efektem jest cykliczne włączanie i wyłączanie diody LED (jeśli jest podłączona do tego pinu), co pozwala łatwo zauważyć rezultat bez dodatkowych przyrządów.

Odpowiedź "Testowanie szybkości procesora" jest błędna, bo kod nie mierzy czasu wykonania, nie zlicza operacji ani nie raportuje wyników — wprost wprowadza stałe, długie opóźnienia.

Odpowiedź "Sprawdzanie poprawności połączeń w układzie" może brzmieć kusząco, ale jest zbyt ogólna: program nie sprawdza wejść ani nie weryfikuje połączeń czujników. Co najwyżej pośrednio potwierdza, że wyjście i LED są podłączone tak, by było widać miganie.

Odpowiedź "Generowanie sygnału PWM" jest niepoprawna, ponieważ PWM wymaga sterowania wypełnieniem i zwykle realizuje się je funkcją analogWrite (lub timerem). Tutaj mamy proste przełączanie 0/1 z bardzo małą częstotliwością, bez regulacji wypełnienia w typowym sensie PWM.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Ustawia pin 13 jako wyjście cyfrowe, czyli mikrokontroler może na nim wymuszać stan wysoki lub niski. Bez tego pin mógłby pozostać wejściem, a sterowanie diodą LED byłoby niepewne albo nieskuteczne.
W każdej iteracji pętli pin 13 jest ustawiany na stan wysoki, po czym program czeka 1000 ms. Następnie ustawia stan niski i znowu czeka 1000 ms. To daje cykl: 1 s świeci, 1 s gaśnie, powtarzany bez końca.
Bo daje natychmiastowy, widoczny efekt działania: dioda miga, więc wiadomo, że jest zasilanie, mikrokontroler startuje, program się wykonuje i wyjście cyfrowe działa. To szybki test przed podłączaniem czujników i napędów.
Nie w typowym znaczeniu PWM. Program tylko przełącza stan 0/1 z długim opóźnieniem. PWM to zwykle szybkie przełączanie z kontrolą wypełnienia, realizowane np. przez timery lub dedykowane funkcje, a nie przez proste delay().
Stan wysoki trwa 1 s, stan niski trwa 1 s, więc cały okres to ok. 2 s. Odpowiada to częstotliwości ok. 0,5 Hz. To wystarcza do obserwacji wzrokowej, ale nie jest to sygnał do sterowania mocy jak w PWM.
Test wydajności wymaga pomiaru czasu lub liczby operacji, a tutaj celowo wstawiono stałe opóźnienia 1000 ms. To "spowalnia" działanie programu niezależnie od mocy obliczeniowej, więc nie da się na tej podstawie ocenić szybkości CPU.
Najczęstsze przyczyny to: błędne podłączenie diody i rezystora, użycie innego pinu niż 13, uszkodzona dioda, brak masy wspólnej lub problem z zasilaniem. W praktyce warto też sprawdzić, czy program faktycznie się wgrał.
Należy zmienić wartości w delay(). Mniejsza liczba milisekund przyspieszy miganie, większa je spowolni. Jeśli ustawisz np. delay(200), dioda będzie świecić 0,2 s i gasnąć 0,2 s, co da szybszy cykl.
W ELM.3 to typowy test uruchomieniowy sterownika: potwierdza działanie wyjść, okablowania na płytce prototypowej i procesu wgrywania programu. Pomaga odróżnić problem programowy od sprzętowego zanim podłączysz elementy systemu mechatronicznego.
Uczniowie często kojarzą "zmienianie stanu pinu" z PWM i ignorują, że PWM wymaga szybkiego przełączania oraz kontroli wypełnienia. Pomaga zapamiętać, że delay() daje wolne miganie, a PWM zwykle realizuje się sprzętowo timerem lub inną funkcją.
info

To pytanie poprawnie rozwiązuje 72% zdających egzamin. średnio łatwe

Źródła:

  • Arduino Documentation: pinMode() — https://docs.arduino.cc/language-reference/en/functions/digital-io/pinMode/ (accessed 2026-03-01)
  • Arduino Documentation: digitalWrite() — https://docs.arduino.cc/language-reference/en/functions/digital-io/digitalwrite/ (accessed 2026-03-01)
  • Arduino Documentation: delay() — https://docs.arduino.cc/language-reference/en/functions/time/delay/ (accessed 2026-03-01)

Materiały:

  • Dokumentacja Arduino: referencje funkcji pinMode, digitalWrite, delay
  • Podręcznik/lekcje o wejściach i wyjściach cyfrowych mikrokontrolera
  • Materiały do ćwiczeń: montaż LED z rezystorem i test na płytce prototypowej

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego