Está en la página 1de 7

DOMOTICA: AUTOMATIZACIN DE CASAS Y EDIFICIOS

Introduccin
El puerto paralelo
El puerto paralelo nos permite manejar una cantidad de artefactos y dispositivos,
en un programa de la PC, podemos adems de
conectar y desconectar la ejecucin de una orden,
controlar tiempos y secuencia de esas ordenes.
Si instalamos un programa de la familia de los Basic
por ejemplo Visual Basic podemos trabajar en la
programacin, los puertos paralelos se denominan
&h378 (puerto de datos), &h379 (puerto de
estado) y &h37A (puerto de control) en
hexadecimal y en decimal 888 (puerto de datos),
889 (puerto de estado) y 890 (puerto de control).

Puerto de datos.En la salida del puerto de datos tenemos 8 pines que sin ningn agregado
entrega
una tensin que puede estar entre 0 y 3.5 - 4.8 voltios segn la
computadora.
Pin
Bits

6
16

7
32

8
64

9
128

Puerto de estado.En la salida del puerto de estado tenemos 5 pines que reciben
interrupciones.
__
Pin
15
13
12 10
11
Bits
8
16
32
64 128

Puerto de control.En la salida del puerto de control tenemos 4 pines que al igual de los de
estado entregan una tensin que puede estar entre 0 y 3.5 - 4.8 voltios
segn la computadora, aparte permiten llevar un registro de ordenes.
_
__
__
Pin
1
14
16 10
Bits
1
2
4
8

Control de una maqueta a travs de un ordenador


Para demostrar la aplicacin se tiene un modelo a escala de una casa real, en la
cual se encuentran automatizadas las luces externas e internas, ventilacin de sala
y dormitorio, puerta del garaje, alarmas en las puertas y un sensor de humo, lo
cual se controla desde un ordenador por el puerto paralelo, con una interfaz
diseada en Visual Basic 6.0. Cada una de las aplicaciones tienen su propia
circuitera, las cuales hacen interactuar correctamente la casa con el ordenador.
Este tipo de tecnologa es totalmente aplicable en las casas actuales con
dispositivos y software especiales que pueden ser encontrados en el mercado, pero
exactamente con el mismo funcionamiento y la misma facilidad de uso.
La tecnologa utilizada en la maqueta es solamente un prototipo de lo que se podra
hacer en una casa real, obviamente con dispositivos ms avanzados.

Luces.- Para poder controlar las luces de la maqueta desde el puerto paralelo
tomamos los pines de datos, del 2 al 9, y trabajando en Visual Basic procedemos a
crear las instrucciones que llamaran al respectivo puerto y que viajaran por el cable
LPT llegaran al puerto paralelo y se empezaran a distribuir mediante un cableado
estructurado.
Como en la maqueta no se usaron muchos juegos de luces, apenas se emplearon
los pines desde el 2 al 7, en los cuales se manda desde el programa una seal.
La seal enviada desde el programa realizado en Visual Basic es, en realidad, una
que se compone de un voltaje mximo de 5V, el mismo que llegar a cualquiera de
los implementos que se encuentren en la maqueta.
Lgicamente, todos los
elementos que estn conectados deben antes pasar por un juego de rels,
transistores y diodos con el objeto de cuidar que ninguna corriente parsita o
variable de voltaje pueda daar los elementos de la maqueta o el puerto en si.
Ventiladores.- Para poder crear el evento de ventilacin el maqueta se usaron los
pines 8 y 9 por donde se enva la seal de encendido y apagado. As como en el

juego de luces, los disipadores deben de conectarse a los pines de puerto para que
estos reciban su respectiva seal que los activar.
El cableado estructurado para este y los otros dispositivos es centralizado, adems,
utiliza un bornera, es decir, una especie de cajetn en donde se centran todas las
conexiones elctricas de la maqueta, lo que significa que si el usuario se percata
que algo no funciona, tan solo necesitar fijarse si algn desperfecto se presenta en
la bornera. Claro que, la dificultad en esto radica que la maqueta tendra un punto
dbil que al ser movida de alguna forma, las conexiones empezaran a fallar, por lo
delicado de las mismas a este punto.
Sensores.- En toda la maqueta, los sensores son los nicos componentes que no
tienen conexin alguna a corriente, pues estos son, en realidad, contactos
magnticos que se activan o se desactivan al ser acercados o alejados el uno del
otro, por lo tanto, la conexin al puerto era directa, sin necesidad de corriente,
pues el programa lo que hace es comprobar minuto a minuto que este lazo
magntico no se viera interrumpido en forma alguna, caso contrario, la alarma se
activar.
Para que los sensores hagan llegar al seal de confirmacin al programa, se
necesitarn desde el pin 10 hasta el pin 13, en donde se espera una reaccin
contraria al cero, es decir, mientras el vnculo entre censores no se vea
interrumpido, el pin ni el programa reciben notificacin de alerta, pero si este
vnculo se llegase a romper, el pin recibir una seal que el programa interpretar
como una alerta para el caso de la alarma- o una seal anormal que indica que
algo est sucediendo.
Motor.- Para el motor se usaron los pines 1 y 14. La razn es muy sencilla: al usar
un motor que gire en dos sentidos abrir y cerrar puerta, implica usar una seal
para que realice un giro y una seal que haga lo inverso; es aqu donde los pines
mencionados anteriormente cumplen su cometido. Los pines 1 y 14 tienen una
lgica de negacin, es decir, que si el usuario enva a travs de uno de estos pines
una seal de 5V, lo ms seguro es que el pin convierta esto a una seal de -5V, es
decir, el completo inverso. Como se mencion antes, la circuitera para controlar
estos implementos gira alrededor de rels, transistores y diodos; pero hasta este
momento, el usuario debe de fijarse en qu clase de rels debe enfocase para
lograr el mejor desempeo posible.
Existen en el mercado rels dobles. Lo que quiere decir que son interruptores que
pueden encender sea con una polaridad inversa o no, la cuestin es que estos
implementos ayudan al motor a dar el giro, a partir de la polaridad que llega al rel,
es decir, por ejemplo, si al rel llega una polaridad positiva, el motor girar de
izquierda a derecha, caso contrario, el motor har todo lo contrario, y es aqu donde
se obtiene el evento abrir y cerrar puerta.
Debido a que al hacer esto, el motor seguir girando sin cesar hasta que reciba
una orden de apagado, en el programa se configur esta accin bajo un control de
temporizador, o sea, controlar que la seal llegue al motor en un tiempo
determinado y pasado ese tiempo, la seal dejar de ser enviada, de forma que el
motor se detendr y no girar ms.
Sirena.- Al igual que las luces, la sirena es un dispositivo sencillo que puede
encenderse y apagarse con una instruccin sencilla enviada desde el computador.
El detalle radica en que, en la vida real, una sirena no se prende y se apaga como

una luz cualquiera, sino ms bien esta se activa a partir de la confirmacin del
sensor que el vnculo magntico se ha roto.
Por lo tanto, luego de haber considerado todos estos aspectos, es necesario tener
bien claro que la momento de codificar, la activacin de la alarma est
estrechamente relacionada a la programacin del control de la respectiva alarma.
Como es lgico pensar, la alarma y el motor antes descrito deben tener conexin
alguna con el computador as como deben ser alimentados con una fuente de poder
externa, esto es debido a que se incorporan ms elementos que necesitarn ms
energa que difcilmente puede provenir de un puerto que arroja 5V en una salida
simple.
Codificacin necesaria para ejercer control sobre las secciones de la casa desde el
computador

Declaracin de variables y mdulos de control de los elementos:


Public Declare Sub PortOut Lib "io.dll" (ByVal Port As Integer, ByVal Value As Byte)
Public Declare Function PortIn Lib "io.dll" (ByVal Port As Integer)
Public on1 As Integer
Public ba1 As Integer
Public op As Integer
Public reloj As Timer
<Declaraciones globales, es decir, variables que cualquier sub-programa puede
usar>
Esto quiere decir que el usuario llama a una funcin de Visual Basic a que se
ejecute con carcter de pblica (que cualquier otra aplicacin a lo largo del
programa puede llamarla), una para la salida de datos y otra para la entrada en el
caso de los sensores. Para poder ejecutar cada funcin se requiere de la librera
io.dll, que no es ms que una librera especial para el compilador de Visual que
ayudar al usuario a manejar dispositivos externos desde cualquier puerto que el
usuario est por usar.
Uso de mini programas para controlar otros elementos:

Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

b1
b2
b3
b4
b5
b6
b7
b8

As
As
As
As
As
As
As
As

Integer
Integer
Integer
Integer
Integer
Integer
Integer
Integer

Declaraciones para
sub-programas

Private Sub Command1_Click()


If b1 = 0 Then
on1 = on1 + 1
Call PortOut(888, on1)
b1 = 1
Else
MsgBox "La luz/ventilador ya
esta encendida"
End If
End Sub
Private Sub Command10_Click()
If b5 = 1 Then
on1 = on1 - 16
Call PortOut(888, on1)
b5 = 0
Else
MsgBox "La Luz/ventilador esta
apagada"
End If

Private Sub
Command8_Click()
If b3 = 1 Then
on1 = on1 - 4
Call PortOut(888, on1)
b3 = 0
Else
MsgBox "La Luz esta
apagada"
End If
End Sub
Private Sub
Command9_Click()
If b3 = 0 Then
on1 = on1 + 4
Call PortOut(888, on1)
b3 = 1
Else
MsgBox "La luz ya esta
encendida"
End If
End Sub

En el primer bloque de sentencias, el usuario declara una serie de variables


informticas conocidas como banderas, es decir, variables comunes que se
encargan de verificar si un evento ha sucedido o no. Las banderas se activan a raz
que el usuario logra hacer que un evento acontezca de manera exitosa, por lo cual,
si antes la variable de verificacin era cero, al activarse un proceso cualquiera, se
transformar en uno.
En el bloque segundo y tercero se explica cmo es el funcionamiento bsico de los
segmentos de programa en cuanto al encendido y apagado de toda clase de
artefactos dentro de la maqueta. Estos bloques programados solo pueden lograr el
encendido y apagado enviando nmeros diferentes de cero para encender y cero
para apagar. Los nmeros que el usuario enva son nmeros decimales que al ser
enviados por el puerto, adquieren un carcter de binario (00100010, por citar
ejemplo), por lo tanto, al querer el usuario enviar un dato, es preferible que sepa
las combinaciones binarias antes de hacerlo.
Todos los procesos en cuanto a prender y apagar elementos giran alrededor de la
sentencia Call PortOut, (lo que se traduce como llamar a la funcin que puede
hacer las salidas de puerto) en donde tenemos dos valores entre parntesis que
tambin son esenciales dentro de este proceso: el primero es el direccionamiento
de puerto, y el segundo, el valor que describe el apagado o encendido del
implemento. La direccin para direccional el puerto desde Visual Basic puede usar
dos tipos de nmeros: uno especificado en hexadecimal y el otro en decimal.
Control del motor por medio de temporizadores.Private Sub Command10_Click()
If ba1 = 1 Then
op = 0

Private Sub Timer1_Timer()


If ba1 = 1 Then
op = 4

Call PortOut(890, op)


ba1 = 0
End If
Timer2.Interval = 5000
Timer1.Interval = 0
Command10.Enabled = False
Command11.Enabled = True
End Sub

Call PortOut(890, op)


MsgBox "La puerta esta abierta"
End If
Timer1.Interval = 0
Timer2.Interval = 0
End Sub

Para poder lograr un movimiento del motor, se mencion que haba que usar un
control temporizado, de forma que se podra lograr un control de cunto deba de
durar el evento de apertura y de cerradura. Los temporizadores de Visual Basic
usan una sentencia especial en donde se les designa un intervalo en el cual estos
permiten la ejecucin de la sentencia en donde han sido llamados.
El temporizador Timer se declara de forma independiente, en donde los intervalos
de accin siempre deben de ser designados en cero, los mismos que cambiarn al
ser usados en el bloque principal del programa. En el momento que el bloque de
temporizador es usado en la aplicacin principal, el programa ejecutar el intervalo
de tiempo declarado pro el usuario, de forma que cuando este tiempo est
andando, existir una comprobacin de lo que se est solicitando, en este caso,
comprobar que los sensores de la puerta estn unidos y no separados.
Es importante que el usuario note que para cada accin que se desee ejecutar hay
un diferente tipo de programacin en la sentencia Call PortOut, en donde el
direccionamiento de puerto varia, por ejemplo, para lograr un evento de prendido y
apagado, es necesario que el usuario utilice el direccionamiento de datos 888, sin
embargo, para el control del giro del motor en uno u otro sentido, el usuario debe
de direccionar el puerto en 890, lo que significa que por este puerto har un control
de los datos que se enviarn por los respectivos pines.

Control de los sensores de movimiento en las puertas.Private Sub Timer1_Timer()


Dim A As Long
A = PortIn(&H379)
If A = 207 Then
MsgBox "Puerta principal abierta"
End If
If A = 15 Then
MsgBox "Puerta patio abierta"
End If
If A = 175 Then
MsgBox "Puerta cocina abierta"
End If
If A = 111 Or A = 79 Or A = 239 Or A = 47 Then
MsgBox "Alarmas activas"
End If
End Sub
Como puede apreciarse,
la codificacin que controla los sensores est muy
relacionada al uso de temporizadores en Visual Basic, es decir, el control que se
ejerce sobre los sectores de la casa con sensores se realiza a cada momento, en un

ciclo que solo es interrumpido al romperse el vnculo entre sensores. La lgica


aplicada en este segmento de codificacin es que mientras los sensores enven una
respuesta de cero, el programa interpreta que ambos contactos estn unidos y no
transmiten ningn dato que demuestren que haya rompimiento de seal, pero de
ser esto falso, la alarma ser activada y aparecer un mensaje indicando qu
puerta est abierta.
Para poder controlar este evento, se usaron los pines de estado, pues el programa
debe confirmar de forma automtica- al usuario que las puertas estn abiertas o
cerradas, pero la diferencia radica en que la funcin para tal efecto de verificacin
no es llamada con una sentencia Call, sino que es llamada por medio de una
variable, la que almacenar el dato que los sensores emiten: cero para unin y
diferente de cero para desunin.
La sentencia se descifra como PortIn, es decir, Entrada al Puerto y su
direccionamiento puede ser &H379 en hexadecimal, como 889 en decimal,
dependiendo del mejor criterio del usuario en usar tal o cual cifra para
direccionamiento de puerto.
Circuitera de la maqueta:

Esta es la circuitera general implementada en la maqueta, la cual recibe ordenes


desde el puerto paralelo enviando un encendido y un apagado para luces,
ventilacin y sirena.
Posibilidades en aplicaciones reales:

Es posible instalar otro puerto paralelo con su respectiva tarjeta en la


computadora (la computadora tan solo incluye uno), de necesitarse, pues
hay casos en que la red de automatizacin se amplia y para el usuario
resulta complicado centralizar nuevas conexiones.
Debido a la complejidad del esquema elctrico,

También podría gustarte