Primeras pruebas

Este código nos ayudará a comprobar el correcto funcionamiento de los
sensores y nos prepara el listado para el código final del programa:

' {$STAMP BS2}
' {$PBASIC 2.5}

modo VAR Byte
n VAR Byte



DO WHILE modo = 0
IF IN14 = 0 THEN 'modo
[alerta durante
ausencia]

modo = 1
FOR N = 1 TO 10 'damos
tiempo para
abandonar la casa

FREQOUT 4, 250, 3000 ' beep

PAUSE 750
NEXT
ENDIF
IF IN10 = 0 THEN 'modo
[vigilancia
nocturna]

modo = 2
FREQOUT 4, 250, 3000 ' beep

PAUSE 100
FREQOUT 4, 250, 3000 ' beep
PAUSE 100
FREQOUT 4, 250, 3000 ' beep
ENDIF

LOOP
Arial,
Helvetica, sans-serif" size="1"">

DO
GOSUB APERTURAPUERTA
GOSUB ALERTARUIDO
GOSUB ALERTALUZ
GOSUB PIR
LOOP

APERTURAPUERTA:
IF IN0 = 1 THEN
FREQOUT 4, 250, 3000 ' beep
PAUSE 500
ENDIF
RETURN


ALERTARUIDO:
IF IN1 = 1 THEN
FREQOUT 4, 250, 3000 ' beep
PAUSE 500
ENDIF
RETURN


ALERTALUZ:
IF IN2 = 1 THEN
FREQOUT 4, 250, 3000 ' beep
PAUSE 500
ENDIF
RETURN


PIR:
IF IN3 = 1 THEN
FREQOUT 4, 250, 3000 ' beep
PAUSE 500
ENDIF
RETURN




Analicemos el código

Lo primero que precisamos es una parte del código para establecer
diferentes modos de funcionamiento. en este caso hemos previsto 2 modos:
Modo vigilancia y Modo alarma, que tal como comentamos en
una fase anterior, Modo vigilancia para cuando estamos en casa,
pero queremos tener avisos discretos de ciertas aperturas de puertas,
presencia a zonas peligrosas o prohibidas de la casa y/o aproximación a
ciertas dependencias. En este modo, no será necesario el envío de
notificaciones por email ni de activación de sirenas.
En Modo alarma, esta claro que será para cuando nos ausentamos de
la casa y queremos seguir teniendo un contacto con lo que sucede en
esta, además de activar los dispositivos disuasorios, como puede ser una
potente sirena, cámara, etc.


Además, en el Modo alarma incluimos un ciclo FOR-NEXT para dar
tiempo para abandonar la casa o el área de vigilancia. En cambio, si
seleccionamos Modo vigilancia, el circuito avisará de la
selección mediante 3 beeps.

El LOOP se ejecutará eternamente hasta que seleccionemos un modo
(mientras que modo = 0).


DO WHILE modo = 0
IF IN14 = 0 THEN 'modo
[alerta durante
ausencia]

modo = 1

FOR N = 1 TO 10 'damos
tiempo para
abandonar la casa

FREQOUT 4, 250, 3000 ' beep

PAUSE 750
NEXT
ENDIF

IF IN10 = 0 THEN 'modo
[vigilancia
nocturna]

modo = 2
FREQOUT 4, 250, 3000 ' beep

PAUSE 100
FREQOUT 4, 250, 3000 ' beep

PAUSE 100
FREQOUT 4, 250, 3000 ' beep
ENDIF

LOOP


Una vez que hemos seleccionado un modo, se ejecuta otro ciclo eterno
DO-LOOP, que en definitiva se comporta como el "vigilante" propiamente
dicho: va accediendo a las diferentes subrutinas GOSUB (una para cada
sensor) y comprobando si el sensor se muestra activo o no; si está
activo, el circuito lanza un beep. Si no lo está, retorna para comprobar
el siguiente sensor.

DO
GOSUB APERTURAPUERTA
GOSUB ALERTARUIDO
GOSUB ALERTALUZ
GOSUB PIR

LOOP


Claro está, este código está incompleto y no tenemos en cuenta para nada
al módulo PINK. Si el circuito se está comportando como era de esperar,
es el momento de pasar a la fase siguiente, en la que incluiremos las
lineas de código para comunicar el BASIC Stamp con el PINK; después
haremos trabajo de webmaster, creando nuestra página web de control.

Visitas: 10

Cursos online y tutoriales


(se requiere registro previo gratuito en PortalArduino.com)

Mantenimiento del sitio

© 2025   Creado por Lorenzo M. Oliver.   [Imágenes licenciadas por Depositphotos.com] Tecnología de

Emblemas  |  Reportar un problema  |  Términos de servicio