Introducción
En este tutorial vamos a crear una alarma utilizando un haz de luz láser y un sensor PIR (sensor de movimiento infrarrojo pasivo).
Por un lado el sensor PIR será el encargado de detectar cualquier movimiento a una distancia de unos 3 m y por otro lado tendremos un sensor de luz que detectará si se interrumpe en algún momento el haz de luz de un diodo láser que incide sobre él.
Para este proyecto utilizaremos módulos Grove, estructuras de Makeblock, Grove wrappers, un laser de 5mW /650nm y un Arduino UNO al que acoplaremos la shield “Grove Base Shield V2.0 for Arduino”.
El funcionamiento de la alarma será el siguiente:
Al encender el circuito nos aparecerá la pantalla para alinear el haz de luz del láser. Esta funcionalidad nos servirá para ajustar el puntero láser a la posición exacta en el sensor de luz. Ajustando el haz en el punto exacto en el sensor de luz conseguiremos la lectura máxima que el sensor puede dar (en este caso 65535). De esta manera si se interrumpe en algún momento el haz de luz entre el láser y el sensor obtendremos un valor menor al indicado y querrá decir que un objeto lo ha atravesado.
NOTA: Inicialmente en vez de usar un sensor digital de luz utilicé un sensor analógico pero a plena luz del día la lectura del sensor ya marcaba su máximo valor y aunque se hiciera incidir el haz del láser en el sensor el valor leído no presentaba variación y por tanto se descartó para este proyecto.
Cuando el puntero del láser se encuentre en la posición correcta la pantalla del LCD se pondrá en color verde con el texto “TEST: OK” y parpadeará el led del botón rojo indicando que podemos pulsarlo para continuar. En este punto ya estamos en condiciones de poder utilizar la alarma. Si no está correctamente posicionado el haz del láser la pantalla se mantendrá en color en rojo con el texto “TEST : KO” y no podremos continuar hasta ajustarlo correctamente.
Una vez ajustado el láser y pulsado el botón rojo para continuar se nos mostrará el estado actual de las alarmas que inicialmente estarán desactivadas: “LASER Alarm: OFF” y “PIR Alarm: OFF”.
Para activar la alarma tenemos que pulsar cualquiera de los dos botones (rojo o azul). Una vez pulsado el botón aparecerá una cuenta atrás acompañada de una señal acústica para indicarnos el inicio de activación de la alarma. Durante este proceso el led del botón pulsado también parpadeará.
Pulsando el botón rojo solo activaremos el láser. Pulsando el botón azul activaremos tanto el láser como el sensor PIR.
Activada la alarma, la pantalla se pondrá de color verde mostrando las sensores que se encuentran activados. En caso de que se haya apretado el botón azul aparecerá los textos: “LASER Alarm: ON” y “PIR Alarm: ON”. En caso de que se haya apretado el botón rojo los textos que aparecerán serán: “LASER Alarm: ON” y “PIR Alarm: OFF”.
Una vez activada la alarma si el sensor PIR detecta un movimiento a una distancia de unos 3 m o un objeto interrumpe el haz de luz láser la alarma se disparará emitiendo sonido y haciendo que la pantalla se ponga en color rojo mostrando el texto “ Alarm ! ! !” seguido del nombre del sensor que ha hecho saltar la alarma.
Para apagar la alarma bastará pulsar el botón cuyo led se encuentra parpadeando.
Circuito
Los módulos y componentes que utilizaremos son:
-
- Placa Arduino UNO.
- Grove Base Shield V2.0 for Arduino.
- Módulo Grove: Digital Light Sensor.
- Módulo Grove: PIR Motion Sensor.
- Módulo Grove: Red LED Button.
- Módulo Grove: Blue LED Button.
- Módulo Grove: Buzzer.
- Módulo Grove: LCD RGB Backlight.
- Adafruit Diodo Láser 5mW 650nm.
- Soporte de montaje láser fijo de Adafruit.
- Grove wrappers.
- Placa 7×9 B de Makeblock.
- Viga 0824 176mm de Makeblock.
- Ángulo 3×3 de Makeblock.
- Viga recortable de Makeblock.
- 4 separadores de 20 mm de longitud de M4.
- Tornillería M2, M3 y M4.
- Portapilas para dos pilas AA.
Conectaremos los diferentes módulos Grove a la Shield “Grove Base Shield V2.0 for Arduino” de la siguiente manera:
MÓDULO GROVE | PUERTOS (Base Shield V2.0) |
Módulo Grove: PIR Motion Sensor | D2 |
Módulo Grove: Red LED Button | D5 |
Módulo Grove: Blue LED Button | D7 |
Módulo Grove: Buzzer | D3 |
Módulo Grove: LCD RGB Backlight | I2C |
Módulo Grove: Digital Light Sensor | I2C |
El montaje será el siguiente:
El láser lo podemos alimentar con un voltaje entre 2.8 y 5,2V DC y tiene un consumo máximo de 25 mA. Para este proyecto lo alimentaremos con 2 pilas AA y tendrá un consumo de unos 11 mA.
Programación
Sketch a cargar en la placa Arduino UNO:
https://github.com/avilmaru/alarma_LASER_PIR/blob/master/alarmaconpirylaser.ino