Jak używać czujnika ruchu HC-SR501 PIR z Arduino

How to Use the HC-SR501 PIR Motion Sensor with Arduino

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ć

  1. Moduł czujnika ruchu HC-SR501 PIR
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Druty chleba i skoczków
  4. 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

  1. Wrażliwość: Dostosuj zakres wykrywania (do ~ 7 metrów).
  2. 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ę

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. 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

  1. Oświetlenie aktywowane ruchem
  2. Alarmy intruzowe
  3. Automatyzacja inteligentnej domu
  4. 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!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.