HC-SR501 jest popularnym pasywnym modułem czujnika ruchu w podczerwieni (PIR), który wykrywa ruch poprzez pomiar zmian promieniowania w podczerwieni w otoczeniu. Jest powszechnie stosowany w aktywowanym ruchu oświetleniu, systemach bezpieczeństwa i projektach IoT. Ten samouczek poprowadzi Cię przez konfigurowanie i użycie HC-SR501 z Arduino.
Czego będziesz potrzebować
- Moduł czujnika ruchu HC-SR501 PIR
- Arduino Board (np. UNO, Mega, Nano)
- Druty chleba i skoczków
- Komputer z zainstalowanym Arduino IDE
Krok 1: Zrozumienie czujnika HC-SR501
Moduł HC-SR501 ma regulowane ustawienia czułości i opóźnienia, co czyni go wszechstronnym dla różnych aplikacji wykrywania ruchu. Działa na mocy 5 V i wysyła wysoki sygnał po wykryciu ruchu.
HC-SR501 Pinout
| Szpilka | Funkcjonować | 
|---|---|
| VCC | Zasilacz (5 V) | 
| NA ZEWNĄTRZ | Cyfrowy sygnał wyjściowy | 
| GND | Grunt | 
Regulowane ustawienia
- Wrażliwość: Dostosuj zakres wykrywania (do ~ 7 metrów).
- Czas opóźnienia: Dostosuj czas trwania wysokiego sygnału po wykryciu ruchu (około 5 sekund do 5 minut).
Krok 2: Okablowanie HC-SR501 do Arduino
Oto jak podłączyć HC-SR501 z Arduino Uno:
| Pin HC-SR501 | PIN Arduino | 
|---|---|
| VCC | 5v | 
| NA ZEWNĄTRZ | Pin 2 | 
| GND | GND | 
Krok 3: Prześlij kod
Oto przykład szkicu do monitorowania wykrywania ruchu i wyświetlania statusu w monitor szeregowych:
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
void setup() {
  pinMode(pirPin, INPUT);
  Serial.begin(9600);
  Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
  int motionStatus = digitalRead(pirPin); // Read the sensor output
  if (motionStatus == HIGH) {
    Serial.println("Motion detected!");
  } else {
    Serial.println("No motion detected.");
  }
  delay(500); // Update every 500ms
}
Krok 4: Przetestuj konfigurację
- Podłącz Arduino do komputera za pomocą USB.
- Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
- Prześlij kod, klikając Wgrywać.
- Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
- Poruszaj się w zakresie czujnika i obserwuj status ruchu wydrukowany na monitorze szeregowym.
Opcjonalnie: kontrolowanie diody LED z ruchem
Możesz zmodyfikować kod, aby włączyć diodę LED po wykryciu ruchu:
Okablowanie diody LED
| Pin LED | PIN Arduino | 
|---|---|
| Anoda (+) | Pin 13 | 
| Katoda (-) | GND | 
Zmodyfikowany kod
const int pirPin = 2; // Connect HC-SR501 OUT to pin 2
const int ledPin = 13; // Connect LED to pin 13
void setup() {
  pinMode(pirPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  Serial.println("HC-SR501 PIR Motion Sensor Test");
}
void loop() {
  int motionStatus = digitalRead(pirPin); // Read the sensor output
  if (motionStatus == HIGH) {
    digitalWrite(ledPin, HIGH); // Turn on LED
    Serial.println("Motion detected!");
  } else {
    digitalWrite(ledPin, LOW); // Turn off LED
    Serial.println("No motion detected.");
  }
  delay(500); // Update every 500ms
}
Zastosowania HC-SR501
- Oświetlenie aktywowane ruchem
- Alarmy intruzowe
- Automatyzacja inteligentnej domu
- Urządzenia IoT wyzwalane zbliżeniami
Rozwiązywanie problemów
- Brak ruchu: Upewnij się, że czujnik jest prawidłowo zasilany, a czułość jest odpowiednio dostosowywana.
- Fałszywe wyzwalacze: Zmniejsz szum środowiskowy (np. Źródła ciepła) i unikaj bezpośredniej ekspozycji na światło słoneczne.
- Niestabilne odczyty: Sprawdź prawidłowe uziemienie i stabilny zasilacz.
Wniosek
Z powodzeniem połączyłeś czujnik ruchu HC-SR501 PIR z Arduino. Ten wszechstronny czujnik jest idealny do wykrywania ruchu w różnych projektach. Eksperymentuj z dodatkowymi funkcjami, takimi jak dostosowanie czułości lub zintegrowanie jej z innymi komponentami, aby stworzyć zaawansowane systemy oparte na ruchu!
 
            
 
      
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  