El HC-SR501 es un módulo de sensor de movimiento de infrarrojos pasivos populares (PIR) que detecta el movimiento midiendo los cambios de radiación infrarroja en sus alrededores. Se usa comúnmente en iluminación activada por el movimiento, sistemas de seguridad y proyectos de IoT. Este tutorial lo guiará a través de la configuración y el uso del HC-SR501 con Arduino.
Lo que necesitarás
- Módulo de sensor de movimiento PIR HC-SR501
- Arduino Board (por ejemplo, Uno, Mega, Nano)
- Cables de placa y jersey
- Una computadora con el Arduino IDE instalado
Paso 1: Comprender el sensor HC-SR501
El módulo HC-SR501 tiene sensibilidad ajustable y configuración de tiempo de retraso, lo que lo hace versátil para varias aplicaciones de detección de movimiento. Funciona con potencia de 5V y genera una señal alta cuando se detecta el movimiento.
HC-SR501 PINOUT
Alfiler | Función |
---|---|
VCC | Fuente de alimentación (5V) |
AFUERA | Señal de salida digital |
Gnd | Suelo |
Configuración ajustable
- Sensibilidad: Ajuste el rango de detección (hasta ~ 7 metros).
- Tiempo de retraso: Ajuste la duración de la señal alta después del movimiento se detecta (aproximadamente 5 segundos a 5 minutos).
Paso 2: Cableado el HC-SR501 a Arduino
Aquí le mostramos cómo conectar el HC-SR501 a un Arduino Uno:
Pin HC-SR501 | Alfiler de arduino |
---|---|
VCC | 5V |
AFUERA | Pin 2 |
Gnd | Gnd |
Paso 3: cargar el código
Aquí hay un boceto de ejemplo para monitorear la detección de movimiento y mostrar el estado en el monitor en serie:
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
}
Paso 4: prueba la configuración
- Conecte el Arduino a su computadora a través de USB.
- Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
- Cargar el código haciendo clic en Subir.
- Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en
9600
. - Muévase dentro del rango del sensor y observe el estado de movimiento impreso en el monitor en serie.
Opcional: controlar un LED con movimiento
Puede modificar el código para encender un LED cuando se detecte el movimiento:
Cableado el LED
Alfiler | Alfiler de arduino |
---|---|
Anodo (+) | Pin 13 |
Cátodo (-) | Gnd |
Código modificado
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
}
Aplicaciones del HC-SR501
- Iluminación activada por movimiento
- Alarmas de intruso
- Automatización inteligente del hogar
- Dispositivos IoT activados por la proximidad
Solución de problemas
- No hay movimiento detectado: Asegúrese de que el sensor esté alimentado correctamente y la sensibilidad se ajuste adecuadamente.
- Falsos desencadenantes: Reduzca el ruido ambiental (por ejemplo, fuentes de calor) y evite la exposición directa a la luz solar.
- Lecturas inestables: Verifique si hay una fuente de conexión a tierra adecuada y de alimentación estable.
Conclusión
Has interactuado con éxito el sensor de movimiento HC-SR501 PIR con Arduino. Este sensor versátil es perfecto para la detección de movimiento en varios proyectos. ¡Experimente con características adicionales, como ajustar la sensibilidad o integrarla con otros componentes, para crear sistemas avanzados basados en el movimiento!