KWALIFIKACJA ELM2 - TEST WIEDZY NR 10

PYTANIE NR 34.
Rozważ następujący fragment kodu:
void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}
Jaki jest cel tego kodu w kontekście montażu i instalowania układów elektronicznych?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Kod ustawia pin 13 jako wyjście (pinMode) i w pętli loop() przełącza go naprzemiennie na HIGH oraz LOW co 1000 ms (delay). W efekcie na pinie 13 powstaje sygnał cyfrowy 0/1 o okresie ok. 2 s (często jako "miganie" LED na płytce). Nie jest to pomiar ani PWM.

Pełne wyjaśnienie:

Program ma typową strukturę dla Arduino: setup() wykonuje się raz po uruchomieniu, a loop() powtarza się w nieskończoność. W setup() wywołanie pinMode(13, OUTPUT) konfiguruje pin 13 jako wyjście cyfrowe, czyli takie, na którym mikrokontroler może wystawiać stan logiczny.

W loop() występuje sekwencja: digitalWrite(13, HIGH) (ustawienie stanu wysokiego), odczekanie delay(1000) (około 1 s), następnie digitalWrite(13, LOW) (stan niski) i ponowne delay(1000). To powoduje cykliczne przełączanie 0/1, czyli generowanie przebiegu prostokątnego na wyjściu. W praktyce jest to często używane jako test montażu i uruchomienia: można podłączyć diodę LED z rezystorem lub wykorzystać diodę wbudowaną w płytkę i obserwować jej miganie.

Odpowiedź "Kod ten służy do pomiaru napięcia na pinie 13" jest błędna, bo w kodzie nie ma funkcji odczytu (np. analogRead/digitalRead) ani procedury pomiarowej; samo ustawianie i przełączanie stanu nie wykonuje pomiaru.

Odpowiedź "Kod ten służy do generowania sygnału PWM na pinie 13" jest błędna, ponieważ PWM wymaga modulacji wypełnienia (zwykle przez funkcję analogWrite lub konfigurację timerów). Tutaj jest tylko wolne przełączanie HIGH/LOW z opóźnieniem 1 s, bez sterowania wypełnieniem.

Odpowiedź "Kod ten służy do pomiaru rezystancji na pinie 13" również jest błędna: pomiar rezystancji nie jest realizowany wprost przez takie instrukcje, wymaga układu pomiarowego (np. dzielnika napięcia) i odczytu sygnału przez przetwornik ADC lub inne metody.

Wskazówka egzaminacyjna: jeśli w kodzie widzisz pinMode(..., OUTPUT) oraz digitalWrite(HIGH/LOW), myśl o sterowaniu sygnałem cyfrowym. Jeśli pojawia się analogWrite (na pinach z PWM), dopiero wtedy rozważ PWM.

Dodatkowe pytania

Dodatkowe pytania (FAQ):

pinMode ustawia tryb pracy pinu mikrokontrolera.

W tym kodzie pinMode(13, OUTPUT) przełącza pin 13 w tryb wyjścia, aby można było podawać na niego stany logiczne HIGH/LOW. Bez tego pin może pozostać wejściem i sterowanie obciążeniem byłoby niepoprawne.

HIGH i LOW oznaczają stany logiczne wyjścia, a nie "dowolne" napięcie.

W praktyce HIGH jest bliskie napięciu zasilania logiki płytki, a LOW bliskie masie (GND). Dokładne wartości zależą od konkretnej płytki i obciążenia, więc w pomiarach mogą wystąpić spadki.

Bo pin 13 jest przełączany naprzemiennie na HIGH i LOW co 1 sekundę.

Jeśli do pinu 13 jest podłączona dioda LED (np. wbudowana na wielu płytkach) oraz ograniczenie prądu, to podczas HIGH dioda świeci, a podczas LOW gaśnie. Takie "blink" to klasyczny test uruchomieniowy po montażu.

Nie, to nie jest PWM.

PWM wymaga szybkiej modulacji z kontrolą wypełnienia (najczęściej przez analogWrite lub konfigurację timerów). Tutaj jest tylko wolne przełączanie HIGH/LOW z delay(1000), więc otrzymujesz sygnał cyfrowy 0/1 o okresie około 2 sekund.

Stan HIGH trwa ok. 1 s, a stan LOW trwa ok. 1 s.

Okres wynosi więc ok. 2 s, a częstotliwość to w przybliżeniu 1/2 s = 0,5 Hz. W praktyce dojdzie niewielki narzut wykonania instrukcji, ale dla zadań egzaminacyjnych zwykle przyjmuje się wartości wynikające z delay().

Najczęściej podczas uruchamiania i diagnostyki po zmontowaniu płytki lub prototypu.

Miganie na wyjściu pozwala szybko sprawdzić, czy mikrokontroler działa, czy zasilanie i masa są poprawnie podłączone oraz czy ścieżki i elementy (np. LED z rezystorem, tranzystor sterujący) są wlutowane prawidłowo.

Do testu z diodą LED potrzebujesz rezystora ograniczającego prąd oraz poprawnej polaryzacji LED.

Typowo LED łączy się szeregowo z rezystorem i dołącza między pin a masę lub między zasilanie a pin (zależnie od sposobu sterowania). Bez rezystora można uszkodzić LED lub przeciążyć wyjście.

Bo w kodzie nie ma żadnego odczytu sygnału ani procedury pomiarowej.

Do pomiaru napięcia potrzebujesz funkcji odczytu (np. analogRead) i odpowiedniego podłączenia do wejścia. Do pomiaru rezystancji konieczny jest układ pomiarowy (np. dzielnik) i interpretacja wyniku; samo digitalWrite tylko steruje stanem.

Częste pomyłki to:

  • mylenie przełączania HIGH/LOW z PWM,
  • ignorowanie tego, że setup() wykonuje się raz,
  • brak powiązania kodu z efektem elektrycznym na pinie,
  • zakładanie "pomiaru" bez wystąpienia funkcji odczytu.

Pin 13 jest wygodny do testów, ale nie zawsze najlepszy do obciążeń.

Na wielu płytkach jest powiązany z diodą wbudowaną lub innymi elementami, co może wpływać na sygnał. Do większych obciążeń stosuje się układy pośredniczące (tranzystor, driver, przekaźnik) i dobiera piny zgodnie z wymaganiami projektu.

info

To pytanie poprawnie rozwiązuje 59% zdających egzamin. średnie

Specjaliści zwracają uwagę: "Kod ustawia pin 13 jako wyjście (pinMode) i w pętli loop() przełącza go naprzemiennie na HIGH oraz LOW co 1000 ms (delay)."

Źródła:

  • Arduino Reference: pinMode() — https://docs.arduino.cc/language-reference/en/functions/digital-io/pinmode/ (dostęp: 2026-03-02)
  • Arduino Reference: digitalWrite() — https://docs.arduino.cc/language-reference/en/functions/digital-io/digitalwrite/ (dostęp: 2026-03-02)
  • Arduino Reference: delay() — https://docs.arduino.cc/language-reference/en/functions/time/delay/ (dostęp: 2026-03-02)

Materiały:

  • Dokumentacja funkcji Arduino: pinMode(), digitalWrite(), delay() (oficjalne reference)
  • Przykład "Blink" jako podstawowy test działania wyjścia cyfrowego
  • Materiały o sygnałach cyfrowych i PWM w mikrokontrolerach (różnice i zastosowania)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego