0% encontró este documento útil (0 votos)
766 vistas

Tutorial Arduino y Labview Con Ejemplos

Este documento proporciona instrucciones para instalar y utilizar la interfaz LabVIEW para Arduino (LIFA). Explica que LIFA permite controlar y visualizar datos de Arduino en LabVIEW de forma gráfica. Detalla los pasos para instalar el software necesario, conectar el hardware, cargar el firmware de comunicación en la tarjeta Arduino y probar algunos ejemplos básicos.

Cargado por

Zaa Ramírez
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
766 vistas

Tutorial Arduino y Labview Con Ejemplos

Este documento proporciona instrucciones para instalar y utilizar la interfaz LabVIEW para Arduino (LIFA). Explica que LIFA permite controlar y visualizar datos de Arduino en LabVIEW de forma gráfica. Detalla los pasos para instalar el software necesario, conectar el hardware, cargar el firmware de comunicación en la tarjeta Arduino y probar algunos ejemplos básicos.

Cargado por

Zaa Ramírez
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 114

6

Labview + Arduino
Utilizacin de Labview para la Visualizacin y Control de la
Plataforma Open Hardware Arduino

Ver. 1.0

Arduino
Jos Manuel Ruiz Gutirrez
Jos Manuel Ruiz Gutirrez
Serie: Herramientas Grficas para la programacin de
Arduino 1

2.

Cinco razones para utilizar Arduino+Labview

(traducido de la pgina http://www.ni.com/white-paper/12879/en )

El microcontrolador Arduino es una plataforma de bajo costo de electrnica de


prototipos. Con la interfaz de LabVIEW para Arduino LIFA se puede aprovechar la
potencia del entorno de programacin grfica de LabVIEW para interactuar con
Arduino en una nueva dimensin.

1. Interface Grfica de Usuario (Graphical User Interface GUI)


Visualizar los datos
Mostrar datos de los sensores en el monitor del
ordenador mediante los paneles frontales de
LabVIEW.

Personalizacin de la interfaz de
usuario
Permite dar al proyecto un toque profesional con los controles del panel frontal de
LabVIEW y los indicadores.

2. Programacin Grafica
Arrastrar y soltar
En lugar de tratar de recordar un
nombre de funcin, se encuentra en la
paleta y colquelo en su diagrama de
bloques.

Documentacin simple
Pase el ratn sobre cualquier VI o funcin con el ratn y ver al instante la
documentacin con ayuda contextual.
6

https://decibel.ni.com/content/docs/DOC-20084
Leer la intensidad de luz en una celda solar con Arduino
https://decibel.ni.com/content/docs/DOC-16069
Manipular los LEDs de la tarjeta arduino
https://decibel.ni.com/content/docs/DOC-16261

4.

Instalacin del Software y el Hardware

A continuacin describimos los pasos que se recomiendan para la puesta en marcha de


la herramienta LIFA ( LabVIEW para Arduino):
La configuracin de la Interfaz de LabVIEW para Arduino es un proceso de seis pasos
que usted slo tendr que completar una sola vez. Por favor, siga las siguientes
instrucciones para comenzar a crear aplicaciones con la interfaz de LabVIEW para
Arduino.
(Para una breve descripcin de la interfaz de LabVIEW para Arduino ver post Michaels
aqu).
1. Instalar LabVIEW
Si ha adquirido el paquete de LabVIEW y del Sparkfun.com Arduino puede instalar
LabVIEW desde el DVD incluido.
Si usted no posee una copia de LabVIEW, usted puede descargar e instalar la
versin de evaluacin de 30 das aqu.
2. Instale los controladores VISA NI-.
Windows Download.
Linux Download.
Mac Download.
3. Instale JKI VI Package Manager (VIPM) Community Edition (gratuito).
Todos los sistemas operativos.All Operating Systems.
4. Instalacin de la Interfaz de LabVIEW para Arduino como se describe en KB
5L38JQYG KB 5L38JQYG
5. Conectar la placa Arduino a su PC como se describe en KB 5INA7UYG KB
5INA7UYG

6. Carga de la interfaz de LabVIEW para firmware Arduino en su Arduino como se


describe en KB 5LPAQIYG

10

7. El firmware se puede encontrar en <LabVIEW> \ vi.lib Interface \ LabVIEW para

Arduino \ Firmware \ LVIFA_Base. Utilizar el IDE de Arduino para implementar


este firmware de la placa Arduino.)
Ahora est listo para usar la interfaz de LabVIEW para Arduino.

11

5.

Instalacin del Firmware de comunicacin entre


LabVIEW Interface y Arduino Uno?

Para poder comunicar Labview con Arduino, previamente, debemos instalar en la tarjeta
el firmware correspondiente.
Partimos del supuesto de que ya tenemos instalado en nuestro PC el entorno IDE
Arduino.
El fichero que debemos cargar en el IDE de Arduino para luego descargar en la tarjeta
se encuentra en la carpeta en dinde tengasmos instaldo Labview
\National Instruments\LabVIEW 20XX\vi.lib\LabVIEW Interface for
Arduino\Firmware\LVIFA_Base
Ejecutamos el IDE Arduino y cargamos el fichero.
Pasos a seguir:
Abrir el IDE Arduino . Pulsando sobre arduino.exe
Con la opcin Fichero->Abrir Buscamos el fichero LVIFA_Base.pde

Seguidamente una vez cargado el fichero en el IDE Arduino seleccionamos la


tarjeta con la que trabaremos.
12

Una vez realizadas estas operaciones basta con que pulsemos el botn de carga
de sketch del IDE para que el fichero se transfiera a la tarjeta y, una vez
transferido, ya hemos dejado Arduino listo para comunicarse con LabVIEW

14

6.

Algunas preguntas sobre la interface LIFA

(Traducido de https://decibel.ni.com/content/docs/DOC-16024)
1. Qu es la interfaz de LabVIEW para Arduino?
La interfaz de LabVIEW para Arduino (LIFA) Toolkit Free Toolkit es un conjunto
de herramientas gratuitas que permiten a los desarrolladores adquirir datos desde el
microcontrolador Arduino y procesarlo en el entorno de programacin grfica de
LabVIEW.
2. Qu versiones del entorno LabVIEW permiten la conexin con Arduino?
La interfaz de LabVIEW para Arduino es actualmente compatible con cualquier
versin de Windows o Mac OS que soporta LabVIEW 2009 o posterior. El kit de
herramientas tambin funcionan en cualquier versin de Linux que soporta
LabVIEW 2009 o posterior, sin embargo actualmente no existe un instalador (JKI
VI Package Manager) para Linux. JKI est trabajando actualmente en VIPM 2010
para Linux, que estar disponible aqu cuando haya terminado.
3. Qu versin de LabVIEW Qu necesito para utilizar la interfaz de LabVIEW
para Arduino?
2009 o posterior.
4. Qu hardware es necesario para utilizar la interfaz de LabVIEW para
Arduino?
Para empezar, el nico hardware que se necesita es una tarjeta Arduino, cable USB
y un ordenador con LabVIEW y la interfaz de LabVIEW para Arduino. La interfaz
de LabVIEW para Arduino fue desarrollado y probado usando Arduino UNO y
Arduino MEGA 2560
5. Cmo se instala la interfaz de LabVIEW para Arduino?
Siga los pasos de este documento. Instalacin.
6. Dnde se puede obtener soporte para la interfaz de LabVIEW para Arduino?
Soporte para la interfaz de LabVIEW para Arduino se proporciona en los foros de la
comunidad community forums. La interfaz de LabVIEW para Arduino no est
15

soportada por Ingenieros de Aplicaciones a travs del telfono, correo electrnico, o


de otra manera.
7. Cmo puedo empezar a utilizar la interfaz de LabVIEW para Arduino?
Despus de instalar el kit de herramientas que puede ver aqu la mejor manera de
empezar es mediante los ejemplos que viene en el paquete LIFA de LabVIEW. Se
encuentran en \National Instruments\LabVIEW 2012\examples\LabVIEW
Interface for Arduino
8. Puedo implementar el Cdigo de LabVIEW a mi Arduino?
No. En este momento no es posible implementar el Cdigo de LabVIEW para la
placa Arduino. Solo es posible utilizar la interfaz de LabVIEW para Arduino para
-line
9. Tengo que ser tener a un ordenador para utilizar la interfaz de LabVIEW
para Arduino?
S, sin embargo, puede ser "sin cables " mediante el uso de una o XBee BlueSMiRF

Cmo configuro la interfaz de LabVIEW para Arduino para usar una conexin
Bluetooth a mi Arduino?
o XBee or BlueSMiRF
o How Do I Setup the LabVIEW Interface for Arduino to use a Bluetooth
Connection to my Arduino?
10. Puedo agregar mis propios sensores a la interfaz de LabVIEW para Arduino?
S. Tanto el firmware y el VIS son de cdigo abierto pensado para la
personalizacin.
11. Cmo funciona la interfaz de LabVIEW para Arduino (LIFA) de trabajo?
En pocas palabras, la interfaz de LabVIEW para Arduino enva paquetes de datos de
LabVIEW para Arduino. Arduino procesa los paquetes y enva paquetes de retorno.
Los paquetes de retorno se analizan por LabVIEW para proporcionar informacin
til para el usuario final. Cada paquete es de 15 bytes por defecto y contiene un
encabezado, un byte de comando, los bytes de datos, y una suma de comprobacin.
La longitud del paquete se puede cambiar para adaptarse a aplicaciones especficas
mediante la modificacin del firmware y especificar el tamao del paquete a la VI
Init en LabVIEW (La mayora de los usuarios no tendrn que hacer esto). El
firmware LIFA en el Arduino procesa los paquetes, asegurando que los datos no se
han daado durante la transmisin. A continuacin, una vez ledo el paquete,
comprueba el byte de comando y ejecuta las instrucciones con los bytes de datos
proporcionados basndose en el byte de comando.
16

En la entrada Pin Mode debemos seleccionar INPUT y la entrada Digital I/O


PIN deberemos unirla a un bloque PIN Digital que creara el control correspondiente
en el Panel y que en modo de ejecucin permitir cambiar la entrada a leer.
IMPORTANTE: Es muy importante que se sepa que los PIN 0 y PIN 1 digitales estn
ocupados en la comunicacin con LabVIEW por lo tanto nunca se deben seleccionar ni
para leerlos ni para escribir en ellos.
No debemos olvidarnos de realizar el cableado de los buses de conexin entre mdulos:

La salida del dato ledo es un dato tipo Integer de 8 bits por lo tanto se deber
realizar la conversin a dato tipo booleano
Para despus llevarlo a un indicador de tipo array booleano TRUE FALSE.

cuyo referente en el Panel es el mostrado

La manera de operar ser ejecutar el ejemplo construido y probar su funcionamiento.

Pulsando
en el botn del Panel

para detener la ejecucin siempre se debe hacer pulsando

En la figura vemos el montaje de la aplicacin en el caso de testear la entrada 2 PIN 2

19

20

7.2.

Test 1

En el siguiente ejemplo se pretende realizar la lectura y escritura de valores en la tarjeta


Arduino.
Se enviar un valor analgico a la salida PWM PIN 3 que obtendremos de un elemento
de panel. Se leer el valor del canal de entrada analgica A0 y se mostrar en un
instrumento de aguja en el panel a la vez que en un instrumento termmetro.
Finalmente se escribir un valor digital en el PIN 8 mediante un interruptor en el panel.

En la figura vemos el aspecto de nuestro Panel.


Tal y como se puede observar en el diagrama de funciones de las siguiente figura
procederemos de la siguiente manera.
En primer lugar colocamos el bloque de inicializacin
y le asignamos el
parmetro de nmero de puerto, el resto le dejamos los que toma por defecto.
Seguidamente configuramos el PIN 8 como salida.
Dentro del bucle

procederemos a colocar los siguiente elementos:

Un bloque de lectura de seal analgica


figura. a

tal como se muestra en la

21

Este bloque necesita que le pongamos el valor del canal de entrada analgica
g
y en su salida nos entrega un valor tipo Double que se corresponde con la
lectura realizada. La salida la encaminamos a los instrumentos de medida MedidaA0
que ese corresponde con el medidor de aguja del panel.

El siguiente bloque que debemos colocar es el correspondiente a la salida digital en el PIN 8

El valor que representa el numero de PIN lo recibe de la correspondiente constante


tenemos puesta para la configuracin del PIN y el valor Value que queremos sacar en la
salida lo tomamos de un interruptor
que a la vez tambin sacamos a un Led LED 8.
Ambos en el panel.
22

28

7.5.

Contador de impulsos con puesta a cero

En el siguiente ejemplo aadimos al contador explicado en el anterior la posibilidad de poner a


cero el contador.
Para ello todo ser igual a excepcin de que colocaremos un botn de

que

En el esquema de bloques funcionales vemos que el sistema es el mismo a excepcin de que


hemos aadido una funcin del tipo
.

Esta funcin saca el valor de t cuando la entrada s es TRUE y saca f cuando su entrada
s es FALSE.

29

A continuacin mostramos el esquema completo.

.
Este sera el esquema de pruebas

30

7.6.

Intermitente

Abordamos en este ejemplo el clsico ejemplo con el que se comienza a estudiar


Arduino: una salida intermitente en uno de los Pines digitales.
Vamos a activar la salida digital PIN 8 de modo intermitente con intervalos de tiempo
ajustables desde el Panel de control en tiempo de ejecucin.
En este caso recurrimos a la ejecucin cada cierto tiempo del contenido de nuestro bucle

En la anterior imagen vemos el aspecto del Panel y en la siguiente vemos el esquema de


bloques funcional de la aplicacin.
Como siempre inicializamos Arduino y despus definimos el PIN 8 como una salida.
Dentro el bucle colocamos la funcin de escritura
. Este bloque
recibe la seal digital de la estructura que constituye el oscilador de frecuencia
variable: Implementacin del reloj

31

3. Genera las seales Rojo, Amarillo y Verde. Mediante una estructura tipo
ados que se
asociaran a cada uno de los estados de nuestro semforo.

En las figuras siguientes se muestra cada uno e los casos creados. Hemos definido

Estado Rojo. En el vemos que el estado siguiente debe ser


y Verde (FALSE). Tiempo 1000 ms.

Estado mbar. En el vemos que el estado siguiente debe ser


RUE)
y Verde (FALSE). Tiempo 1000 ms.

Estado Verde. En el vemos que el estado siguiente debe ser


(FALSE) y Verde (TRUE). Tiempo 700 ms.

35

7.8.

Semforo Ajustable

A continuacin proponemos u ejercicio de semforos en el que los tiempos de


encendido de cada lmpara sean ajustables por el operador.
Los pines de salida son los mismos y en el Panel se han incluido los objetos de entrada
de valor para cada uno de los tiempos: T. Rojo, T. Ambar y T. Verde.

La realizacin funcional de la aplicacin es la misma que la explicada anteriormente


con la nica diferencia de que en cada uno de los tres estados de la estructura
se ha incluido un elemento distinto para la designacin de tiempo.
En las figuras que se muestra a continuacin podemos distinguir cada uno de los bloque
de captura de valor

Finalmente se muestra el esquema funcional completo


37

Este sera el montaje de prueba

38

Hemos obviado el bloque de tratamiento de error dado que no es importante.

Este es el montaje de pruebas

40

La siguiente imagen muestra un circuito para probar el funcionamiento del programa.


Se han conectado hasta tres diodos leds en las salidas 8, 9 y 10 para probar, pudindose
cambiar las conexiones.

42

7.11. Escritura/Lectura de todos los Canales


Con este ejemplo vamos a controlar todas las salidas monitorizando a su vez su estado
en el panel. Para ello disponemos de dos arrays, uno de interruptores y otros de
indicadores leds que nos permitirn las funciones de gobierno de salidas.
Se ha puesto tambin la posibilidad de leer el estado de los canales analgicos.

Aqu recurrimos a dos bloques de funcin de la librera Arduino hasta ahora no


utilizados:
,
y
.
Despus
colocamos estos tres bloques.
Lectura del puerto digital: En este caso se trata de realizar la lectura del estado de todas
las entradas digitales de Arduino. Se realiza con el vbloque de la figura

Es muy importante que se sepa que los canales digitales 0 y 1, PIN 0 y PIN 1 estn
reservados para la comunicacin con LabVIEW por lo tanto su lectura obedece al
trfico de datos que se est realizando y en ningn caso se podrn colocar interruptores
de entrada en esos canales.
43

Este es el montaje para poder probar el gobierno de salidas. Bastara con cambiar el hilo
de la salida para comprobar que funciona.

45

Pondremos:
Servo 0
Servo 1

en el PIN 1
en el PIN 11

Una vez dentro del bloque de control controlaremos los servos de la manera siguiente:
En primer lugar escribiremos en el Servo 0 mediante el bloque de funcin

La seal creada se lleva a la entrada Angle del bloque


El siguiente bloque
sirve para leer la posicin del Servo
devolviendo el valor en Angle (Degrees) que se lleva a un indicador analgico
Servo 0

El Servo 1 se gobernar de la misma forma que el anterior con un bloque de tipo


cuya entrada conectamos a un control de tipo analgico al que hemos
denominado
Finalmente se colocar un bloque
que nos indicara la posicin del
servo y la mostraremos con un instrumento analgico denominado Servo 1

48

49

7.13. Funcin AND


El ejemplo que se muestra a continuacin implementa una funcin AND entre dos
entradas PIN 9 y PIN 10 cuya salida gobierna el PIN 12

En la figura se muestra el aspecto del Panel.


La implementacin como siempre comienza por el bloque
de configuracin de PIN

seguido de los bloques

Dentro del bucle de ejecucin se deben colocar dos bloques de lectura de PIN
Read
y uno de escritura
La seal que gobierna este ltimo
bloque se obtiene de realizar la funcin AND de las salidas obtenidas de las lecturas del
PIN 9 y PIN 10.
Los elementos de visualizacin de estado se han colocado en las salidas de los tres
bloques. No olvidemos que las seales deben convertirse de Array 1D a Array booleano
mediante el bloque de funcin:

50

ejecuta cclicamente el contenido del bucle


se alimenta con una entrada de valor proporcionada por un
Intervalo de medida en s.

esta funcin
etiquetado como

Los valores ledos del canal de entrada analgico Temperatura instantnea

se

muestran en un medidor de aguja a la vez que en el registrador grfico

La figura anterior muestra el esquema funcional completo y la siguiente el esquema de


montaje para las pruebas.

53

7.15. Control Motor de cc. Velocidad y Sentido


(Traducido
http://innovelectronique.fr/2012/05/04/arduino-et-lifa-labview-interface-for-arduino/
El siguiente ejmeplo esta sacado de la pagina Web que se anota al cominzo de la pagina
y es un valioso ejemplo de cmo pode controlar un pequeo motor de cc. Haciendo uso
del puente de potencia integrado en el CI L293D que puede controlar dos motores de
corriente continua: el L293D (ficha tcnica aqu ).

L293D
Tabla de funcionamiento del Motor 1
CHIP INHIBIT 1
H
H
H
H
L

INPUT 1
L
H
L
H
X

INPUT 2
H
L
L
H
X

FUNCION
Gira a la Derecha
Gira a la Izquierda
Para rpida del motor
Para rpida del motor
Para rpida del motor

Este circuito es relativamente fcil de implementar y lo haremos con un solo motor que
simplifica an ms el conjunto. Tngase en cuenta que se trata de drivers para el
gobierno de dos motores de corriente continua ( http://www.lextronic.fr/P5073-platinede-commande-de-moteurs-dc.html ).
Descripcin de pines para el control del Motor 1:
El Pin 1 (CHIP INHIBIT 1) sirve para activar el Motor 1. Si este pin est conectado a
una salida de Arduino del tipo PWM, se puede variar la velocidad del motor haciendo
variar el valor de salida de este PIN.
Los Pines 2 (INPUT 1) y 7 (INPUT 2) permiten fijar el sentido de giro del motor o la
parada. Los pines 3 (OUT 1) y 6 (OUT 2) son los pines de salida de potencia del motor.
55

El programa de LabVIEW se pueden presentar de la siguiente manera (la nica parte


que vara de uno a captar el otro es el interior de la prueba de la caja: Verdadero y
Falso:

En la figura anterior se muestra el esquema funcional de trabajo.


Para empezar se inicializa la conexin con Arduino. Seguidamente se configura el PIN
digital 8 como salida sentido Derecha. y el PIN 9 como salida sentido Izquierda.
Dentro del bucle se ha colocado una estructura tipo
que se
encargara del gobierno del motor. La ejecucin del bucle se realiza en intervalos de 200
ms.
Los casos a tener en cuenta en esta estructura son dos, que se corresponden con los dos
posibles sentidos de giro del motor.

57

En el primer caso True el sentido de giro es a la Izquierda por lo que debemos sacar
los valores correspondientes en las salidas PIN 7 y PIN 8 de Arduino. La velocidad se
recoge del control tipo numrico de aspecto circular que hemos etiquetado como
Velocidad y sentido de giro
PIN Arduino

PIN 7
PIN 8

Valor

0
1

PIN L293D

PIN L293D

Giro

INPUT 1
0

INPUT 1
1

Izquierda

False el sentido de giro es a la Derecha por lo que debemos sacar


PIN Arduino

PIN 7
PIN 8

Valor

1
0

PIN L293D

PIN L293D

Giro

INPUT 1
1

INPUT 1
0

Derecha

58

sentido esta girando el motor.


un operador del
tipo

La velocidad se genera en una escala de -100 a 100 por lo que se debe multiplicar por 2.5 para alcanzar los 255 que es el valor mximo que se puede sacar en una salida PWM
equivalente a 5v. en el PIN 11
Finalmente en la salida del bucle se detiene el motor enviando un 0 a la salida PWM
PIN 11 se cierra el puerto y se tratan los errores.

59

7.16. Medida de Temperatura mediante el Bus I2C


http://innovelectronique.fr/2012/05/04/arduino-et-lifa-labview-interface-for-arduino/
El sensor de temperatura DS1621 es un componente relativamente comn (aqu esta su
ficha tcnica). Sin detallar demasiado, slo tendremos que especificar los comandos a
enviar al DS1621 para iniciar y hacer una simple lectura de la temperatura. Los pines 1
y dos son las seles SDA y SCL del bus I2C. El Pin 3 (A) no ser utilizado en nuestra
aplicacin. Los pines 7 (A0), 6 (A1) y 5 (A0) se conectan a tierra para establecer la
direccin de este sensor I2C. El pin 4 es de tierra y el pin 8 + Vcc (5V aqu).

La secuencia de inicializacin para integra este elemento en el bus I2C es la que sigue
(contamos con que los pines A0, A1 y A2 se conectan a masa GND):
1. Condiciones de inicio (start)
2. Escriba 0 90: se selecciona la casilla A2A1A0 = 000 escribir
3. Escribir 0xac: se escribe en el registro de configuracin
4. Escriba 0 00: conversin de la temperatura continua
5. Condicin de parada (stop)
6. Esperar 20 ms: escribir eeprom de la configuracin anterior
7. Condiciones de inicio (start)
8. Escriba 0 90: se selecciona la casilla A2A1A0 = 000 escribir
9. Escribir 0xEE son: lanzamiento de la conversin a la temperatura constante
10. Condicin de parada (stop)
La siguiente secuencia se usa para leer la temperatura:
1.
2.
3.
4.
5.
6.
7.
8.

Condiciones de inicio (start)


Escriba 0 90: se selecciona la casilla A2A1A0 = 000 escribir
Escribir 0xAA: solicitud de lectura de la ltima temperatura la muestra
Condiciones de inicio (reinicio)
Escriba 0 91: se selecciona la casilla A2A1A0 = 000 readLeer todos los 8 bits de la temperatura
Leer todos los 8 bits de la configuracin de la temperatura y un NACK!
Condicin de parada (stop)
60

Te das cuenta que no es fcil, pero vamos a tratar de poner en prctica todas las
funciones de LabVIEW con Arduino. Dependiendo de la versin de la tarjeta Arduino
UNO tiene el SCL y SDA pines no son el mismo lugar (ONU Rev2: A4 = SDA, SCL =
A5; UNO Rev3: dos pines en un dedicado SCL y SDA). Al escribir este tutorial tengo
una placa Arduino rev2 UNO, el siguiente diagrama de cableado es adecuado para esta
plataforma:

El frontal de LabVIEW se produce como sigue:

61

Nota: Un indicador que se utiliza para seleccionar la direccin del sensor DS1621 en el
bus I2C. Bajo el ttulo "Datos I2C" es en realidad una forma de tabla de indicadores, se
puede ver los datos ledos del bus I2C.
El diagrama se puede presentar como sigue:

En primer lugar para entender cmo trabaja el VI sub I2C mir a las seales procedentes
de la Arduino I2C en un osciloscopio y debo decir que me ayud. La lectura del
diagrama de izquierda a derecha:

62

4. A continuacin, entra en un bucle infinito. La temperatura ser solicitada cada


500 ms. Para aplicar la temperatura final, escribir el valor 0xAA (170).
5. A continuacin, lea el resultado: aqu el DS1621 tiene que enviarnos dos bytes,
donde el valor 2 en la sub VI "Lee I2C". Este sub VI tambin es responsable de
hacer el NACK final (verificado con un osciloscopio). Esto produce una matriz
1D con dos cajas que contienen de 8-bits sin signo. Estos datos se muestran
como los datos en bruto en el indicador en el frente "de datos I2C".
6. Debemos tratar a los dos valores proporcionados por el DS1621. Empezamos
por la extraccin de los datos de la Tabla VI, en el marco del "ndice de matriz".
El ndice de '0 ': 8 MSB del resultado de la temperatura y el ndice de tipo entero
firmado '1': 8 LSB de la conversin: en nuestro caso, este byte tomar dos
valores: o bien 128 para indicar es necesario aadir 0,5 C o 0.
7. A continuacin se recogen las seales y la temperatura real se muestra en el
termmetro.
8. Esto funciona, pero tenga en cuenta que no se ocupa de temperaturas negativas.
Ese es un ejercicio que se queda sin hacer. Intntelo usted.

64

7.17. Dilogo con Arduino Ethernet

65

El cdigo de Arduino se muestra a continuacin. Se basa enteramente en el "Servidor


Web" ejemplo, es entonces suficiente para simplificar. El cdigo est comentado as que
lea con cuidado!
/*
Serveur TCP
O. DARTOIS, le 23/05/12
Source directement base sur l'exemple Web Server
*/
#include <SPI.h>
#include <Ethernet.h>
// Adresses MAC et IP changer suivant vos besoins
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 177);
// Initialisation de la librairie ethernet
// et cration d'un objet "Server" qui va accepter
// les connexions extrieures l'adresse IP defini plus
// haut et sur le port indiqu (ici 8000)
EthernetServer server(8000);
void setup()
{
Ethernet.begin(mac, ip);
// Initialisation de la pile TCP/IP
server.begin();
// Dmarrage du serveur
pinMode(3,OUTPUT);
// Broche 2 en sortie (DEL)
digitalWrite(3,LOW);
// Broche 2 0 => DEL eteinte
analogReference(INTERNAL); // Rfrence du CAN 1,1V
}
void loop()
{
// Attente des connexions et cration d'un objet client s'il y a lieu
EthernetClient client = server.available();
if (client) {
// Un client existe
while (client.connected()) {
// il est connect
if (client.available()) {
// et il a envoy des caractres
char c = client.read();
// on lit le caractre reu
if (c == 'A') digitalWrite(3,HIGH); // si c'est 'A' on allume la DEL
if (c == 'a') digitalWrite(3,LOW); // si c'est 'a' on teint la DEL
}
// on renvoie au client une chaine de caractre qui reprsente le rsultat de
// la conversion AN (par ex: '236') suivi des caractres CR+LF
server.println(analogRead(0));
delay(100);
// On ralenti un peu le flot de donnes
}
client.stop();
// Fermeture de la connexion
}
}

Una vez que el cdigo compilado e instalado en el arduino con su ethershield, vamos a
hacer un panel frontal de LabVIEW para controlar el conjunto.

66

El diagrama de bloques de LabVIEW se presenta como sigue:

Como se puede ver, el esquema es muy simple ... es especializado en el LabVIEW VI


que lleguemos a ese nivel de simplicidad. Una pequea explicacin de todos modos: el
lado del servidor arduino implementa una pila TCP / IP pero es bastante fcil hablar en
una red ethernet. Que utiliza las direcciones IP y la versin 4 de IP que se puede hacer
de enrutamiento, lo que significa que usted puede poner una caja de montaje detrs de
su casa y acceder a ellos desde cualquier lugar en Internet. El protocolo de transporte
TCP se utiliza aqu, es un protocolo de transporte de datos en modo conectado y
confiable. Esto normalmente significa que sus datos siempre llegarn con seguridad! La
prdida de paquetes ser administrado por TCP y no por usted. Como puede verse, se
utiliza TCP como el protocolo de transporte y para hacer el intercambio de datos de
trabajo con "conexiones" de redes. Todo esto va a ser tapado por el VI disponibles en la
paleta "Comunicaciones de datos" y "Protocolos" y "TCP". Para interactuar con el
arduino, debe seguir los siguientes pasos:
1. VI puso una "conexin TCP Abrir" y luego configurarlo. En nuestro caso, la direccin
IP del arduino es 192.168.1.177 y el puerto de escucha es el 8000. Para ello ser
necesario que el equipo est en la misma red que el arduino. Por ejemplo, aqu la
direccin IP de su computadora porttil podra ser 192.168.1.15.
2. Una vez que la conexin est abierta, puede enviar datos con el VI "TCP escribir".
Toma como entrada de caracteres o cadenas. Aqu, segn el estado de la tecla "Control
del LED", le enviaremos el carcter 'A' (para la luz LED, vea el cdigo arduino) o 'a' del
personaje.

67

y a la vez
tambin se puede salir si se produce un error mediante el bloque

70

7.19. Conexin de un Mdulo BlikM

71

E la figura siguiente vemos el aspecto de la pantalla Panel en modo edicin.

El montaje es el de la figura.

73

Montaje de pruebas
75

7.22. Medida de luz


(Ejemplo traducido y adaptado del original que figura en la librera LIFA aportada por
National Instruments)

Se trata de realizar una aplicacin para medir la cantidad de luz del ambiente.
Para ello recurrimos a un bloque de funcin de la librera LIFA que realiza justo esta
tarea. Bloque
Los Parmetros que hemos de configurar en este bloque se muestra n la figura

El pin a la que conectaremos la fotoclula


la tensin de referencia
mxima que colocamos en este montaje, normalmente es 5v. sacada de la propia tarjeta
Arduino
La salida del bloque es el valor equivalente a la luz medida comprendido entre 0 y 100

si se produce un ev

78

Montaje de pruebas

79

No olvidemos que deben ser pines del tipo PWM (en Arduino UNO son los pines
3,5,6,9,10,11)
Una vez dentro del bucle se colocara un bloque de escritura para sacar los valores por
cada una de las salidas:
. La informacin de los PIN de las salidas
se recoge del bloque de configuracin anterior RGB LED Pins

La entrada Color de este bloque de escritura la recogemos a travs del bloque


que a su vez tiene como entradas cada uno de los valores que colocamos en
elos sliders de entrada de color (Rojo, Azul y Verde) salida de este bloque nos permite

Se ha colocado un indicador de color en la salida de este bloque para mostrarnos una


muestra del color que estamos sacando por el LED RGB: Color
A continuacin mostramos el esquema funcional completo.

81

7.24. Medida de temperatura


(Ejemplo traducido y adaptado del original que figura en la librera LIFA aportada por
National Instruments)
Vamos a realizar un ejemplo en el que utilizaremos un bloque especifico d ela librera
LIFA:
.
La parametrizacion de este bloque consiste en definir:
Thermistor AI Pin
Paired Resistance
Vcc
Units

Canal de entrada Analgico


Resistencia a colar en serie con el sensor
Valor de la tensin de referencia (normalmente 5 v.)
Permite seleccionar las unidades de escla (C, F y K)

Estos valores los pondremos, en esta ocasio0n, a travs del Panel de visualizacin.
La visualizacin del valor
Temperatura y un cuadro numrico.

A continuacin mostramos el aspecto del Panel de visualizacin en modo ejecucin.

83

Este es el aspecto del diagrama de bloques funcional. Se ha cableado la seal de rror


para que permita salir del bucle.
No olvidemos que el control
tiene unos valores por defecto, si no nos interesan
estos podemos cambiarlos pulsado dos veces sobre el bloque.

Este es el monjate real para la comprobacion del ejercico.

84

7.25. Manipulacin de un Mando Joystick.


(Ejemplo traducido y adaptado del original que figura en la librera LIFA aportada por
National Instruments)
En numerosas aplicaciones realizadas con Arduino se utiliza un joystick, por eso
presentamos este ejemplo en el que se utilizan las libreras de tratamiento de este
componente.
Se rata de leer las seales generadas por el mando y redireccionarlas a un bloque de
control de LED RGB.
La aplicacin lo que har ser controla el color del LED RGB en funcin de las
posiciones del joystick.
En primer lugar, fuera del bucle de control se pondr el bloque
de configuracin del LED RGB y del joystick:

y los dos bloque

Se designaran los PIN para los colores Rojo, Verde y Azul


Red Pin:
Green Pin:
Blue Pin:

PIN 6
PIN 5
PIN 3

La salida de este componente se deber llevar luego al bloque


Seguidamente configuramso el joystick para lo cual designamos

Los pines para cada eje y para el botn.


Horizontal Axis AI Pin:
Vertical Axis AI Pin:
Select DI Pin:

2
3
4

85

7.26. Generador de Tonos


(Ejemplo traducido y adaptado del original que figura en la librera LIFA aportada por
National Instruments)
En este ejemplo vamos a probar la funcin

de la librera de Arduino

Esta librera se encarga de generar una seal de frecuencia variable en la que es posible
tambin variar la duracin. Es decir genera tonos de duracin y frecuencia variable.

Probaremos su funcionamiento generando un tono a travs de uno de los PIN de salida


digital seleccionable con un control numET EMC /P <</MCID 6>>4 5627(a )-6(e)4(nc)43(e)4.1 857(c)4

89

Nota: Aunque las imgenes muestran a la ahora obsoleta LabVIEW 2010, que son el
envo de 2011. La foto de Arduino no es tambin la R3 a pesar de que este paquete
incluye ahora la ltima Arduino Uno R3. Imgenes de los productos se actualizarn para
reflejar este cambio.
Caractersticas:
Utiliza USB, XBee, o enlaces Bluetooth para la comunicacin.
Tasa de 150 Hz con conexin de cable (50 Hz Wireless).
Le da acceso a analgica de Arduino, digitales, PWM, I2C, SPI y la
funcionalidad en el equipo.
Completamente de cdigo abierto del firmware (E / S del motor en el Arduino) y
el marco de LabVIEW.

92

Libreras del Kit LIFA de LabVIEW para Arduino


Descripcin de controles del panel frontal de la Librera Arduino

Permite seleccionar un Pin de Entrada


Analgica
Permite seleccionar un Pin de Entrada Salida
Digital

Permite designar un Pin como Entrada o como


Salida
Selecciona el tipo de Tarjeta

Selecciona tipo de Byte

Factor de Divisin de la frecuencia de Reloj

Modo de dato
Permite seleccionar el puerto con el que nos
comunicaremos con Arduino

93

Descripcin e Librera Arduino del mdulo


Diagrama de Bloques de Labview

Modulo de Inicio de la Tarjeta Arduino


Este mdulo es imprescindible n cualquier configuracin que hagamos, permite
configuar las caractersticas de Arduino. Por defecto viene con los parmetros que se
indican en la figura anterior.
Los conectores
y
se deben cablear a todos los
elementos que se coloquen en el diagrama con el fin de que los parmetros de
configuracin se transfieran a todos los bloques.

94

Lectura del puerto analgico.


Devuelve el valor ledo en el Puerto Analgico

Configura un PIN digital como Entrada o salida. Los parmetros de entrada sern el
nmero de puerto y el modo de trabajo (I/O).

Lectura del valor en un pin digital. Lee el valor de una entrada digital designada
valor

96

Escritura en salida Analgica PWM: Escribe un valor entre 0-255 en la salida


especificada en el Pin

Configura3 PIN como salida PWM: Se indican los PINs y devuelve el valor de los
puertos configurados

Escribe el puerto PWM: Controla tres salidas PWM cuyo nmero de PINs los recoge
del valor PWM PINs. Los valores de cada seal se suministran en los pines de entrada
PW 0, PWM 1 y PWM 2

98

Librera SPI

100

101

Librera Analog Sampling

Adquisicin continua de datos: Permite activar la lectura de datos en el de una entrada


analgica teniendo la posibilidad de asignar el tiempo de muestreo en la lectura

Detiene la adquisicin continua de los datos

Adquisicin de un numero de muestras de valor: Lee un determinado numero de


veces (muestras) un canal de entrada analgica con una frecuencia de barrido
determinada por el usuario.
102

Lee el valor de un sensor de Temperatura: Permite la configuracin del PIN en el


que se colocara el sensor as como el valor de la resistencia divisora de tensin que
conectemos con el fin de realizar el escalado de la medida y tambin la posibilidad de
establecer una tensin de referencia distinta a los 5 vcc que por defecto toma. Devuelve
un valor de tipo Double equivalente a la temperatura medida.

Lee el valor de un sensor de Luz: Permite la configuracin del PIN en el que se


colocara el sensor as como el y tambin la posibilidad de establecer una tensin de
referencia distinta a los 5 vcc que por defecto toma. Devuelve un valor de tipo Double
entre 0-100 equivalente a la cantidad de luz medida.

104

Configura un display de siete segmentos

Escribe un carcter en un display de siete segmentos.

Escribe un String en un display de siete segmentos

106

Configura un joystick: Se designan los pines analgicos para el eje X y el eje Y as


como la entrada digital para el botn se seleccin. Genera una seal de salida en forma
de clauster de 3 elementos

Lee valores de un joystick: Lee los valores y los presenta en las salidas
correspondientes a los ejes X e Y y Seleccin

107

Librera BlinkM

Esta librera sirve para el manejo de elementos luminosos tipo BlinkM

Librera Stepper Motor

Librera para control de motores paso a paso

108

Configura motor paso a paso: Especifica una salida para conectar un motor.

Escribe valores sobre un motor paso a paso: Escribe el nmero de pasos a girar y la
velocidad de generacin de pasos, as como el motor a activar

Confirmacin de funcionamiento del motor paso a paso: Indica en su salida el


nmero de pasos que faltan para alcanzar la consigna dada.

109

Espera la consecucin de todos los pasos consignados para el giro

Cierra el gobierno del motor paso a paso

110

Libreras de Servos

111

112

Librera LCD

113

Librera Utilidades

Ejemplos

114

También podría gustarte