Altavoz PIR Espeluznante para Halloween: Efectos de Susto y Luz
Componentes y materiales
| Arduino UNO | 1 |
| Módulo MP3 | 1 |
| Módulo Relé 4 Canales | 1 |
| Sensor PIR HC-SR501 | 1 |
| Portapilas 3xAA (opcional) | 1 |
| Conector Aviación Estanco 2 pines | 3 |
| Caja Contenedor Estanca (190×60×120mm) | 1 |
| Pintura Spray Negra | 1 |
| Broca Madera 32mm | 1 |
| Broca Madera 16mm | 1 |
| USB Drive (formato FAT32) | 1 |
Sobre el proyecto
ACTUALIZACIÓN: Añadida variante "fantasma risueño" en ZIP y batería extra.
Quería hacer varias cajas de audio pequeñas y ocultas para el jardín de Halloween que asustaran a la gente al acercarse a la puerta. Esta es la más compleja y mi primer caso de prueba: tiene audio con banda sonora terrorífica y 2 efectos visuales de iluminación distintos.
Crédito a Kristian Blåsol por el concepto original de usar relé para controlar módulo amplificador MP3.
El concepto: caja autónoma alimentada por batería (o 12V externo) activada por movimiento, con dos salidas para LEDs 12V si se desea. Debe ser barata (<£20/$25), personalizable y resistir intemperie un día.
Opté por alimentación 12V externa (tengo enchufe exterior) para LEDs brillantes que consumen 2A. Funcionaría igual con batería 5V/12V (portapilas AA o powerbank 5000mAh) y LEDs 5V, solo cambiando la alimentación entrante.
Nota: tras uso prolongado, el Arduino no suministraba suficiente corriente al módulo MP3 a volumen alto y se reiniciaba. Añadí fuente 5V dedicada para el módulo MP3.
Parte 1: Construcción
Principio: Arduino UNO controla reproductor MP3 e iluminación mediante módulo relé 4 canales. Dos relés simulan pulsación de botones PLAY y PREVIOUS en el módulo MP3. Los otros dos conmutan los LEDs.
Cableado: 30AWG para control (100mm), 18AWG para 12V. Parece un lío pero hay espacio y facilita abrir la tapa. Usé conectores hembra para PIR y altavoz (tornillos en MP3) para poder desconectar la tapa.
Circuito según diagrama: 12V entra por conector estanco. Para conmutar LEDs externos, conecté -V entrada a -V salidas, y +V a través de relés.
Caja: taladro 32mm central para altavoz, 16mm lateral superior para PIR. Pintura spray negra para ocultar LEDs de placas y camuflar.
(No mostrado: impermeabilicé altavoz con parche de cámara de bicicleta y kit reparación, pegado por fuera para dejar salir sonido pero no agua. Atornillado a través.)
Altavoz atornillado, PIR pegado con pistola silicona (luego resina epoxi porque la silicona dejaba entrar agua).
Componentes dispuestos para acceder a puertos USB del MP3 y Arduino. (Si usa 5V, puede alimentar por USB del Arduino o micro-USB del MP3).
Tras probar y subir código, apliqué silicona en conexiones vulnerables (altavoz, etc.) para mayor robustez.
Nota: El módulo MP3 requiere USB/SD formateado FAT32; otros formatos no funcionaron.
Parte 2: Sonido
Archivo de audio editado con Audacity. Fuentes/créditos:
- Gritos
- Risa escalofriante
- "Te veo"
- Sonido pasos sobre piedra
Parte 3: Configuración
El archivo de audio y la conmutación de relés por Arduino están sincronizados en tiempo. Si usa otro audio, ajuste los tiempos en el código (marcados).
Parte 4: Prueba real
Parte 5: Montaje final








Código
// Asignación de pines
int pirSENSOR = 2; // Sensor PIR, sensibilidad y alcance al máximo
int previousBUTTON = 3; // Botón PREVIOUS en módulo MP3
int playBUTTON = 4; // Botón PLAY en módulo MP3
int whiteLED = 5; // Luz blanca intermitente
int redLED = 6; // Luz roja secuencia sangre/grito
int statusLED = 10; // LED estado
void setup() {
pinMode(pirSENSOR, INPUT);
pinMode(previousBUTTON, OUTPUT);
pinMode(playBUTTON, OUTPUT);
pinMode(whiteLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(statusLED, OUTPUT);
digitalWrite(previousBUTTON, HIGH); // HIGH = OFF/OPEN en mi relé
digitalWrite(playBUTTON, HIGH);
digitalWrite(whiteLED, HIGH);
digitalWrite(redLED, HIGH);
}
void loop() {
if (digitalRead(pirSENSOR) == HIGH) { // HIGH = movimiento detectado
// Reproducir sonido
digitalWrite(previousBUTTON, LOW); // Pulsa PREVIOUS (inicia desde principio)
delay(100);
digitalWrite(previousBUTTON, HIGH); // Suelta
delay(100);
// Secuencia LED blanco - llamar atención
digitalWrite(whiteLED, LOW); delay(1000);
digitalWrite(whiteLED, HIGH); delay(500);
digitalWrite(whiteLED, LOW); delay(500);
digitalWrite(whiteLED, HIGH); delay(9000);
// "Te veo" - patrón rápido
digitalWrite(whiteLED, LOW); delay(500);
digitalWrite(whiteLED, HIGH); delay(100);
digitalWrite(whiteLED, LOW); delay(500);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(500);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(300);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(300);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(300);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(300);
digitalWrite(whiteLED, HIGH); delay(6000);
// Sonidos niños
digitalWrite(whiteLED, LOW); delay(300);
digitalWrite(whiteLED, HIGH); delay(1000);
digitalWrite(whiteLED, LOW); delay(100);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(100);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(100);
digitalWrite(whiteLED, HIGH); delay(300);
digitalWrite(whiteLED, LOW); delay(100);
digitalWrite(whiteLED, HIGH); delay(1000);
digitalWrite(whiteLED, LOW); delay(600);
digitalWrite(whiteLED, HIGH); delay(1400);
digitalWrite(whiteLED, LOW); delay(100);
digitalWrite(whiteLED, HIGH); delay(7000);
// Grito / secuencia sangre (LED rojo)
digitalWrite(redLED, LOW); delay(3000);
digitalWrite(redLED, HIGH); delay(100);
// Parar sonido
digitalWrite(playBUTTON, LOW); // Pausa/stop
delay(100);
digitalWrite(playBUTTON, HIGH); // Suelta
delay(60000); // Espera 1 min antes de reactivar
} else {
digitalWrite(statusLED, HIGH); // Mantener LED estado encendido para consumir algo de corriente (algunas powerbanks se apagan si no hay carga)
}
}
Esquemáticos
Nota: esta variante tiene solo un pack de baterías. Luego añadí segunda fuente independiente para audio porque consumía mucha corriente y reiniciaba el Arduino.
PIR pegado y altavoz atornillado con tornillos plásticos
Archivos adjuntos:
voices_audio_dUluBtMyqG.mp3- Solo voces, sin efectos luz. 6 risas distintas al pasar gentelaughing_ghost_variant_VsB0Y8CTlM.zip- Variante fantasma risueñoarchive_IipdobBdHs.zip- Archivo completograveyard_ambience_sound_fx_(128_kbps)_nhuprhuJcc.mp3- Ambiente cementerio
Proceso de manufactura
- Construya una API robusta de temperatura y sensores en Raspberry Pi usando el módulo GY‑91
- Construya una Puerta con Auto‑Bloqueo Inteligente Usando la Proximidad Bluetooth de su Smartphone
- Domina GPIO de Raspberry Pi: interfaz sensor PIR movimiento en B+/Model 2
- Sistema de Seguridad Doméstico con Raspberry Pi: Detección de Movimiento PIR y Alertas por Email con Cámara
- Cómo Conectar, Calibrar y Programar el Sensor PIR HC‑SR501 con Raspberry Pi
- Elecciones de diseño Bluetooth Mesh: Módulo vs. Dispositivo discreto
- XR‑DIMM de Apacer: Memoria DDR4 robusta certificada DO‑160G para defensa y aviación
- emtrion lanza emCON‑MX8M Mini módulo compacto con NXP i.MX 8M Mini
- Congatec presenta módulo SMARC 2.0 con procesador NXP i.MX 8M Mini
- Sensor de Proximidad Inductivo: Diseño de Circuito, Funcionalidad y Aplicaciones Prácticas
- Cómo Funcionan los Circuitos de Sensor PIR: Diseño, Operación y Aplicaciones Reales