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!