Sterowanie elektroniką w C/C++ z użyciem Arduino
Scenariusz zajęć realizowanych zgodnie z metodologią STEM w oparciu o zasoby Zintegrowanej Platformy Edukacyjnej, opracowany w ramach rządowego programu wspierania organów prowadzących szkoły i placówki w rozwijaniu umiejętności cyfrowych dzieci i młodzieży na lata 2025‑2029 – „Cyfrowy Uczeń” (Dz.U.2025.1254)
Informacje ogólne
Imię i nazwisko autora: Roman Frąckowiak
Przedmiot wiodący:
informatyka
Filary metodologii STEM realizowane w ramach zajęć:
(S) przedmioty przyrodnicze
fizyka
(T) technologie
informatyka
(E) inżynieria
(M) matematyka
Etap edukacyjny:
III etap - szkoła ponadpodstawowa
liceum ogólnokształcące
technikum
Pracownia STEM wspierana przez scenariusz:
P3: Pracownia przyrodnicza
Czas potrzebny na realizację zajęć:
90 minut (2 godziny lekcyjne)
Sugerowany sposób organizacji czasu:
zajęcia realizowane w całości w sposób ciągły
Krótki opis zajęć
Lekcja wprowadza uczniów w podstawy programowania w języku opartym o C/C++ na platformie Arduino. Uczniowie poznają strukturę programu, działanie funkcji setup i loop oraz sposób sterowania prostym układem elektronicznym. W części praktycznej podłączają diodę LED i programują jej miganie, a następnie dodają przycisk i wykorzystują instrukcje warunkowe do kontroli działania układu. Ostatnim etapem jest odczyt temperatury z czujnika analogowego i reagowanie na przekroczenie progu. Po zajęciach uczniowie potrafią tworzyć proste programy, odczytywać dane z czujników i sterować elementami wykonawczymi.
Tytuły i odnośniki do e‑materiałów z ZPE, na podstawie których przygotowane są zajęcia
Cele lekcji oraz realizowane punkty podstawy programowej
Cel ogólny zajęć:
Celem lekcji jest wprowadzenie uczniów w podstawy programowania platformy Arduino Uno w języku opartym o C/C++ oraz rozwijanie umiejętności tworzenia prostych programów sterujących działaniem elementów elektronicznych poprzez odczyt danych z czujników i reagowanie na nie za pomocą instrukcji warunkowych.
Cele operacyjne w sferze kognitywnej zgodnie ze zrewidowaną taksonomią Blooma
Z zakresu pamiętania informacji
(przywoływanie istotnych informacji).
Uczeń:
wymienia podstawowe elementy zestawu opartego o platformę Arduino i podaje ich funkcje (m.in. platforma Arduino np. Arduino Uno, dioda LED, rezystor, przycisk, czujnik temperatury)
podaje kluczowe parametry diody LED i czujnika temperatury (np. napięcie zasilania, wymagany rezystor, zakres pomiarowy czujnika);
rozpoznaje podstawowe instrukcje programu Arduino w języku C/C++ (instrukcje
pinMode,digitalWrite,digitalRead,analogRead, funkcjesetup()iloop());identyfikuje zapis prostej instrukcji warunkowej
iforaz pętli (np. fragment programu migającego diodą);określa, jakiego rzędu wartości (zakres) zwraca funkcja odczytu analogowego z przetwornika (0–1023) oraz jakie jednostki mają zmierzone wielkości (stopnie Celsjusza dla temperatury).
Z zakresu rozumienia informacji
(wyjaśnienie istotnych informacji).
Uczeń:
wyjaśnia, jak działa prosty obwód z diodą LED i rezystorem oraz dlaczego zastosowanie rezystora ogranicza prąd w obwodzie (chroniąc diodę);
opisuje, w jaki sposób mikrokontroler Arduino odczytuje stan cyfrowy przycisku (stan wysoki 5V lub niski 0V) i jak wykorzystuje instrukcję warunkową do podjęcia decyzji na podstawie tego stanu
tłumaczy różnicę między sygnałem analogowym a cyfrowym na przykładzie czujnika temperatury (ciągła zmiana napięcia na wyjściu czujnika vs. dwa stany przycisku)
interpretuje fragment kodu programu Arduino zawierający instrukcję warunkową sterującą diodą LED (np. decydującą o zapaleniu diody w zależności od temperatury).
Z zakresu zastosowania informacji
(rozwiązywanie problemów o zamkniętej strukturze, o jednoznacznym rozwiązaniu).
Uczeń:
montuje prosty obwód elektroniczny na płytce stykowej według schematu, podłączając prawidłowo diodę LED, rezystor, przycisk oraz czujnik do odpowiadających im pinów Arduino
zapisuje program w środowisku Arduino IDE realizujący miganie diody LED z zadanym interwałem czasowym (wykorzystując funkcje
pinMode,digitalWriteorazdelay)stosuje instrukcję warunkową
if...elsedo sterowania działaniem diody w reakcji na stan przycisku (np. włącza diodę po naciśnięciu przycisku, wyłącza po zwolnieniu)wykorzystuje funkcję
analogReaddo odczytania wartości z czujnika analogowego i przelicza otrzymany odczyt na wartość fizyczną (temperaturę) zgodnie z podanym wzoremtworzy program używający pętli (np. głównej pętli programu w funkcji
loop()lub pętlifor) do ciągłego monitorowania stanu czujników i aktualizowania na bieżąco stanu diody LED (ciągłe próbkowanie czujnika w odstępach czasu).
Z zakresu analizowania, oceniania i tworzenia informacji
(rozwiązywanie problemów o otwartej strukturze, tworzenie własnych rozwiązań zadanych problemów, ocena dotycząca wartości idei lub materiałów).
Uczeń:
analizuje schemat połączeń układu oraz kod programu Arduino w poszukiwaniu błędów (np. nieprawidłowe wpięcie przewodu, brak średnika w kodzie) i proponuje poprawki umożliwiające prawidłowe działanie układu;
porównuje różne podejścia do odczytu sygnału z czujnika (np. zapalenie diody według progu vs. wyświetlanie dokładnej wartości temperatury) i dobiera odpowiednie rozwiązanie do postawionego zadania;
modyfikuje przykładowy kod programu, aby rozszerzyć jego funkcjonalność – na przykład wprowadza dodatkową diodę LED sygnalizującą inny zakres temperatur lub zmienia logikę tak, by dioda zapalała się po jednokrotnym naciśnięciu przycisku (zapas pamięci stanu);
projektuje własny prosty układ oparty na Arduino, rozwiązujący postawiony problem – np. „automatyczna lampka nocna” (zapalenie LED po wykryciu ciemności) lub „alarm temperaturowy” (sygnalizacja przekroczenia zadanej temperatury);
ocenia poprawność działania zrealizowanego układu na podstawie testów – sprawdza, czy dioda reaguje zgodnie z założeniami (na przycisk lub zmianę temperatury), oraz wyciąga wnioski na temat dokładności odczytu czujnika (np. porównując wskazania z termometrem wzorcowym).
Sposób realizacji zaplanowanych celów przez nauczyciela
Nauczyciel wyjaśnia podstawy elektroniki i działania programu, zadając uczniom pytania naprowadzające. Następnie pokazuje działanie przykładowego układu Arduino i omawia kod źródłowy, aby uczniowie zrozumieli zależność między połączeniami a programem.
W części praktycznej uczniowie pracują w parach, montują układ i wspólnie piszą pierwszą wersję programu. Każdy uczeń następnie samodzielnie uzupełnia lub rozszerza fragment kodu na swoim komputerze, aby utrwalić nowe umiejętności. W trakcie pracy uczniowie eksperymentują z parametrami programu i czujników, obserwując ich wpływ na działanie układu, co wspiera myślenie analityczne.
W razie problemów uczniowie pracują w małych grupach, ustalają przyczyny błędów i konsultują rozwiązania. Zajęcia kończą się wspólną dyskusją, podczas której omawiane są wyniki, najważniejsze wnioski i przykłady praktycznych zastosowań Arduino, co pozwala osiągnąć wszystkie cele lekcji.
Realizowane punkty podstawy programowej kształcenia ogólnego dla danego przedmiotu
Przygotowanie do zajęć
Przygotowanie nauczyciela
• Nauczyciel przygotowuje komputery z dostępem do Internetu i aktualnym środowiskiem Arduino IDE
• Przygotowuje stanowiska z kompletnymi zestawami np. Arduino Uno, kablem USB, płytką stykową oraz podstawowymi elementami (LED, rezystory, przyciski, czujnik temperatury). Upewnia się, że wszystko działa.
• Przygotowuje krótkie wprowadzenie teoretyczne o podstawach elektroniki i składni Arduino C/C++, w tym funkcjach setup() i loop().
• Korzysta z materiałów ZPE – diagramów, schematów i przykładów kodu, które pokazuje uczniom na początku zajęć.
• Opracowuje przykładowe programy (Blink, odczyt temperatury z zapalaniem diody), które posłużą jako demonstracja.
• Przygotowuje zadania praktyczne w formie kart pracy lub fragmentów kodu do uzupełnienia.
• Udostępnia uczniom linki do dodatkowych materiałów: filmów o projektach Arduino i symulacji w Tinkercad.
Co zrobić, aby zajęcia były dostępne dla wszystkich uczniów?
• Zapewnić ergonomiczne stanowiska i możliwość pracy na większych ekranach. Uczniowie mają dostęp do większych elementów oraz alternatywnych urządzeń wskazujących, jeśli tego potrzebują.
• Materiały przygotować w kilku formach: tekst, grafika, film i audio. Kod na rzutniku ma duży kontrast i wyraźną czcionkę. Polecenia są podzielone na proste etapy.
• Zastosować zróżnicowane metody pracy: montaż układu, obserwacja działania diody i praca w parach. Uczniowie mogą wybrać formę prezentacji efektów.
• Zadania mają różne poziomy trudności. Chętni dostają rozszerzenia, a uczniowie potrzebujący wsparcia mają uproszczone wersje oraz możliwość wydłużenia czasu.
• Nauczyciel używa prostego języka, wspiera polecenia przykładami i dba o to, by wszyscy zrozumieli instrukcje.
• W razie potrzeby zajęcia są konsultowane ze specjalistą, a uczniowie mogą liczyć na pomoc asystenta.
• Atmosfera sprzyja współpracy, błędy są traktowane jako element nauki, a uczniowie zachęcani są do wzajemnego wsparcia.
• Uczniowie mogą korzystać z Tinkercada, symulatorów i narzędzi blokowych, które ułatwiają programowanie i testowanie układów.
Przygotowanie uczniów
Zapoznać się z krótkim materiałem o mikrokontrolerach, podstawowych elementach elektronicznych oraz przykładach projektów Arduino.
Obejrzeć także krótki film demonstrujący działanie prostego układu, aby zobaczyć praktyczne zastosowanie omawianych treści.
• Rozwiązać quiz online sprawdzający znajomość podstawowych komponentów
Sformułować krótką refleksję na temat sposobu działania i programowania urządzeń
Uruchomić w domu opcjonalny projekt testowy Blink w programie Arduino IDE (dla chętnych).
Zabrać na lekcję zeszyty oraz – w miarę możliwości – własne laptopy i płytki Arduino. Pozostali skorzystają ze sprzętu szkolnego.
Zweryfikować poprawne działanie Arduino IDE, instalację sterowników lub dostęp do konta Tinkercad.
Powtórzyć zasady bezpiecznej pracy z niskim napięciem i zasady porządku na stanowisku.
Kluczowe zasady bezpieczeństwa podczas zajęć
Bezpieczeństwo pracy przy komputerze
Uczniowie dbają o prawidłową postawę, robią krótkie przerwy i trzymają porządek w kablach. Często zapisują kod i ostrożnie podłączają USB, aby nie uszkodzić portów ani płytki.
Bezpieczeństwo pracy z elektroniką
Zawsze odłączają zasilanie przed zmianą połączeń, stosują rezystory i sprawdzają schemat przed uruchomieniem. Dbają o to, by nie dotykać niepotrzebnie metalowych elementów w działającym układzie.
Cyberbezpieczeństwo
Korzystają wyłącznie z oficjalnych źródeł oprogramowania, nie otwierają podejrzanych linków i nie udostępniają haseł. Unikają przypadkowych pendrive’ów i zabezpieczają swoje konto w chmurze.
Praca zespołowa
W grupach jasno ustalają role, komunikują zmiany w układzie i wspólnie analizują błędy. Nauczyciel pilnuje równomiernego udziału obu osób.
Bezpieczeństwo korzystania z oprogramowania
Uruchamiają tylko kod z zaufanych źródeł i regularnie tworzą kopie zapasowe projektu. Nie kasują plików bez potrzeby i w razie problemów proszą o pomoc.
Porządek na stanowisku
Utrzymują porządek, odkładają elementy do pudełek i nie jedzą przy stanowisku. Przed zakończeniem lekcji sprawdzają, czy nic nie zostało podłączone lub rozsypane.
Bezpieczeństwo psychiczne
Nauczyciel buduje atmosferę akceptacji, podkreśla że błędy są częścią nauki i zachęca do zadawania pytań. Ważny jest wysiłek i współpraca, a nie rywalizacja.
Przebieg zajęć
Faza wprowadzająca
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
10 min | Przywitanie i wprowadzenie tematu: Przedstawia temat: czym jest Arduino i dlaczego programuje się je w C/C++. Pokazuje płytkę Arduino Uno, wskazuje najważniejsze elementy: mikrokontroler, piny cyfrowe, analogowe, zasilanie. Zadaje pytania: „Co według was steruje sygnalizacją świetlną?”, „Skąd urządzenia wiedzą, kiedy wykonać jaką akcję?”. Komunikuje, że uczniowie poznają podstawy sterowania diodą i odczytu czujnika. | Słuchają, zgłaszają swoje pomysły, podają przykłady urządzeń wykorzystujących mikrokontrolery (np. robot‑zabawka, termometr elektroniczny). Oglądają płytkę Arduino, próbują nazwać elementy. | Odwołaj się do znanych przykładów — np. lampki RGB, inteligentne urządzenia, roboty LEGO. Pokaz fizycznej płytki zwiększa zaangażowanie. |
10 min | Zaciekawienie uczniów: | Obserwują działanie układu, próbują wywnioskować, jak działa miganie. Zgłaszają swoje pomysły: „Pewnie ustawia się czas w programie”, „Dioda dostaje sygnał ON/OFF”. | Wybierz prosty przykład — migająca dioda natychmiast wciąga uczniów. Nie zagłębiaj się teraz w technikalia — ważne, by wzbudzić ciekawość. |
10 min | Określenie celów zajęć i zasad pracy: Przedstawia cele: uczniowie samodzielnie podłączą diodę LED, nauczą się podstawowych funkcji C/C++ ( | Notują cele, zadają pytania o nowe pojęcia (np. „Co to pin?”). Tworzą zespoły dwuosobowe i przygotowują stanowiska do pracy. | Uspokój uczniów: błędy są naturalne. Zachęć do eksperymentowania i wspólnego szukania rozwiązań. |
Faza realizacyjna
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
15 min | Migająca dioda LED: | Montują układ na płytce stykowej. Wpisują kod w Arduino IDE, kompilują i wgrywają na płytkę. Sprawdzają, czy dioda miga. Gdy nie działa — szukają błędu: połączenia, literówki w kodzie. | Najczęstszy błąd: odwrotnie wpięta dioda lub brak rezystora. Zachęć szybkie pary do eksperymentu: zmiana czasu migania, własne wzory błysków. Symulacja działania w aplikacji Tinkercard |
15 min | Sterowanie diodą przyciskiem | Podłączają przycisk zgodnie ze schematem. Piszą kod sterowania diodą. Wgrywają program i testują — naciskają przycisk i obserwują włączanie/wyłączanie LED. Poprawiają błędy w połączeniach lub kodzie. | Uważaj na błędne podpięcie przycisku (często wzdłuż, zamiast w poprzek rowka płytki). Uczniowie szybcy mogą wykonać wersję „klik = przełącz LED”, czyli przerzutnik programowy. |
15 min | Odczyt temperatury z czujnika TMP36 Pokazuje czujnik TMP36 i jego wyprowadzenia (5V – sygnał – GND). Wyjaśnia działanie czujnika i sposób przeliczenia napięcia na temperaturę. Prowadzi uczniów: | Podłączają czujnik do 5V, A0 i GND. Piszą kod obliczający temperaturę. Otwierają Serial Monitor i obserwują wartości. Ogrzewają czujnik dłonią i sprawdzają, czy po przekroczeniu progu dioda się zapala. | Przypomnij, by stosować float przy obliczeniach. Uczniów zachęcaj do testów: ogrzewanie czujnika, zmiana progu temperatury. Typowy błąd: złe podłączenie nóżek czujnika. |
Faza podsumowująca
Czas [min] | Działania nauczyciela | Działania uczniów | Uwagi / wskazówki metodyczne |
|---|---|---|---|
10 min | Podsumowanie i dyskusja: | Pokazują swoje układy, opowiadają jak działa ich program. Odpowiadają na pytania, wymieniają nowe umiejętności. Uczestniczą w krótkiej refleksji: „Dziś nauczyłem/am się…, ale muszę jeszcze popracować nad…”. | Zapisz na tablicy kilka kluczowych pojęć, które uczniowie dziś poznali. Zachęć do pomysłów na kolejne lekcje (np. alarm, sygnalizator ruchu). |
5 min | Zakończenie i porządkowanie stanowisk Poleca ostrożne odłączenie zasilania i rozmontowanie układów. Zbiera płytki i elementy, kontroluje porządek. | Wyłączają zasilanie, rozpinają układy, odkładają elementy do pudełek. | Przypomnij, by nie ciągnąć przewodów na siłę, chronić elementy. |
Po zajęciach
Propozycja działań dla uczniów, które mają na celu integrację i utrwalenie zdobytej wiedzy
Mini‑projekt podsumowujący – własny układ z Arduino
Uczniowie samodzielnie tworzą prosty projekt wykorzystujący diody, przyciski i czujniki. Mogą pracować na realnym zestawie lub w symulatorze Tinkercad. Przykładowe pomysły: automatyczna lampka z fotorezystorem, prosty alarm łączący przycisk i czujnik temperatury, gra reakcyjna z dwoma przyciskami.
Celem jest praktyczne wykorzystanie zdobytej wiedzy, zaplanowanie działania programu i dobór elementów. Chętni mogą zaprezentować projekty na kolejnych zajęciach.Mapa myśli lub infografika – „Arduino w pigułce”
Uczniowie przygotowują krótką notatkę wizualną podsumowującą lekcję. Mogą zrobić ją w formie plakatu, mapy myśli lub slajdu. Powinna zawierać: schemat działania setup() i loop(), podstawowe elementy elektroniczne, listę poznanych komend, fragment przykładowego kodu i najważniejsze wnioski z eksperymentów.
Celem jest uporządkowanie wiedzy i stworzenie prostej ściągi, która pomoże w dalszej nauce.
Propozycja ewaluacji lekcji i stopnia realizacji zaplanowanych celów edukacyjnych
Autoewaluacja uczniów
Po lekcji uczniowie wypełniają krótką ankietę:
• czego nauczyli się na zajęciach,
• co było dla nich najtrudniejsze,
• czego potrafią teraz dokonać, czego wcześniej nie umieli,
• czy czują się gotowi wykonać podobne zadanie samodzielnie.
Celem jest refleksja nad własnym postępem i wskazanie nauczycielowi, które elementy wymagają powtórzenia lub dodatkowych wyjaśnień.Szybka karta
Uczniowie zapisują trzy krótkie odpowiedzi:
• jedna rzecz, którą dziś zrozumieli,
• jedna rzecz, która ich zaciekawiła,
• jedno pytanie, które nadal mają.
Celem jest szybkie sprawdzenie zrozumienia materiału i zebranie pomysłów lub problemów, które warto omówić na kolejnych zajęciach.
Bibliografia i załączniki
Szczegółowy wykaz elementów e‑materiałów z ZPE wykorzystanych do opracowania scenariusza
Tytuł e‑materiału | Odnośnik | Element e‑materiału |
|---|---|---|
Podstawy pisania kodu | Szkic programu napisany w języku C/CC+ | |
Symulacja programu w środowisku Tinkercad | Program Blink w postaci układu blokowego oraz w języku C w programie Tinkercard | |
Prezentacja multimedialna | Elementy elektroniczne tj. Rezystor, kondensator, tranzystor | |
Interfejs Arduino IDE | E‑materiał dotyczący interfejsu Arduino IDE | |
Budowa wyświetlacza LCD 2×16 | E‑materiał dotyczący budowy wyświetlacza oraz podłączenia | |
Programowanie termometru z wyświetlaczem | E‑materiał dotyczący podłączenia terystora | |
Film z działania programu | Symulacja działania programu | |
Biblioteka LiquidCrystal_I2C | Instrukcja wyszukania biblioteki do podłączenia wyświetlacza | |
Rezystor | E‑materiał dotyczący działania rezystora |
Inne niezbędne środki i pomoce dydaktyczne
Drukarka 3D;
Zestaw długopisów 3D do prototypowania;
Programowalne zestawy do nauki programowania;
Programowalne kontrolery wraz z zestawem czujników.
Źródła literaturowe
https://www.arduino.cc
Przykładowy program
Kod programu Blink
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Kod programu - dioda świeci 3 sekundy - gaśnie po 2 sekundach
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(3000);
digitalWrite(LED_BUILTIN, LOW);
delay(2000);
}