Jak podłączyć czujnik ruchu PIR do Arduino? Instrukcja krok po kroku dla majsterkowiczów

Czym właściwie jest czujnik PIR i czy warto zaczynać od niego przygodę z Arduino?

Kilka złotych. Tyle kosztuje najprostszy moduł PIR, a potrafi dać efekt, który wciąga na długie wieczory. Jeśli zastanawiasz się, jakie czujniki do Arduino wybrać na pierwszy projekt, PIR to strzał w dziesiątkę – nie wymaga lutowania, bibliotek ani zaawansowanej wiedzy o elektronice.

Zasada działania czujnika PIR – piroelektryka w praktyce

PIR to skrót od Passive Infrared. Kluczowe słowo: pasywny. Czujnik niczego nie emituje – tylko nasłuchuje promieniowania podczerwonego, które emituje każde ciepłe ciało, w tym człowiek. Wewnątrz siedzi element piroelektryczny podzielony na dwie połowy, przykryty soczewką Fresnela. Gdy przechodzisz przed czujnikiem, jedna połowa elementu odbiera więcej ciepła niż druga. Ta różnica generuje impuls, który elektronika modułu zamienia na sygnał cyfrowy.

I tu ważna rzecz: PIR nie wykrywa obecności, tylko zmianę w polu widzenia. Jeśli staniesz nieruchomo w pomieszczeniu, po kilku sekundach czujnik przestanie widzieć ruch. To nie awaria – tak to działa.

HC-SR501 vs. inne czujniki ruchu – co wybrać na start

HC-SR501 to absolutny klasyk. Zasilanie 4,5–20 V (świetnie, bo działa i z 5 V, i z 12 V), dwa potencjometry do regulacji, zworka do zmiany trybu pracy. Kosztuje tyle, co kawa.

Ale nie zawsze PIR wystarczy. Za szybą nie zadziała. W wysokiej temperaturze otoczenia (powyżej 35°C) traci czułość, bo różnica temperatur między ciałem a otoczeniem maleje. W takich przypadkach lepiej sprawdzają się czujniki mikrofalowe oparte na efekcie Dopplera – droższe, ale odporne na te ograniczenia. W ofercie abc-rc.pl znajdziesz oba typy, więc możesz dopasować rozwiązanie do konkretnego projektu.

Zanim podłączysz – co musisz przygotować na stanowisku pracy

Lista elementów i narzędzi

  • Arduino Uno, Nano lub ESP32 – każde zadziała, wybór zależy od reszty projektu
  • Moduł PIR HC-SR501
  • Przewody połączeniowe żeńsko-męskie – minimum 3 sztuki
  • Płytka stykowa (opcjonalnie, ale ułatwia życie)
  • Dioda LED + rezystor 220 Ω – do sygnalizacji wykrycia ruchu
  • Multimetr – bez niego diagnoza problemów zajmuje trzy razy dłużej

Uwagi o zasilaniu i poziomach logicznych

Moduł PIR zasilasz napięciem 5 V, a jego wyjście cyfrowe przyjmuje stan wysoki około 3,3 V. Arduino Uno odczyta to bez problemu. Przy ESP32 sprawdź, czy wybrany pin nie pełni przypadkiem innej funkcji (np. nie jest to pin strappingowy albo zajęty przez komunikację).

Jeśli budujesz coś więcej niż prototyp na biurku, pomyśl o porządnym zasilaczu do projektów – zasilanie z USB wystarcza do testów, ale w docelowym urządzeniu lepiej mieć stabilne 5 V ze źródła sieciowego.

Krok 1: Podłączenie czujnika PIR do Arduino – schemat i okablowanie

Opis wyprowadzeń modułu HC-SR501

Trzy piny. Tyle wystarczy do szczęścia.

Close-up of a PCB with sensors and tools, highlighting electronics engineering setup.
Fot. ThisIsEngineering / Pexels
  • VCC – zasilanie, podłącz do 5V na Arduino
  • GND – masa, podłącz do GND
  • OUT – sygnał cyfrowy, w naszym przykładzie pin 2

Na płytce są one opisane sitodrukiem, więc nie pomylisz ich nawet bez zaglądania do dokumentacji.

Podłączenie krok po kroku

  1. Podłącz VCC czujnika do pinu 5V na Arduino.
  2. Podłącz GND czujnika do pinu GND.
  3. Podłącz OUT czujnika do pinu cyfrowego 2.
  4. Diodę LED podłącz anodą (dłuższa nóżka) przez rezystor 220 Ω do pinu 13, katodą do GND.

Zwróć uwagę na zworki na module. W trybie retriggering (domyślnym) czujnik podtrzymuje stan wysoki tak długo, jak wykrywa ruch. W trybie non-retriggering sygnał trwa dokładnie tyle, ile ustawisz potencjometrem – niezależnie od tego, czy ktoś dalej się rusza.

Uwaga: po podłączeniu nie zasilaj układu od razu. Najpierw sprawdź, czy wszystkie przewody siedzą do końca w gniazdach. Luźny kabel na linii zasilania to najprostsza droga do usmażenia modułu.

Krok 2: Kalibracja czujnika – jak ustawić czułość i czas podtrzymania

Potencjometry Sx i Tx – co regulują

Potencjometr Funkcja Zakres
Sx Czułość (zasięg detekcji) ok. 3–7 metrów
Tx Czas podtrzymania sygnału ok. 3 sekundy – 5 minut

Oba kręcą się w zakresie około 270°. Delikatnie, bez siły – to mechaniczne potencjometry, łatwo je uszkodzić przy zbyt agresywnym obrocie.

Procedura kalibracji w praktyce

Po każdym obrocie potencjometru odczekaj 30–60 sekund. Moduł PIR potrzebuje czasu na stabilizację po zmianie ustawień. To najczęstszy błąd początkujących: kręcą potencjometrem i od razu testują, a potem dziwią się, że czujnik wariuje.

Ustaw czujnik w docelowym miejscu i obserwuj, czy nie łapie fałszywych alarmów. Typowi podejrzani: promieniowanie słoneczne padające na soczewkę, ruch powietrza z klimatyzacji, źródła ciepła w polu widzenia (grzejnik, czajnik).

Praktyczna zasada: najpierw ustaw Tx na minimum, wyreguluj Sx, a dopiero potem wydłużaj czas podtrzymania. Łatwiej wtedy wychwycić, co faktycznie wyzwala czujnik.

Krok 3: Kod Arduino – odczyt stanu czujnika i reakcja na ruch

Minimalny szkic – wykrywanie ruchu

Podstawowy szkic odczytuje stan pinu w pętli loop() i zapala diodę, gdy pojawi się stan wysoki. Użyj digitalRead() i prostego warunku if.

Detailed view of a robotic vehicle component showcasing wires and sensors.
Fot. Lisha Dunlap / Pexels
int pirPin = 2;
int ledPin = 13;

void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  int ruch = digitalRead(pirPin);
  if (ruch == HIGH) {
    digitalWrite(ledPin, HIGH);
    Serial.println("Wykryto ruch!");
  } else {
    digitalWrite(ledPin, LOW);
  }
  delay(100);
}

Rozbudowa: licznik zdarzeń i sterowanie przekaźnikiem

Problem z powyższym kodem: przy ciągłym ruchu dioda świeci non stop, a port szeregowy zalewa się wiadomościami. Dodaj zmienną przechowującą czas ostatniego zdarzenia i warunek czasowy:

unsigned long ostatniRuch = 0;
if (ruch == HIGH && millis() - ostatniRuch > 2000) {
  ostatniRuch = millis();
  Serial.println("Nowe zdarzenie ruchu");
}

Dzięki temu każde zdarzenie rejestrujesz raz na 2 sekundy, niezależnie od tego, jak długo czujnik trzyma stan wysoki.

Jeśli chcesz sterować oświetleniem, nie podłączaj obciążenia bezpośrednio do pinu Arduino. Potrzebujesz modułu przekaźnikowego z transoptorem. Odpowiednie moduły znajdziesz w abc-rc.pl – zwróć uwagę na wersje z optoizolacją, są bezpieczniejsze dla mikrokontrolera.

Krok 4: Testowanie i typowe problemy – co może pójść nie tak

Czujnik nie reaguje – diagnoza krok po kroku

  1. Zmierz multimetrem napięcie na VCC – powinno być 5 V.
  2. Zmierz stan na pinie OUT – przy ruchu powinno pojawić się ~3,3 V.
  3. Sprawdź w kodzie, czy numer pinu zgadza się z tym, do którego podłączyłeś przewód.
  4. Odczekaj 30–60 sekund po włączeniu zasilania – moduł potrzebuje stabilizacji.

Fałszywe alarmy i niestabilne działanie

Najczęstsze przyczyny: zbyt wysoka czułość, czujnik skierowany na okno albo źródło ciepła, brak stabilizacji po włączeniu zasilania. Zdarza się też, że moduł jest po prostu wadliwy – chińskie klony HC-SR501 mają spory rozrzut jakościowy. Kupując w sprawdzonym sklepie z elementami elektronicznymi, jak abc-rc.pl, zmniejszasz ryzyko trafienia na bubla.

Pamiętaj też, że PIR nie wykryje ruchu przez szybę. Jeśli potrzebujesz detekcji w takich warunkach, rozważ czujnik mikrofalowy.

I jeszcze jedno – regularnie przecieraj soczewkę miękką ściereczką. Kurz i tłuszcz osadzające się na plastiku realnie zmniejszają skuteczność detekcji. Brzmi banalnie, ale widziałem już projekty, w których „zepsuty" czujnik po prostu był brudny.

Co dalej? Rozbudowa projektu i inne czujniki do Arduino

Od pojedynczego PIR do systemu automatyki

Gdy opanujesz PIR, naturalnym krokiem jest dodanie czujnika zmierzchu (fotorezystor lub BH1750), czujnika temperatury (DHT22) i modułu przekaźnikowego. Powstanie prosty system automatyki domowej, który zapala światło tylko wtedy, gdy jest ciemno i ktoś wchodzi do pomieszczenia.

Close-up of hands assembling electronic components on a breadboard with wires.
Fot. Chengxin Zhao / Pexels

Przy rozbudowie projektu przydadzą się porządne złącza elektryczne – szczególnie jeśli planujesz wersję montowaną na stałe, a nie prototyp na płytce stykowej. Warto też zajrzeć do naszego poradnika o tym, jak wybrać mikrokontroler do projektu – dowiesz się, czy wystarczy Ci Arduino Uno, czy lepiej od razu sięgnąć po ESP32 z Wi-Fi.

Powiązane poradniki i rankingi

Sprawdź ranking czujników do Arduino dostępnych w abc-rc.pl – znajdziesz tam sprawdzone moduły w przystępnych cenach, które sprawdzą się zarówno w prostych, jak i zaawansowanych projektach. Jeśli myślisz o sterowaniu oświetleniem lub roletami, przyda Ci się nasz artykuł o systemach sterowania – pokazujemy w nim, jak połączyć kilka czujników w spójny, niezawodny układ.

A jeśli szukasz narzędzi do obudowy lub wykończenia projektu, zwróć uwagę na Zestaw Pędzli Płaskich – przydaje się przy malowaniu obudów i elementów dekoracyjnych, gdy chcesz nadać swojemu urządzeniu estetyczny wygląd zamiast zostawiać gołe PCB.

Podsumowanie – cała procedura w skrócie

  1. Przygotuj elementy: Arduino, moduł PIR HC-SR501, przewody, dioda LED z rezystorem, multimetr.
  2. Podłącz: VCC → 5V, GND → GND, OUT → pin 2, dioda → pin 13.
  3. Skalibruj: ustaw Sx (czułość) i Tx (czas podtrzymania), odczekaj 30–60 s po każdej zmianie.
  4. Wgraj kod: zacznij od minimalnego szkicu, potem dodaj licznik zdarzeń i warunek czasowy.
  5. Przetestuj: sprawdź napięcia multimetrem, wyeliminuj źródła fałszywych alarmów, wyczyść soczewkę.

Cały projekt zajmuje może godzinę, a daje solidne podstawy pod znacznie poważniejsze konstrukcje. I szczerze? Większość problemów, z którymi się spotkasz, wynika z pośpiechu przy kalibracji albo z zasilania z byle jakiego źródła. Poświęć te dodatkowe pięć minut na sprawdzenie połączeń – zaoszczędzisz sobie godzinę frustracji.

Najczesciej zadawane pytania

Czym jest czujnik PIR i jak działa?

Czujnik PIR (Passive Infrared) to pasywny czujnik podczerwieni, który wykrywa zmiany promieniowania cieplnego w swoim otoczeniu. Wykrywa ruch ludzi lub zwierząt emitujących ciepło, reagując na zmiany temperatury w polu widzenia. Nie emituje żadnego promieniowania, a jedynie je odbiera, dlatego nazywany jest pasywnym.

Jakie elementy są potrzebne do podłączenia czujnika PIR do Arduino?

Do podłączenia czujnika PIR do Arduino potrzebujesz: płytki Arduino (np. Uno), czujnika PIR (np. HC-SR501), przewodów połączeniowych (jumperów), płytki stykowej (opcjonalnie) oraz kabla USB do podłączenia Arduino do komputera. Niektóre czujniki PIR mogą wymagać dodatkowego zasilania 5V, które zapewnia samo Arduino.

Jak podłączyć czujnik PIR do Arduino krok po kroku?

Podłączenie jest proste: 1) Podłącz pin VCC czujnika PIR do pinu 5V na Arduino. 2) Podłącz pin GND czujnika do pinu GND na Arduino. 3) Podłącz pin OUT (lub SIG) czujnika do dowolnego pinu cyfrowego na Arduino, np. pinu 2. 4) Wgraj odpowiedni kod, który odczyta stan pinu cyfrowego i wykryje ruch. Pamiętaj o zachowaniu ostrożności przy podłączaniu, aby nie uszkodzić układu.

Jakie parametry czujnika PIR można regulować?

Większość czujników PIR, takich jak HC-SR501, posiada dwa potencjometry do regulacji: 1) Czułość (Sensitivity) – określa odległość, na jaką czujnik wykrywa ruch (zwykle od 3 do 7 metrów). 2) Opóźnienie (Time Delay) – określa, jak długo po wykryciu ruchu sygnał na wyjściu pozostaje aktywny (od kilku sekund do kilku minut). Dodatkowo niektóre modele mają zworkę do wyboru trybu retriggering (ciągłe wykrywanie) lub non-retriggering (pojedyncze wykrycie).

Dlaczego czujnik PIR może dawać fałszywe alarmy i jak temu zapobiec?

Fałszywe alarmy mogą być spowodowane przez: 1) Nagłe zmiany temperatury otoczenia (np. przeciąg, słońce). 2) Ruch zwierząt domowych. 3) Zakłócenia elektromagnetyczne. Aby temu zapobiec, umieść czujnik z dala od źródeł ciepła, klimatyzacji i bezpośredniego światła słonecznego. Możesz też zmniejszyć czułość potencjometrem lub zastosować osłonę (soczewkę Fresnela) skierowaną na obszar, który chcesz monitorować. Upewnij się również, że zasilanie jest stabilne.