Você está na página 1de 18

Instituto Tecnológico Superior de Teziutlán

INSTRUMENTACIÓN VIRTUAL

LABVIEW

PRÁCTICA 4
CONTADOR DE PULSO CON PUESTA A CERO

ACADEMIA DE INGERNIRÍA MECATRÓNICA

Equipo:
Eric Emilio Armenta Pérez
Jafet Chacón Méndez
Rubén Gabriel Rueda Méndez

Docente:
I.M. Rubén Hernández Santos

Abril 2019
Resumen

Se realizó un contador de pulsos digital haciendo uso de la tarjeta ARDUINO UNO, y de la


interfaz de programación gráfica LABVIEW 2017. Para ello se utilizó un pulsador conectado a una resistencia
en pull down; A continuación, los pulsos fueron introducidos al arduino a través de un pin digital. Finalmente
se realizó programación en el diagrama de bloques, de tal manera que cada vez que se accionara el
pulsador, se encendiera un led indicador y a través de un contador se mostrara en pantalla el número de
veces que fue accionado el pulsador.
ANTECEDENTES

LABVIEW

LabVIEW (acrónimo de Laboratory Virtual Instrument Engineering Workbench) es una


plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico
pensado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido.

Este programa fue creado por National Instruments (1976) para funcionar en máquinas
MAC, salió al mercado por primera vez en 1986, teniendo versiones disponibles para las plataformas
Windows, UNIX, MAC y GNU/Linux actualmente. La penúltima versión es la 2013, con la increíble
demostración de poderse usar simultáneamente para el diseño del firmware de un instrumento RF de última
generación, a la programación de alto nivel del mismo instrumento, todo ello con código abierto. Y
posteriormente la versión 2014 disponible en versión demo para estudiantes y profesional, la versión demo
se puede descargar directamente de la página National Instruments.

Los programas desarrollados con LabVIEW se llaman Instrumentos Virtuales, o VIs, y su


origen provenía del control de instrumentos, aunque hoy en día se ha expandido ampliamente no sólo al
control de todo tipo de electrónica (Instrumentación electrónica) sino también a su programación embebida,
comunicaciones, matemáticas, etc. Un lema tradicional de LabVIEW es: "La potencia está en el Software",
que con la aparición de los sistemas multinúcleo se ha hecho aún más potente. Entre sus objetivos están
el reducir el tiempo de desarrollo de aplicaciones de todo tipo (no sólo en ámbitos de Pruebas, Control y
Diseño) y el permitir la entrada a la informática a profesionales de cualquier otro campo. LabVIEW consigue
combinarse con todo tipo de software y hardware, tanto del propio fabricante -tarjetas de adquisición de
datos, PAC, Visión, instrumentos y otro Hardware- como de otros fabricantes.

Ilustración 1 Labview
Principales Características

Su principal característica es la facilidad de uso, válido para programadores profesionales


como para personas con pocos conocimientos en programación pueden hacer programas relativamente
complejos, imposibles para ellos de hacer con lenguajes tradicionales. También es muy rápido hacer
programas con LabVIEW y cualquier programador, por experimentado que sea, puede beneficiarse de él.

Los programas en LabView son llamados instrumentos virtuales (VIs) Para los amantes de
lo complejo, con LabVIEW pueden crearse programas de miles de VIs (equivalente a millones de páginas
de código texto) para aplicaciones complejas, programas de automatizaciones de decenas de miles de
puntos de entradas/salidas, proyectos para combinar nuevos VIs con VIs ya creados, etc. Incluso existen
buenas prácticas de programación para optimizar el rendimiento y la calidad de la programación. El labView
7.0 introduce un nuevo tipo de subVI llamado VIs Expreso (Express VIS). Estos son VIs interactivos que
tienen una configuración de caja de diálogo que permite al usuario personalizar la funcionalidad del VI
Expreso. El VIs estándar son VIs modulares y personalizables mediante cableado y funciones que son
elementos fundamentales de operación de LabView.

Presenta facilidades para el manejo de:

Interfaces de comunicaciones:

 Puerto serie
 Puerto paralelo
 GPIB
 PXI
 VXI
 TCP/IP, UDP, DataSocket
 Irda
 Bluetooth
 USB
 OPC...

Capacidad de interactuar con otros lenguajes y aplicaciones:

 DLL: librerías de funciones


 .NET
 ActiveX
 Multisim
 Matlab/Simulink
 AutoCAD, SolidWorks, etc
 Herramientas gráficas y textuales para el procesado digital de señales.
 Visualización y manejo de gráficas con datos dinámicos.
 Adquisición y tratamiento de imágenes.
 Control de movimiento (combinado incluso con todo lo anterior).
 Tiempo Real estrictamente hablando.
 Programación de FPGAs para control o validación.
 Sincronización entre dispositivos.
Desarrollo

Primeramente, se realizó la interfaz en el lenguaje de programación visual gráfico LABVIEW


2017, como a continuación se muestra en la figura.

Figura 1.1 Diagrama de bloques. (Fuente propia, 2019).

Aquí en el diagrama de bloques, se muestra la programación utilizando diagramas de


bloques.

Primero que nada, se inicia el programa de arduino, a través del bloque “Init, figura 1.2.
Este bloque se encuentra en la librería de arduino previamente instalada, si no se encuentra instalada no
se encontrará esta biblioteca. Para instalarla se tiene que descargar VI Package Manager, si desea instalarla
seleccione la siguiente dirección: https://vipm.jki.net/

Figura 1.2. Ícono para la iniciación de Arduino. (Fuente propia, 2019).

Posteriormente se utiliza un ciclo while figura 1.3, para que el programa se ejecute
infinitamente, a menos que una condición lo haga detenerse, por el momento esta condición está
determinada por un botón de paro general.

Figura 1.3. Ciclo while. (Fuente propia).


A continuación, se selecciona el modo de operación de digital, es decir, si se comporta como
una entrada o como una salida. En este caso, al tratarse de una lectura digital, se comportará como una
entrada digital, esto se selecciona a través del bloque “I/O” de arduino, como se muestra en la figura 1.4.
Este bloque también puede ser configurado para seleccionar el pin por el que se recibirá la señal.

Figura 1.4. Bloque de selección entrada/salida. (Fuente propia, 2019).

Después de seleccionar el modo de trabajo, se utiliza el bloque de lectura digital, haciendo


uso del bloque “READ” de arduino figura 1.5, para que sea leído el valor digital que se encuentra en la
entrada (previamente seleccionada en el bloque anterior).

Figura 1.5. Bloque de lectura digital. (Fuente propia, 2019).

Posteriormente, se hace una comparación entre el estado de la lectura que tiene solamente
dos estados, 1 cuando está presionado el pulsador y 0 cuando se encuentra en reposo. Cuando el pulsador
es activado, la comparación es verdadera, ocasionando que el indicador de pulsos encienda, y al mismo
tiempo entra en un bloque de cambio de flancos, el cual utiliza una entrada false-true lo que ocasiona que
el led encienda cada vez que se pase del estado false al true. (Figura 1.5).

Figura 1.5. Cambio en la lectura digital. (Fuente propia, 2019).


Ese cambio de estado es mandado dentro de un case estructure, y en caso de pasar de
falso a verdadero (como se programó previamente), entra en la condición de “true”, lo que ocasiona que la
variable local “Numeric” la cual es el contador, se incremente y entre dentro de un “Select” el cual evalúa
la condición de un botón de reset. Al no estar accionado tal botón manda un falso, y por lo tanto el indicador
Numeric muestra lo que exista en la opción de false, en este caso mostrará el contador.

En dado caso de que sea activado el botón de reset, este ocasionara un “true” en el select,
lo que mandará el valor que se encuentre en su entrada de “true”, en este caso un 0, lo que ocasionará
que el contador Numeric vuelva a cero. (Figura 1.6).

Figura 1.6. Proceso de conteo. (Fuente propia, 2019).

Finalmente, se cierra arduino, haciendo uso del bloque “close”, como se muestra en la
figura 1.7.

Figura 1.7. Bloque de cierre. (Fuente propia, 2019).

Ahora, se mostrará el panel frontal.


Figura 1.8. Panel de control.

A continuación, se hace una breve descripción del funcionamiento de cada uno de los
instrumentos virtuales.

El primer instrumento utilizado es el Pin Mode, el cual es utilizado para seleccionar si el pin
digital a trabajar es una entrada o una salida, en este caso, se trata de una lectura digital a través de un
pulsador, por lo que se trabaja en modo de entrada.

Figura 1.9. Instrumento Pin Mode. (Fuente propia, 2019).

Como segundo elemento se tiene a la selección del Pin de entrada, el cual es utilizado por
el usuario para seleccionar el pin digital por el cual se quiere realizar la lectura.

Figura 1.10. Instrumento de selección de entrada. (Fuente propia, 2019).


Posteriormente, se tienen 2 instrumentos indicadores; EL primero de ellos es el contador,
el cual lleva la cuenta del número de veces que se ha activado el pulsador, en segundo lugar, se tiene al
led indicador, el cual es encendido mientras se mantenga presionado el pulsador.

Figura 1.11. Instrumento contador y led indicador. (Fuente propia, 2019).

El siguiente instrumento virtual utilizado es un switch, el cual es el encargado de restablecer


el contador.

Figura 1.12. Instrumento de reset. (Fuente propia, 2019).

Finalmente, se tiene el botón de paro general. El cual se encarga de terminar el programa


de manera general.

Figura 1.13. Instrumento de stop general. (Fuente propia, 2019).

Circuito Físico.
Figura 1.15. Circuito físico. (Fuente propia, 2019).

Funcionamiento del contador.

Figura 1.16 Pulsador presionado. (Fuente propia, 2019).


Figura 1.17. Pulsos mostrados en el panel frontal. (Fuente propia, 2019).

Ahora, haciendo uso de un puente de Wheatstone, se conecta un potenciómetro y una LDR,


con la intención de cambiar un voltaje entre 2 puntos dados, el circuito se muestra a continuación.

Figura 1.18. Puente de Wheatstone en Proteus. (Fuente propia, 2019).


Análisis del circuito amplificador operacional

Figura 1.19. OPAMP en su modo restador. (Fuente propia, 2019).

Suponiendo que R1=R3, y R2=R4.

Haciendo las operaciones se tiene que:


I1 = I2
I3 = I4
VA − Vn Vn − VO
=
R1 R2
−R 2
VO = ∗ VA
R1
R4
Vn = ( )V
R3 + R4 B

Finalmente, se tiene una simplificación y se llega a la siguiente ecuación:


R2
VO = (V − VA )
R1 B
Posteriormente, se realizó la conexión del puente de Wheatstone físicamente, a
continuación, se muestra en la figura 1.20.

Figura 1.20. Puente de Wheatstone. (Fuente propia, 2019).

Posteriormente, de acuerdo con la imagen que se muestra en la parte inferior, se deben de


conectar los voltajes A y B a la entrada analógica del Arduino, y posteriormente deben de ser graficados en
Labview.

En este caso, en el puente de Wheatstone, se movió al potenciómetro a 10K, y se mide el


voltaje en sus extremos, el cual debe de ser de un aproximado de 2.5 V, porque existe una resistencia de
10 k conectada en serie a ella, por tal motivo debe de haber un voltaje ideal de 2.5v en cada una de ellas,
a continuación, se muestra el voltaje de las gráficas. Figura 1.21.

Figura 1.21. Gráfica de voltajes analógicos. Figura 1.21. (Fuente propia, 2019).
En este caso, la línea roja corresponde al voltaje en el punto B (consultar figura 1.22), que
es de aproximadamente 2.6 V, en tanto la línea amarilla es el voltaje en el punto A, el cual tiene un valor
aproximado de 2.4 V, y la salida del opamp, en modo restador, hace la diferencia entre el voltaje de salida
de VB y le resta el voltaje VA, como a continuación se muestra:

Va = 2.4 V

Vb = 2.6 V

Salida del restador = (Vb – Va) = 0.2 V (Línea verde en la gráfica de la figura 1.21.)

Figura 1.22. Puente de Wheatstone. (Fuente propia, 2019).

Contestando a las preguntas:

a. Si varias el potenciómetro R1, ¿De qué manera varia la lectura de sus


señales analógicas?

Al variar el potenciómetro R1, el voltaje del punto A, respecto al Punto B (no Respecto a
tierra) cambia, pude aumentar o disminuir, y como se encuentra en serie con la resistencia R2, esta también
disminuye o aumenta, todo en una relación inversamente proporcional, es decir, si aumenta la resistencia
en R1, aumenta el voltaje en la misma, y por lo tanto disminuye en la Resistencia R2; En cambio, si se
disminuye sus resistencia, disminuirá el voltaje, provocando un aumento del mismo pero ahora en R2.

b. ¿Cómo es la señal en las gráficas al utilizar la función del amplificador


diferenciador?

El diferenciador realiza una resta entre los voltajes de los puntos A y B, en este caso, al
voltaje B se le resta el voltaje A. Por lo que esta señal del diferenciador cambia en un rango de 0 a 5v.
A continuación, se muestra una tabla con las mediciones realizadas utilizando el multímetro,
yla interfaz gráfica de Labview, así también como los valores calculados.

Mediciones obtenidas en Labview.

Figura 1.23. Mediciones de voltaje obtenidas en Labview 2017. (Fuente propia, 2019).

Mediciones haciendo uso del Multímetro.

Figura 1.24. Mediciones con el multímetro. (Fuente propia, 2019).


Mediciones de acuerdo a cálculos.

Figura 1.25. Cálculos. (Fuente propia, 2019).

Figura 1.26. Cálculos. (Fuente propia, 2019).


Contestando las tablas:

Tabla 1.1. Voltajes medidos.

N. Calculados Medidos con el Mostrados en Labview.


multímetro
Voltaje Voltaje Salida Voltaje Voltaje Voltaje Voltaje Voltaje
en VA en VB de en VA en VB en VA en VB a la
OPAMP salida
del
Opamp
1 0.45V 4.54V 4V 0.49V 4.46V 0.24V 4.76V 4.51V
2 0.83V 4.16V 3.33V 0.86V 4.13V 1.03V 3.97V 2.94V
3 1.15V 3.85V 2.7V 1.16V 3.83V 1.46V 3.54V 2.07V
4 1.42V 3.57V 2.15V 1.45V 3.55V 2.24V 2.75V 0.50V
5 1.66V 3.33V 1.67V 1.69V 3.30V 1.23V 3.76V 2.53V
6 1.875V 3.125V 1.25V 1.90V 3.11V 0.74V 4.25V 3.5V
7 2.05V 2.94V 0.89V 2.09V 2.91V 0.36V 4.63V 4.27
8 2.22V 2.78V 0.56V 2.25V 2.75V 1.64V 3.36V 1.72V
9 2.36 2.64V 0.28 2.39V 2.61V 2.10V 2.9V 0.80V
10 2.5V 2.5V 0V 2.43V 2.51V 1.70V 3.29V 1.58V

Conclusión:

Durante el desarrollo de la práctica se encontraron algunos problemas en la parte del rebote


del pulsador, ya que, al dejarlo presionado, este ocasionaba que el contador siguiera contando de tal manera
que generaba un conteo erróneo. Este inconveniente se resolvió al utilizar un bloque de cambio de flanco,
así mismo haciendo uso de un case structure para la toma de decisiones mientras el cambio de flanco sea
verdadero se pase de “false” a “true”.

Eric Armenta Pérez.

Para realizar ésta práctica necesitamos de la comunicación serial, sin embargo, surgió un
problema, ya que en la línea de error de LabVIEW se mostraba que no se podía abrir el puerto. Se
solucionó instalando VISA, ya que ésta gestiona la comunicación. Otro problema surgió con el Arduino,
porque el que se pensaba utilizar era genérico, los cuales usan controladores diferentes para la
comunicación y se genera un problema de compatibilidad.

Jafet Chacón Méndez.

En esta práctica de comunicación entre Arduino y Labview al principio tuvimos problemas


para poder vincularlos debido a que nos faltaban algunos complementos entre otros. Al igual saber el
funcionamiento de un puente de Wheatstone para hacer la lectura de los valores de voltajes en el punto a
y en el punto b.

Posteriormente se tenía que llenar una tabla de los valores mostrados en multímetro y en
la interfaz de Labview.

Rubén Gabriel Rueda Méndez


Anexos

Fuentes:

Automatique, I., Salzmann, C., Zufferey, C., Ouwehand, M., Ouwehand, M., Roulet, F., … Roulet, F.
(2000). LabVIEW 6, 1–16.

Mohiuddin, T., Nawrocki, M., & Bitter, R. (2010). Introduction to LabVIEW. In LabView (pp. 1–67). CRC
Press. https://doi.org/10.1201/9781420004915.ch1

Halvorsens, H.-P. (2011). Data Acquisition in LabVIEW. LabView, 4–5. https://doi.org/10.1016/B978-0-12-


381960-4.00005-X

Tobergte, D. R., & Curtis, S. (2013). Labview for Engineers. Journal of Chemical Information and Modeling
(Vol. 53, pp. 1689–1699). https://doi.org/10.1017/CBO9781107415324.004

National Instruments Coorporation. (2013). LabVIEW User Manual. Ni.Com.

Você também pode gostar