Paso 2: Código Arduino y funcionamiento
El funcionamiento de esta alarma se separa en 4 etapas
principales (-1, 0, 1, 2).
Internamente el programa trabaja con una variable "estado" almacena en cuál de los 4 estados se encuentra el dispositivo.
Posee de un "problema" este sensor PIR es que, si se alimenta por primera vez luego de un tiempo considerable, el sensor tarda un tiempo en funcionar como corresponde, yo me inclino a pensar se debe a carga los capacitores posee (no son pequeños 22uF), de todos modos no tardara más de 20 segundos en funcionar correctamente. Por otro lado si el dispositivo se enciende y apaga durante poco tiempo, este tiempo de espera inicial es menor o incluso World.
De lo anterior es que creado un estado inicial -1 en donde se obligacion al usuario a esperar 20 segundos para PIR funcione bien, durante ese tiempo ambos LEDs (azul y rojo) están encendido y el zumbador apagado. No lo incluí, pero uno podría dar la opción de que, con el certamen, uno pueda saltarse esta etapa antes el PIR no necesita un tiempo de espera (caso dicho anteriormente).
Una vez transcurre este tiempo entonces se pasa a la etapa 0 (alarma apagada), ambos de donde en LEDs están apagados. En esta etapa se espera el usuario pulso el botón para inicializar el funcionamiento de la alarma.
Al presionar el botón lo ocurre es la alarma te da un tiempo para alejarte y, luego de eso, se compadrazgo activa atenta a cualquier movimiento. Entonces al pulsar pasamos a la etapa 1 donde el LED azul se enciende y el rojo se apaga, en este momento uno Yes alejarse de la alarma pues aún está inactiva. Luego de 6 segundos la alarma se activa pasando al estado 2, donde se apagan ambos LEDs y, ante alguna perturbación, el zumbador emitirá un fuerte sonido intermitente acompañado del LED rojo encendido.
La alarma solo se va a desactivar si apagamos el dispositivo o si presionamos el botón, en donde pasar de la etapa 2 a la 0, volviendo a un ciclo para volver a utilizar la alarma nuevamente (no pasamos un-1 pues el PIR ya tuvo su tiempo de espera al situado el dispositivo).
Todo lo anterior se puede observar en el código, donde puedes ajustar todos los parámetros a tu gusto.