En la fase anterior vimos el código pBASIC que nos
permite controlar los sensores desde la tarjeta con el BASIC Stamp. Con
cualquiera de los sensores que es activado, el zumbador del circuito nos
avisará con un "beep". Pero esto no es lo que realmente queremos
¿verdad?

En esta fase vamos ha añadir las líneas de código necesario para
comunicar nuestro circuito BS con el módulo PINK. Por el momento,
mantendremos las líneas de código actual para saber con certeza cómo
sigue actuando el proyecto. ¿Recordais las partes del código que
actuaban como subrutinas, para cuando era activado cualquiera de los
sensores? Estas son:



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





Vamos a centrarnos en una de las subrutinas, por ejemplo la que controla
la activación del sensor para la apertura de la puerta (las
modificaciones que hagamos servirán para todas las demás subrutinas que
controlan el resto de sensores). Le añadimos unas líneas de código:

APERTURAPUERTA:
IF IN0 = 1 THEN
FREQOUT 4, 250, 3000 ' beep
SEROUT 8,396,["!NB0W00:1",CLS]
PAUSE 5000
SEROUT 8,396,["!NB0W00:0",CLS]

ENDIF
RETURN


Con estas 3 líneas conseguimos que el circuito, además de avisarnos con
un "beep" como antes hacía, también envíe mediante el comando SEROUT el
valor "1" a la primera de las variables de la larga lista que tiene
disponible el PINK, la variable "NB0W00", que será la que utilizaremos
exclusivamente para recoger valores según la actuación del sensor
asignado, el de apertura de la puerta", el sensor I.R. de
obstáculos (MSE-S135). Una vez que han transcurrido 5 seg. gracias a la
pausa que hemos modificado por "5000", esa variable será "inicializada"
(puesta a cero) para estar disponible para una nueva actualización.
Ahora, tenemos que realizar la misma inserción de código para el resto
de subrutinas que controlan el resto de sensores, teniendo en cuenta que
usaremos diferentes variables para cada uno de los sensores.

Para probarlo, después de haber cargado el programa en el BS, nos
aseguramos de que el PINK está conectado como ya hicimos en anteriores
fases, y en nuestro ordenador conectado a la misma red local donde está
conectado el PINK (como un dispositivo más de la red) mantenemos a la
vista la página de fábrica del servidor PINK donde visualizamos la lista
de variables (VV_show.htm); ya sabeis, tecleamos en la barra de
nuestro navegador la url: http://xx.xxx.xx.xxx/VV_Show.htm,
donde
"xxx.xxx.xxx.xxx" es la dirección IP interna de nuestra red, asignada a
nuestro servidor PINK.


En esta página, si la vamos refrescando continuamente, observaremos que
la primera de las variables, la "00", se carga con valor "1" cuando el
sensor de la puerta se activa. Después, pasados 5 seg. vemos que vuelve a
estar con valor "cero". Llegados a este punto, dos observaciones:


1 - Resulta muy engorroso tener que estar refrescando constantemente
la página de variables para poder ver cómo nuestro circuito va
actualizando las variables para todos los sensores.



2 - El tiempo que empleamos (5 seg.), además de "paralizar" el
circuito de alarma durante un tiempo muy significativo en vez de dejarlo
disponible para la alerta de otros sensores, es muy corto como para
poder revelar, cuando consultemos el estado del sistema a distancia, que
alguno de los sensores han sido activados en alguna ocasión.



Efectivamente, estos dos puntos lo resolveremos en la siguiente fase.

Visitas: 12

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