Académique Documents
Professionnel Documents
Culture Documents
Objetivo:
Realizar una interface grfica que me permita encender y apagar una serie de focos desde mi
computadora, introduciendo as al lector a la domtica.
Hacer uso de la paleta Formula Node de LabVIEW.
Introduccin:
Qu es un relevador?
El relevador, tambin conocido como rel o relay, es un dispositivo electromecnico que funciona
como un interruptor controlado desde un circuito elctrico en el que, por medio de una bobina y un
electroimn, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros
circuitos elctricos independientes.
Fue inventado en 1835 por Joseph Henry.
Cmo funciona un relevador?
Como ya se mencion, el relevador cuenta con una bobina y un electroimn estos, al ser energizados
accionan el mecanismo de los contactos.
Lo que hace la bobina es crear un campo magntico que lleva a los contactos a establecer una
conexin. El electroimn mueve a la armadura excitada, permitiendo el cierre de los contactos. De
esta forma, el relevador acta como un interruptor que puede fomentar el paso de la corriente
elctrica o su interrupcin.
Existen dos estados principalmente en un relevador, normalmente abierto (N.A.) o, normalmente
cerrado (N.C.), esto es, si mi relevador es normalmente abierto, quiere decir que sin excitar la bobina
los contactos del relevador estn desconectados entre s y, al introducir un voltaje cierra la conexin
de los contactos, mientras que, si es normalmente cerrado, los contactos del relevador estn
conectados entre s sin necesidad de introducir un voltaje a la bobina, y cuando se excita la bobina,
se abre la conexin de los contactos desconectndolos.
Material:
1 Placa Arduino UNO.
4 Relevadores de un polo, dos tiros y bobina de 5Vcc.
4 Sockets para foco.
4 Focos (Pueden ser incandescentes o fluorescentes).
1 Clavija.
Cable AWG 12.
Desarrollo:
Comenzaremos por realizar las conexiones elctricas.
Los pines que vamos a usar de nuestra placa Arduino UNO son: 5, 6, 7 y 8 digitales, los cuales vamos
a usar como salidas, estos pines sern los que exciten la bobina y cierren los contactos.
1. Conectamos el cable AWG 12 a la salida de mi clavija.
3. Nuestro relevador cuenta con cinco pines, dos de ellos son los que excitan la bobina, dos
pines para cerrar el circuito y un pin comn. En nuestro relevador se presentan los dos
estados, normalmente abierto y normalmente cerrado, es por eso que necesitamos
identificar los pines a usar, pues el estado normalmente cerrado no se usara.
3.1. Usaremos nuestro multmetro para identificar los pines del relevador. En nuestro
relevador, se tienen, por lo general tres pines continuos, el pin del centro es el comn,
mientas que los de los extremos son los pines de la bobina, se puede saber si esto es
verdad, con la opcin de resistencia en nuestro multmetro, dndonos como resultado
una resistencia X o, usando la opcin de continuidad, visualizaremos en el display de
nuestro multmetro que existe una continuidad.
3.2. Los pines del lado opuesto, son los pines normalmente abierto y normalmente cerrado,
ahora con la opcin de continuidad de nuestro multmetro, usaremos el comn (pin
sobrante de la prueba anterior) y mediremos continuidad con cada uno de los otros
pines, dndome un pitido en el pin normalmente cerrado y no dndome ningn
resultado con el normalmente abierto.
3.3. Como resultado podemos obtener algo as.
Imagen 1
4. Una vez identificados los pines de nuestro relevador (ver imagen 1), procederemos a
conectarlo a nuestra placa Arduino UNO.
4.1. Del puerto digital nmero 5 de nuestro Arduino, conectaremos un diodo en direccin
del flujo de corriente (polarizado en directa).
4.2. A la salida del diodo se conectara el pin 1 (pin de la bobina) del relevador.
4.3. El pin 2, de nuestro rel, se conectara a GND de Arduino.
5. El pin 4 del relevador, es conectado al cable de Lnea de la clavija.
6. Conectamos el pin 5 (pin normalmente abierto) del relevador a la otra parte del socket.
7. Repetimos los dos pasos anteriores para los otros tres relevadores, teniendo en cuenta que
las salidas digitales a usar para el resto de los relevadores son 6, 7 y 8 de nuestro Arduino
UNO.
A continuacin se muestra el diagrama de conexiones.
Imagen 2
Desarrollo de la interface.
1.
2.
3.
4.
Abrimos LabVIEW.
Damos click en Create Project.
Click en Blank VI.
Como en todos los programas que hemos creado y usado el microcontrolador Arduino UNO,
cargamos primeramente el archivo LIFA en nuestra placa Arduino.
4.1. Abrir la consola de Arduino, Seleccionar Archivo y Abrir.
Nota: No olvidar que estos parmetros a excepcin del puerto de comunicacin los asume
por defecto el sistema, es decir que si no los ponemos el sistema los toma con valores
predefinidos y puede llegar a no funcionar.
seleccionando
Diagrama de bloques.
7. Colocar la orden para romper el bucle, para ello ir al panel de control y colocar un botn Stop
(Silver -> Boolean > Stop Button)
8. Configurar los pines 5, 6, 7 y 8 de Arduino como salidas, haciendo uso del bloque Set Digital Pin
Mode
8.2. Y les asignamos el nmero de pin as como la forma en que va a ser usado.
Para asignar el nmero de pin y el modo de operacin basta con ponerse sobre el bloque
con la herramienta de edicin en modo wire
y pulsando el botn derecho del
ratn, podemos seleccionar el nmero del pin, aadindolo con la opcin Create ->
Constant.
De manera similar seleccionamos la forma en que va a ser usado, si como salida o como
entrada, en nuestro caso queremos que se use como salida.
9. Conectamos Arduino Init y los pines a usar.
10. En el panel frontal, agregamos cuatro botones y los renombramos. Estos botones sern los que
encendern y apagaran nuestros focos
Para agregarlos damos click en Silver -> Boolean -> Push Button.
Para renombrarlos basta con darle doble click sobre su nombre por default para poder
modificarlo. Para fines prcticos y por ser una introduccin a la domtica se les asigno el nombre
de Hab1, Hab2, Hab3 y Hab4, refirindonos a cuatro habitaciones.
Panel Frontal
Diagrama de Bloques
11. En el diagrama de bloques, arrastramos los Push Button dentro de la estructura While
12. Nuevamente nos posicionamos en el panel frontal e introduciremos cuatro leds, que sern mis
indicadores de que foco estoy encendiendo, por lo que los voy a renombrar como Habitacin 1,
Habitacin 2, Habitacin 3 y Habitacin 4.
En la paleta Silver -> Boolean -> LED (Silver.
Panel Frontal
Diagrama de Bloques
13. Al igual que con los botones, colocaremos los leds dentro de la estructura While.
Diagrama de Bloques
14. En el diagrama de bloques, dentro del ciclo While, colocaremos una estructura Formula Node
.
La estructura Formula Node, evala frmulas matemticas y expresiones similares a lenguaje C,
introduciendo lneas de cdigo.
En la paleta Programming -> Structures -> Formula Node
Diagrama de Bloques
15. Antes de comenzar a introducir las lneas de cdigo dentro de Formula Node, nos
posicionaremos dentro del ciclo While y creamos un arreglo booleano con la funcin Build Array
15.1.
Conectamos todos nuestros Push Button a las entradas de Build Array. Inicialmente
Diagrama de bloques
16. Convertiremos la salida del Build Array creado en un dato numrico, para esto haremos uso de
la funcin Array to Num
ste.
Nota: Aqu es importante recordar como pasar de datos binarios a decimales, pues la salida que
obtengo al convertir mi arreglo booleano servir para crear el programa dentro de Formula
Node, si no lo recordamos, se recomienda visualizar los datos que me esta entregando.
En este caso, tenemos cuatro botones, que lo que hacen en dar un estado Alto (1 binario) o un
estado Bajo (0 binario), podemos hablar entonces de 4bits. Recordamos que:
Binario Decimal
0000
0
0001
1
0010
2
0011
3
0100
4
0101
5
0110
6
0111
7
1000
8
1001
9
1010
10
1011
11
1100
12
1101
13
1110
14
1111
15
Con esta tabla sabemos el dato que se va a obtener al oprimir uno o varios botones.
Si oprimimos el primer botn obtengo un 1 a la salida, si apago ese botn y enciendo el 4,
obtendr un 8 como dato de salida.
17. Nos posicionamos ahora sobre el contorno de la estructura Formula Node, dando click con el
botn derecho del mouse aparecern una serie de opciones, nosotros le daremos click en Add
Inputs.
17.1. Dando doble click sobre la entrada creada en mi Formula Node, podemos darle
nombre a sta variable, nosotros le llamaremos a.
17.2. Ahora conectaremos la salida de dato numrico obtenido del arreglo booleano a la
entrada la variable a.
o1 = 0;
o2 = 0;
o3 = 0;
o4 = 0;
switch(a) //Realizamos una estructura case donde pregunto, si a es igual a X, has tal cosa, si
es igual a Y, otra cosa, etc.
{
case 1: o1 = 255, o2 = o3 = o4 = 0; break; //Para el caso cuando a es igual a 1, quiere decir
que quiero encender el primer foco, pero mantener apagado los dems, es por eso que o1 es
igual a 255 y o2, o3, o4 es igual a 0. El 255 es porque en el toolkin de Arduino para LabVIEW
podemos tener salidas con un PWM, recordemos que estos pines son 3, 5, 6, 9, 10 y 11, sin
embargo las salidas digitales normales y las PWM se escriben con el mismo bloque, lo que
estoy escribiendo entonces es el total de ancho de pulso para la salida digital de Arduino.
case 2: o2 = 255, o1 = o3 = o4 = 0; break; //Para el caso cuando a es igual a 2, quiere decir
que quiero encender el segundo foco, pero mantener apagado los dems, es por eso que o2 es
igual a 255 y o1, o3, o4 es igual a 0.
case 3: o1 = o2 = 255, o3 = o4 = 0; break; //Para el caso cuando a es igual a 3, quiere decir
que quiero encender el primer y segundo foco, pero mantener apagado los dems, es por eso
que o1 y o2, son iguales a 255 y o3, o4 es igual a 0.
case 4: o3 = 255, o1 = o2 = o4 = 0; break; //Para el caso cuando a es igual a 4, quiere decir
que quiero encender el tercer foco, pero mantener apagado los dems.
case 5: o1 = o3 = 255, o2 = o4 = 0; break; //Para el caso cuando a es igual a 5, quiere decir
que quiero encender el primer y tercer foco, pero mantener apagado los dems.
default: o1 = o2 = o3 = o4 = 0; break;
}
20. Ahora dentro del ciclo While colocamos el bloque Digital Write Pin
, este bloque es el que
escribe los valores en las salidas fsicas de Arduino. (Arduino > Low Level > Digital Write Pin).
21. Introducimos el nmero de pin de se va a usar, los ya declarados al inicio del proyecto, 5, 6, 7 y
8. Y conectamos los bloques entre si y a su respectiva entrada.
22. Las entradas PWM de cada bloque sern las salidas o1, o2, o3 y 04 de la estructura Formula
Node.
24. Ahora debemos cerrar la comunicacin con el Arduino, ingresamos el bloque Close
Arduino -> Close.
26. Como nos damos cuenta, desde el inicio del programa vamos teniendo una lnea de error (lnea
amarilla), esta lnea, la usaremos para detener el programa en caso de error. Para eso usaremos
el bloque Unbundle By Name.
Unbundle By Name, devuelve los elementos de un grupo, cuyo nombre se especifica. No es
necesario que nosotros hagamos un seguimiento de la orden de los elementos dentro un
arreglo. Esta funcin no requiere el nmero de elementos para que coincida con el nmero en
el cluster. Despus de cablear un clster para esta funcin, se puede seleccionar un elemento
individual de la funcin.
Programming -> Cluster, Class, & Variant -> Unbundle By Name
27. Conectamos el error que sale del ltimo bloque Write, a la entrada de nuestro Unbundle By
Name.
Veremos que dentro del bloque Unbundle By Name aparece la leyenda status. Status nos dar
un 1 binario en caso de que haya error en el programa.
28. Sabiendo que status me arrojara un 1 lgico cuando el programa cometa error, lo conectaremos
a la entrada del stop, con ayuda de una compuerta OR.
Programming -> Boolean -> Or
29. Desconectamos el botn Stop para conectarlo a la otra entrada de mi compuerta Or y la salida
de sta al stop del ciclo While.
30. Finalmente nos dirigimos a la paleta Programming -> Dialog & User Interface y seleccionamos
Simple Error.
Simple Error indica si se ha producido un error. Si se produce un error, este VI devuelve una
descripcin del error y, opcionalmente, muestra un cuadro de dilogo.
Diagrama de Bloques
Panel Frontal.