Está en la página 1de 43

UNIVERSIDAD AUTÓNOMA DEL ESTADO DE

HIDALGO
INSTITUTO DE CIENCIAS BÁSICAS E INGENIERÍA
ÁREA ACADÉMICA DE COMPUTACIÓN Y ELECTRÓNICA
LICENCIATURA EN INGENIERÍA EN ELECTRÓNICA

REPORTE DE PRÁCTICAS: ELECTRÓNICA


PARA CONTROL E INSTRUMENTACIÓN

ALUMNO:
CASTAÑO HERNÁNDEZ ALEJANDRO

N° DE CUENTA
296959

SEMESTRE Y GRUPO:
8° 1 MATUTINO

MATERIA:
ELECTRÓNICA PARA CONTROL E INSTRUMENTACIÓN

CATEDRÁTICO:
DR. RAÚL VILLAFUERTE SEGURA

FECHA DE ENTREGA:
5 DE ABRIL DE 2017
REPORTE DE PRÁCTICAS: ELECTRÓNICA PARA
CONTROL E INSTRUMENTACIÓN
Dr. Raúl Villafuerte Segura

Alejandro Castaño Hernández

5 de Abril de 2017
0.1. INTRODUCCIÓN
En el presente reporte de prácticas, se desarrolla y ejecuta, una serie de ejercicios que invo-
lucran las herramientas de Arduino, MATLAB, SIMULINK y LABVIEW, haciendo énfasis en
la capacidad de comunicación entre dichas herramientas.

La primera práctica, se describe la ejecución de dos programas básicos desarrollados en la


IDE de Arduino, que permiten comprender el funcionamiento de dicha tarjeta, ası́ como de
su lenguaje de programación. El primero de ellos consta del encendido y apagado de un led
mediante un pulsador; mientras que el segundo, permite desarrollar un programa secuencial al
crear el efecto de las luces del auto increı́ble, presentado de dos formas distintas.

La segunda práctica tiene como objetivo, vincular el software de LABVIEW con la tarjeta
Arduino, para posteriormente, ejecutar dos de los ejemplos ya creados para estas estas herra-
mientas (control de un led RGB y la manipulación de una pantalla LCD). Con esto se pretende
demostrar las facilidades de uso de LABVIEW con Arduino, gracias al desarrollo de paqueterı́as
que permiten comunicar estas dos herramientas.

Como última práctica, se realiza la instalación de la paqueterı́a desarrollada por MAT-


WORKS para la comunicación de ARDUINO con las herramientas de MATLAB, permitiendo
con ello, emplear la tarjeta Arduino como una potente herramienta de adquisición de datos,
que mediante SIMULINK (desarrollo de diagramas a bloques) o GUIDE (creación de interfaces
gráficas) podrá ser programada y manipulada.

Para lograr todo lo anterior, es necesario del conocimiento de cada uno de los conceptos
a emplear, por lo que, se desarrolla un pequeña descripción de las principales herramientas a
utilizar, ası́ como de todos los pasos seguidos para la instalación de los paquetes antes mencio-
nados, incluyendo la forma correcta de ejecución de los ejemplos tomados.

1
Parte I

MARCO TEÓRICO: MATLAB,


LABVIEW Y ARDUINO.

2
0.2. MARCO TEÓRICO
A continuación, se describe de forma general algunos de los términos y conceptos empleados
en cada una de las prácticas solicitadas por el catedrático:

0.2.1. MATLAB (LABORATORIO DE MATRICES)


MATLAB es un software matemático con entorno de desarrollo integrado (IDE) que tiene
un lenguaje de programación propio (Lenguaje M) y es multiplataforma (Unix, Windows y
Apple Mac Os X), cuyo impacto se ve reflejado en un gran uso en Centros de Investigación y
Desarrollo ası́ como en universidades. En la figura 1 se muestra el logo de MATLAB [1].

Figura 1: Logo de MATLAB

HISTORIA
En 1984 surge la primera versión, creado por Cleve Moler, con la idea de usar paquetes de
subrutinas escritas en Fortran en los cursos de Análisis Numérico y Álgebra Lineal, sin tener
programas que usaran este lenguaje.

El lenguaje de programación M se creó en 1970 proporcionando un acceso sencillo al Software


de matrices LINPACK y EISPACK sin tener que hacer uso del lenguaje Fortran[1].

FUNCIONES
Algunas de las funciones con las que cuenta este potente software, se encuentran:

Manipulación de Matrices.

La representación de datos y funciones.

Implementación de algoritmos.

Creación de interfaces de usuario (GUI).

Comunicación con programas en otros lenguajes y con otros dispositivos Hardware.

HERRAMIENTAS ADICIONALES
1. SIMULINK (plataforma de simulación multidominio): Es un entorno de diagrama de
bloques para la simulación multidominio y diseño basado en modelos . Es compatible con
la simulación, la generación automática de código, y la prueba continua y verificación de
sistemas embebidos.

3
Simulink ofrece un editor gráfico, bibliotecas de bloques personalizables y solucionadores
para el modelado y simulación de sistemas dinámicos. Se integra con MATLAB R , lo que
le permite incorporar algoritmos de MATLAB en modelos de simulación y los resultados
de exportación a MATLAB para su posterior análisis(ver figura 2(a)).

2. GUIDE: herramienta que permite la creación y edición de interfaces gráficas de usuario -


GUI (ver figura 2(b)).

En la figura 3 se muestra el entorno gráfico de MATLAB 2015a, donde puede notarse, las
diversas funciones y herramientas con las que cuenta este potente software, tal como lo es
SIMULINK y GUIDE, para la creación tanto de simulación con diagramas a bloques, como de
la creación de interfaces gráficas de usuario.

Figura 2: (a) Entorno de SIMULINK. (b) Entorno de GUIDE

Figura 3: Entorno gráfico de MATLAB 2015a

4
0.2.2. LABVIEW(Laboratory Virtual Instrument Engineering Work-
bench)
LabVIEW es un entorno de desarrollo integrado y diseñado especı́ficamente para ingenieros
y cientı́ficos que desarrollan sistemas de medidas y control. Con un lenguaje de programación
gráfica nativo, IP integrado para análisis de datos y procesamiento de señales y una arquitectura
abierta que permite la integración de cualquier dispositivo de hardware y cualquier enfoque de
software[2]. En la figura 4, se muestra el icono de LABVIEW:

Figura 4: Icono de LABVIEW

PRINCIPALES CARACTERÍSTICAS
LabVIEW constituye un revolucionario sistema de programación gráfica para aplicaciones
que involucren adquisición, control, análisis y presentación de datos. Las ventajas que propor-
ciona el empleo de LabVIEW se resumen en las siguientes:

Se reduce el tiempo de desarrollo de las aplicaciones al menos de 4 a 10 veces, ya que es


muy intuitivo y fácil de aprender.

Dota de gran flexibilidad al sistema, permitiendo cambios y actualizaciones tanto del


hardware como del software.

Da la posibilidad a los usuarios de crear soluciones completas y complejas.

Con un único sistema de desarrollo se integran las funciones de adquisición, análisis y


presentación de datos.

El sistema está dotado de un compilador gráfico para lograr la máxima velocidad de


ejecución posible.

Tiene la posibilidad de incorporar aplicaciones escritas en otros lenguajes.

LabVIEW es un entorno de programación destinado al desarrollo de aplicaciones, similar a


los sistemas de desarrollo comerciales que utilizan el lenguaje C o BASIC. Sin embargo, Lab-
VIEW se diferencia de dichos programas en un importante aspecto: los citados lenguajes de
programación se basan en lı́neas de texto para crear el código fuente del programa, mientras
que LabVIEW emplea la programación gráfica o lenguaje G para crear programas basados en
diagramas de bloques.

5
Para el empleo de LabVIEW no se requiere gran experiencia en programación, ya que se
emplean iconos, términos e ideas familiares a cientı́ficos e ingenieros, y se apoya sobre sı́mbolos
gráficos en lugar de lenguaje escrito para construir las aplicaciones. Por ello resulta mucho más
intuitivo que el resto de lenguajes de programación convencionales [2].

LabVIEW posee extensas librerı́as de funciones y subrutinas. Además de las funciones bási-
cas de todo lenguaje de programación, LabVIEW incluye librerı́as especı́ficas para la adquisición
de datos, control de instrumentación VXI, GPIB y comunicación serie, análisis presentación y
guardado de datos. LabVIEW también proporciona potentes herramientas que facilitan la de-
puración de los programas.
Los programas desarrollados mediante LabVIEW se denominan Instrumentos Virtuales
(VIs), porque su apariencia y funcionamiento imitan los de un instrumento real. Sin embargo
son análogos a las funciones creadas con los lenguajes de programación convencionales. Los VIs
tienen una parte interactiva con el usuario y otra parte de código fuente, y aceptan parámetros
procedentes de otros VIs. Todos los VIs tienen un panel frontal y un diagrama de bloques. Las
paletas contienen las opciones que se emplean para crear y modificar los VIs. A continuación
se procederá a realizar una somera descripción de estos conceptos [2].

A. PANEL FRONTAL
Se trata de la interfaz gráfica del VI con el usuario. Esta interfaz recoge las entradas pro-
cedentes del usuario y representa las salidas proporcionadas por el programa. Un panel frontal
está formado por una serie de botones, pulsadores, potenciómetros, gráficos, etc. Cada uno de
ellos puede estar definido como un control (a) o un indicador (b). Los primeros sirven para
introducir parámetros al VI, mientras que los indicadores se emplean para mostrar los resulta-
dos producidos, ya sean datos adquiridos o resultados de alguna operación. En la figura 5 se
muestra el entorno gráfico del panel frontal de LABVIEW [3].

Figura 5: Panel Frontal LABVIEW

6
B. DIAGRAMA DE BLOQUES
El diagrama de bloques constituye el código fuente del VI. En el diagrama de bloques es
donde se realiza la implementación del programa del VI para controlar o realizar cualquier
procesado de las entradas y salidas que se crearon en el panel frontal. El diagrama de bloques
incluye funciones y estructuras integradas en las librerı́as que incorpora LabVIEW. En el len-
guaje G las funciones y las estructuras son nodos elementales. Son análogas a los operadores o
librerı́as de funciones de los lenguajes convencionales. Los controles e indicadores que se colo-
caron previamente en el Panel Frontal, se materializan en el diagrama de bloques mediante los
terminales. En la figura 6, se muestra el entorno gráfico del diagrama a bloques de LABVIEW
[3].

Figura 6: Diagrama de Bloques LABVIEW

0.3. ARDUINO
Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basada
en hardware y software fexibles y fáciles de usar. Arduino puede ”sentir.el entorno mediante la
recepción de entradas desde una variedad de sensores y puede afectar a su alrededor mediante
el control de luces, motores y otros artefactos.
El microcontrolador de la placa se programa usando el .Arduino Programming Language”(basado
en Wiring1) y el .Arduino Development Environment”(basado en Processing2).
Los proyectos de Arduino pueden ser autónomos o se pueden comunicar con software en ejecu-
ción en un ordenador (por ejemplo con Flash, Processing, MaxMSP, etc.).
Las placas se pueden ensamblar a mano o encargarlas preensambladas4; el software se puede
descargar gratuitamente. Los diseños de referencia del hardware (archivos CAD) están dispo-
nibles bajo licencia open-source [4]. En la figura N, se muestra el logotipo de Arduino.

HARDWARE DE ARDUINO
Hay múltiples versiones de la placa Arduino. La mayorı́a usan el ATmega168 de Atmel,
mientras que las placas más antiguas usan el ATmega8. Los diseños de referencia para Arduino

7
Figura 7: Logotipo de arduino

se distribuyen bajo licencia Creative Commons Attribution-ShareAlike 2.5. En la figura N, se


muestra la tarjeta Arduino Uno junto con sus especificaciones de hardware, considerada como
una de las más popular entre los distintos modelos existentes [4].

Figura 8: Tarjeta Arduino Uno (especificaciones de hardware)

SOFTWARE
El lenguaje de programación de Arduino es una implementación de Wiring, una plataforma
de computación fı́sica parecida, que a su vez se basa en Processing, un entorno de programación
multimedia. El entorno de Desarrollo Arduino está constituido por un editor de texto para
escribir el código, un área de mensajes, una consola de texto, una barra de herramientas con
botones para las funciones comunes, y una serie de menús. Permite la conexión con el hardware
de Arduino para cargar los programas y comunicarse con ellos. Arduino utiliza para escribir
el software lo que denomina ”sketch”(programa). Estos programas son escritos en el editor de
texto. La consola muestra el texto de salida para el entorno de Arduino incluyendo los mensajes
de error completos y otras informaciones. La barra de herramientas permite verificar el proceso
de carga, creación, apertura y guardado de programas, y la monitorización serie.

8
En la figura 9, se muestra el IDE de arduino, mismo que puede descargarse gratuitamente
desde la página oficial de Arduino. Con arduino, es posible controlar diversos componentes
electrónicos, tales como servomotores, motores a paso, pantallas LCD, etc., ası́ como permitir
la lectura, tanto de señales analógicas como de señales señales digitales, y aunque no posee
salidas analógicas, tiene la capacidad de generar salidas digitales, ası́ como señales de PWM
(modulación por ancho de pulso), que emulan una señal analógica de salida [5].

Figura 9: IDE de Arduino (entorno de programación)

0.3.1. ARDUINO Y SU COMUNICACIÓN CON LABVIEW Y


MATLAB
En la actualidad, empresas como MATHWORKS y LABVIEW han desarrollado paqueterı́as
que permiten comunicar distintos tipos de tarjetas electrónicas con sus softwares, logrando con
ello, expandir las aplicaciones en todas las ramas de la ingenierı́a. De entre las múltiples tarjetas
electrónicas con las cuales es posible vincular MATLAB o LABVIEW, se encuentra ARDUINO,

9
que por su facilidad de adquisión, ası́ como de programación, han permitido expandir las capa-
cidades y usos de este hardware, convirtiéndose en una potente herramienta de adquisición de
datos y manipulación de hardware electrónico.
En la figura 10 se muestra una aplicación creada con Arduino y Labview, mientras que en
la figura 11 se muestra una aplicación realizada con Arduino y Simulink de MATLAB [5].

Figura 10: Aplicación realizada con Arduino y Labview (control de un LED RGB)

Figura 11: Aplicación realizada con Arduino y Matlab

10
Parte II

PRÁCTICA 1: PROGRAMACIÓN
EN IDE DE ARDUINO (EJECUCIÓN
DE DOS EJEMPLOS).

11
0.4. OBJETIVO
Familiarizarse con el entorno de programación de arduino, ası́ como de la ubicación de
componentes electrónico de la tarjeta, permitiendo con ello, lograr una mejor comprensión
del mismo.

0.5. RESUMEN
El lenguaje de programación de Arduino, es muy sencillo de comprender, ya está basado
en el lenguaje de programación Processing (aunque en el marco teórico del presenta trabajo
se explico este punto), incluyendo además un sin numero de librerı́as que permiten facilitar el
control de diversos componentes electrónicos, tales como servomotores, pantallas LCD, motores
a paso, comunicación a través de distintos protocolos (tales como la comunicación serial o I2C).
Esta primera práctica está compuesta por la ejecución de dos programas precargados en la IDE
de Arduino. El primero de ellos, es controlar el encendido de un LED mediante un pulsador,
siendo el segundo, una programación secuencial para crear por software el efecto de las luces
del auto increı́ble.

0.6. MATERIALES
Butón pulsador.

1 resistencia de 10kΩ.

6 resistencias de 330 kΩ.

7 LED’s.

1 Tablilla de pruebas (protoboard).

Tarjeta Arduino (Uno o Mega2560).

Arduino IDE.

0.7. INSTALACIÓN DE ARDUINO IDE


Antes de ejecutar los ejemplos de arduino, es necesario descargar e instalar la IDE de
Arduino, por lo que es necesario seguir todas las instrucciones dadas en la página oficial de
Arduino, dando clic en la siguiente liga: https://www.arduino.cc/en/Guide/Windows. En dicha
página se describe detalladamente los pasos a seguir para una correcta y satisfactoria instalación
del IDE de arduino (ver figura 12).
Una vez realizada la instalación, es necesario configurar el puerto COM al cual esta conec-
tada la tarjeta Arduino, ası́ como el respectivo tipo de tarjeta.

12
Figura 12: Página oficial de Arduino para la descarga e instalación del IDE de Arduino

0.8. DESARROLLO
EJERCICIO 1: ENCENDIDO DE UN LED POR MEDIO DE UN PULSADOR
Este ejemplo se basa en la lógica de una lectura digital (pin digital 2), para el encendido
de un LED, es decir, mediante un pulsador, se estará enviando una señal digital al pin 2 de
la tarjeta arduino (0 o 5V), y al detectar un alto lógico, se enviará una señal en alto por pin
digital 13 al cual estará conectado el LED. Cabe resaltar que a la placa arduino ya posee un
LED conectado al Pin digital 13, por lo que no será necesario agregar dicho elementos, pero
por cuestiones prácticas se realizará.
El código se muestra a continuación, el cual incluye comentarios que explican cada lı́nea de
código escrito:

const int buttonPin = 2; // Pin digital 2, donde está el botón pulsador.


const int ledPin = 13; // Pin digital 13, donde se encuentra el led.
int buttonState = 0; // Variable que tomara las lecturas del botón.

void setup() // Inicializamos el led como salida y el pushbutton como entrada.


{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
}

void loop()
{
// Leyendo el valor del botón:
buttonState = digitalRead(buttonPin);

13
if (buttonState == HIGH) // Checar si el botón está siendo oprimido. {
digitalWrite(ledPin, HIGH);// Si cumple la condición, prender LED.
}
else
{
digitalWrite(ledPin, LOW); // Si no, apagar el led.
}
}
Una vez verificado que el código este correctamente escrito, se cargará a la tarjeta arduino
a emplear, no sin antes configurar el puerto COM y el tipo de tarjeta a utilizar.

El diagrama de conexión de los componentes electrónicos se muestra en la figura 14, mientras


que en la figura 13 se muestra la IDE de Arduino con el programa antes descrito.

Figura 13: Compilación y depuración del ejemplo 1 (encendido de un LED con un pulsador)

14
Figura 14: Diagrama esquemático de conexión del ejemplo 1 (encendido de un LED con un
pulsador) elaborado en la herramienta Fritzing.

En la figura 15 se muestra el producto final del ejercicio 1 de la práctica 1.

Figura 15: Funcionamiento del ejemplo 1 (pulsador presionado)

EJERCICIO 2: PROGRAMACIÓN DE LAS LUCES DEL AUTO FANTÁSTICO


En el ejercicio 2 de la práctica 1, consiste en realizar un programa que emule las luces del
auto fantástico. ?El auto fantástico, fue llamado ası́ en honor a la serie de TV de los 80´s en
el que David Hasselhoff tenı́a una máquina de IA conduciendo su Pontiac. El coche estaba
equipado con gran cantidad de LED’s de todos los tamaños posibles que realizaban efectos par-
padeantes. El objetivo del este ejercicio, es desarrollar un programa con logica secuencial, que
permite ampliar los conocimiento y práctica en el uso de ciclos for. A continuación se presentan
dos códigos distintos que muestran el efecto del auto fantástico.

15
VERSIÓN 1: Esta versión emplea y un vector (donde se almacenan los pines a emplear) y ciclos
for, tanto para la configuración de los pines digitales de salida, como para la secuencia deseada.
Con esto se logra un código simple y entendible. Adicionalmente se ha comentado cada una de
las lı́neas de código describiendo que función desempeña cada una de ellas.

int pinArray[] = 2, 3, 4, 5, 6, 7; // Arreglo que define los pines de los leds.


int count = 0; // Contador int timer = 15; // Temporizador

void setup()
{
for (count=0;count¡6;count++)
// Configuramos todos los pines de salida.
pinMode(pinArray[count], OUTPUT);
}
}

void loop()
{
// Enciende y apaga los leds
for (count=0;count¡6;count++)
{
// utilinzado la secuencia for.
digitalWrite(pinArray[count], HIGH); // Recorrido de ida
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
for (count=5;count¿=0;count–)
{
digitalWrite(pinArray[count], HIGH); // Recorrido de vuelta
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer);
}
}

VERSIÓN 2: El código que se muestra a continuación, difiere de la versión 1 en el hecho


de que la secuencia se realiza con dos LED’s encendidos a la vez, sin embargo, la estructura
del scketch es muy similar, ya que emplea ciclos for para lograr el efecto de las luces del auto
fantástico, al tiempo que se reduce lı́neas de código. Al igual que en el programa anterior, se ha
comentado cada lı́nea de código escrito, de tal forma que la lógica se comprenda adecuadamente.
int pinArray[] = 2, 3, 4, 5, 6, 7; // Arreglo de pines.
int count = 0; // Contador
int timer = 30; // Temporizador de 30 seg.

void setup()
{
for (count=0;count¡6;count++)

16
{
// Configuramos todos los pines.
pinMode(pinArray[count], OUTPUT);
}
}

void loop()
{
for (count=0;count¡5;count++)
{
// Enciende los LED ahora con efecto visual.
digitalWrite(pinArray[count], HIGH);
delay(timer); //Mandamos llamar el temporizador de 30 seg. Que fue declarado al principio.
digitalWrite(pinArray[count + 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
for (count=5;count¿0;count–)
{
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count - 1], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(timer*2);
}
}
En la figura 16 se muestra el diagrama de conexiones del circuito para la implementación fı́sica
del programa de las luces del auto increı́ble. Cabe resaltar que antes de haber cargado el código

Figura 16: Diagrama esquemático de conexión del ejemplo 2 (programación de las luces del
auto increible) elaborado en la herramienta Fritzing.

17
a la tarjeta Arduino, se debió haber seleccionado el puerto COM y el tipo de tarjeta a emplear,
ası́ como verificar que no existiese errores de sintaxis (ver figura 17).

Figura 17: Compilación y depuración de las dos versiones del ejemplo 2 (programación de las
luces del auto fantástico).

La implementación fı́sica de la versión 1 del programa de las luces del auto fantástico se
muestra en figura 18, mientras que en ,a figura 19 se muestra la implementación fı́sica de la
versión 2.

Figura 18: Implementación fı́sica de la versión 1 de la programación de las luces del auto
fantástico

VIDEO EXPLICATIVO (YOUTUBE):


En los anexos se incluye un video de YouTube, que explica de forma más detalla la imple-
mentación de los anteriores ejercicios, con lo cual se refuerza lo anteriormente abarcado. Dicho

18
Figura 19: Implementación fı́sica de la versión 2 de la programación de las luces del auto
fantástico

video es de autorı́a propia.

0.9. CONCLUSIONES
Al llevar acabo cada uno de los ejercicios solicitados por el catedrático, se logró comprender el
entorno y el lenguaje de programación de arduino, que gracias a sus múltiples librerı́as, es posible
realizar proyectos electrónicos desde lo más simple hasta lo mas complejo. Cabe resaltar que
aunque solo se realizaron ejecutaron ejemplos sencillos, estos permitieron un avance significativo
en la programación. La explicación de la lógica de cada uno de los programas desarrollados fue
explicado.

19
Parte III

PRÁCTICA 2: MANEJO DE LA
TARJETA ARDUINO CON
EJEMPLOS EN LABVIEW.

20
0.10. OBJETIVO
Comprender el lenguaje gráfico de programación de LABVIEW, ası́ como de su comuni-
cación con la tarjeta ARDUINO mediante la instalación de las paqueterı́as desarrolladas
para este hardware, permitiendo la ejecución de dos ejemplos que combinan estas dos
herramientas.

0.11. RESUMEN
La tarjeta Arduino, es una de las herramientas electrónicas más empleadas en la actualidad,
debido a su facilidad de programación, ası́ como su capacidad de integración y comunicación
con diversos programas, siendo uno de ellos LABVIEW. Esto fue posible gracias a la creación
de paqueterı́as desarrolladas por la empresa National Instrument, conviertiendo a la tarjeta
arduino en una increible tarjeta de adquisición de datos.

En la presente práctica, se describen los pasos para la correcta instalación de NIVISA y VI


Package Manager de LABVIEW 2016, que permiten la descarga de las paqueterı́as para Ar-
duino, ası́ como del estándar de comunicación. Una vez logrado lo anterior, automáticamente, la
paqueterı́a descargada para Arduino, proveerá una serie de ejemplos, de los cuales se ejecutarán
dos de ellos (control de un LED RGB y de una pantalla LCD).

0.12. MATERIALES
1 Tarjeta Arduino Uno.

1 Tablilla de pruebas.

3 resistencias de 330ω.

1 Potenciometro de 100kω.

1 Pantalla LCD 16*2 modelo JHD-162a.

Cable para protoboard.

1 LED RGB.

LABVIEW 2016.

0.13. CONCEPTOS BÁSICOS E INSTALACIÓN DE


PAQUETERÍAS DE ARDUINO EN LABVIEW.
El primer paso una vez instalada LABVIEW 2016, es la de instalar NIVISA, (VISA) que
es el estándar para configurar, programar y depurar sistemas de instrumentación que com-
prenden interfaces GPIB, VXI, PXI, serial (RS232/RS485), Ethernet/LXI y/o interfaces USB,
ya que el tipo de comunicación a emplear para vincular LABVIEW con ARDUINO, es por
comunicación serial. Una vez realizado lo anterior, se ejecuta el complemento VI Package Ma-
nager (generalmente se instala junto con el LABVIEW 2016), el cual se encarga de administrar

21
los complementos de LABVIEW, entre ellos la paqueterı́a para ARDUINO. Se coloca en el
buscador de VI Package Manager lo siguiente: LabVIEW Interface for Arduino, y se instala,
siguiendo las indicaciones dadas por el software. Una vez realizado lo anterior, en LABVIEW 16
aparecerán los diagramas y ejemplos para ARDUINO, con lo cual se asegura que la instalación
se realizó exitósamente. En la figura 20 se muestra un diagrama que explica la instalación de
la interfaz de Labview para Arduino.

Figura 20: Diagrama explicativo de la instalación de la Interfaz de Labview para Arduino


(autorı́a propia).

LED RGB
Un LED RGB es en realidad tres LED’s en una bombilla. El cual contiene diferentes LED
de color rojo, azul y verde que comparten un cátodo común que es la patita mas larga que tiene
el led. El brillo de cada color se determina por su tensión de entrada. Se pueden combinar los
tres colores en diferentes cantidades, para obtener el color que deseemos. Para poder utilizarlo

22
mejor es necesario usar las entradas PWM de Arduino. En la figura 21 se muestra un led RGB
cuyos elementos son denotados [6].

Figura 21: LED RGB.

PWM (MODULACIÓN POR ANCHO DE PULSO).


PWM es la Modulación por Ancho de Pulso (PWM = Pulse Width Modulation) es una
técnica para simular una salida analógica con una salida digital. El control digital se usa para
crear una onda cuadrada, una señal que conmuta constantemente entre encendido y apagado.
Este patrón de encendido-apagado puede simular voltajes entre 0 (siempre apagado) y 5 voltios
(siempre encendido) simplemente variando la proporción de tiempo entre encendido y apagado.
En la figura 22, se muestra una representación gráfica del PWM con distintos porcentajes del
ciclo de trabajo [7].

Figura 22: Representación gráfica de un PWM (Modulación por Ancho de Pulso).

23
0.14. DESARROLLO
0.14.1. PARTE 1: CONTROL DE UN LED RGB CON LABVIEW
Y ARDUINO
Como primer paso, es necesario cargar a la tarjeta Arduino Uno, el firmware, el cual funge
como la interfaz de la plataforma Labview con Arduino. Para mi caso especı́fico, este programa
se encuentra en la siguiente dirección: C, Program Files, National Instruments, LabVIEW 2016,
vi.lib, LabVIEW Interface for Arduino, Firmware, LIFA Base. En esta carpera se encontrará un
sketch de Arduino llamado LIFA Base, el cual se abrirá y se cargará a la tarjeta Arduino Uno,
tal como se muestra en la figura 23.

Figura 23: Firmware para la interfaz de Labview con Arduino.

A continuación, se cierra el sketch de arduino y se abre LABVIEW 2016. Se crea un nuevo


proyecto,abriéndose tanto el panel frontal, como el diagrama de bloques (ventanas sobre las
cuales se realizan todos la programación de bloques deseado). Se posiciona el curso sobre el
diagrama a bloques y se da clic derecho, se selecciona la pestaña de Arduino, luego ejemplos
y se seleccionará el ejemplo del control de un LED RGB con ARDUINO y LABVIEW. Dicho
proceso se detalla de forma gráfica en la figura 24. Al abrir el ejemplo, se mostrará tanto el
diagrama a bloques del programa (donde se tendrá que configurar la comunicación serial por
medio del puerto COM) que incluye un diagrama de conexión, como su panel frontal, donde se
muestra la interfaz de control.

24
Figura 24: Ejemplo 1: Control de un LED RGB con Arduino y LABVIEW.

El paso siguiente es configurar el puerto para la comunicación serial, por lo que es necesario
identificar el puerto COM y configurarlo en cada uno de los bloques (identificados de color
azul), creando para ello, una constante conectada a bloque denotado con el número 1 (ver
figura 25). En la figura 26, se muestra la configuración final del diagrama a bloques. En este

Figura 25: Configuración del puerto COM en cada uno de los bloques requeridos.

punto solo queda ejecutar el ejemplo y visualizar el resultado de lo anteriormente desarrollado.


En la figura 27 se muestra el funcionamiento del control del RGB con Labview y Arduino. En
los se incluye el link de un video donde se muestra y explica de forma detallada el desarrollo
de los ejemplos, tanto para el control del LED RGB como de la Pantalla LCD (este ejemplo se

25
explica en el siguiente apartado).En la figura 28 se muestra la respectiva conexión del RGB a
la tarjeta Arduino Uno.

Figura 26: Configuración final del ejemplo de control de RGB con Arduino y Labview.

Figura 27: Funcionamiento del ejemplo de control de RGB con Arduino y Labview.

El funcionamiento del LED RGB es por medio de señales de PWM (señales digitales que
emulan una señal analógica), que al ir modificándose en la interfaz de Labview, provocan una
variación en la intensidad de cada led, dando lugar mediante una combinación de colores, una
infinidad de tonalidades, tal como se mostró en la figura 27.

26
Figura 28: Diagrama de conexción del ejemplo de control de RGB con Arduino y Labview.

0.15. PARTE 2: CONTROL DE UNA PANTALLA LCD


CON ARDUINO Y LABVIEW
El siguiente ejemplo, consta del control de una pantalla LCD, que por medio de comunica-
ción serial, se almacenará mensajes en la memoria del modulo LCD JHD-162a. La configuración
se realizará a 4 bits (aunque también es posible una configuración a 8 bits).

El primer paso, es tener cargado en la tarjeta Arduino el firmware que servirá de interfaz
entre Labview y Arduino, mismo que se explicó en la parte 1 de la presente práctica. Posterior-
mente se abrirá Labview y se creará un nuevo proyecto. Sobre ventana del diagrama de bloques,
se dará clic derecho y se seleccionará la pestaña arduino, seguido de la opción ejemplo, donde
se encontrará el ejercicio requerido. Dicho proceso se muestra de forma detallada en la figura
29.

Figura 29: Selección del ejemplo para el control de la LCD con Labview y Arduino.

27
Una vez abierto el ejemplo, se procede a realizar la configuración de la comunicación serial
en cada uno de los diagramas identificados de color azul y denotados con el nombre Arduino.
Este paso es muy simular al descrito anteriormente en el ejemplo del control del LED RGB. Esto
se realiza no sin antes crear una constante para definir el puerto COM al cual está conectado
el Arduino. En la figura NANA se muestra la configuración de cada uno de los diagramas de
Arduino, y en la figura NANA, la configuración total.

Figura 30: Configuración serial de los bloques del ejemplo 2 (control de LCD).

Figura 31: Configuración final del ejemplo del control de LCD.

Puede notarse que al momento de configurar la comunicación serial (puerto COM), algunos
bloques arrojan algunos errores (error 5003 o error 5002), sin embargo una ejecutado el progra-
ma, automáticamente se corrigen.

En la figura 32 se muestra el esquema para la conexión de la pantalla LCD a la tarjeta


Arduino, permitiendo con ello, ejecutar el ejemplo configurado.

28
Figura 32: Diagrama de conexiones de la LCD a la tarjeta Arduino.

El funcionamiento del circuito se muestra en la figura 33, donde puede notarse la facilidad
de uso y envió de mensajes directamente a la LCD.

Figura 33: Funcionamiento del ejemplo 2 de Labview y arduino (control de pantalla LCD).

0.16. CONCLUSIONES
Labview es una potente herramienta, que mediante su sencilla programación basada en
bloques, permite desarrollar una infinidad de proyectos electrónicos, de control, etc. Gracias a
los avances en el desarrollo de paqueterı́as para la vinculación de Labview con diversas tarjetas,
como lo ha sido arduino, se ha facilitado en gran medida su empleo en proyectos, tanto sencillos
como complejos.
Los ejemplos aquı́ desarrollados, fueron sencillos de ejecutar, sin embargo su desarrollo no lo
es, debido a que es necesario contar con conocimientos en la manipulación de Labview, sin
embargo para ser el primer acercamiento a dicho programa, el control de un LED RGB y de
una pantalla LCD, resultaron sumamente productivos.

29
Parte IV

PRÁCTICA 3: MANEJO DE LA
TARJETA ARDUINO CON
EJEMPLOS DE MATLAB
(INSTALACIÓN DE
PAQUETERÍAS).

30
0.17. OBJETIVO
Familiarizarse con el entorno de programación de MATLAB (GUIDE y SIMULINK) y
Arduino, permitiendo con ello, aplicar el conocimiento adquirido en los proyectos integrados de
la materia de Electrónica para Control e Instrumentación.

0.18. RESUMEN
Esta práctica esta constituida por el desarrollo de dos aplicaciones de la comunicación entre
Matlab y Arduino. La primera de ellas, consta de la creación de una interfaz gráfica para el
encendido y apagado de 2 led’s, y la segunda consta de la creación de un diagrama a bloques que
permita enviar una señal de PWM a un LED, para con ello, modificar su intensidad luminosa.
Para lograr lo anterior, es necesario instalar las respectivas paqueterı́as de Matlab para Arduino,
tanto para la comunicación, como para el desarrollo de diagramas a bloques en la herramienta
SIMULINK. Por tal motivo, se describe los pasos a seguir para instalar las paqueterı́as, ası́ como
del procedimiento seguido para la correcta creación de las aplicaciones.

0.19. MATERIALES
Tablilla de pruebas (protoboard).

Arduino Mega2560.

Matlab 2015a.

3 resistencias de 330ω.

2 LED’s.

0.20. DESARROLLO
0.20.1. INSTALACIÓN DE SOPORTE DE MATLAB Y SIMULINK
PARA ARDUINO
En las figuras siguientes se muestra el proceso para la instalación del soporte de MATLAB
y SIMULINK para Arduino, proceso sencillo de realizar. En cada una de ellas, se describe
brevemente los pasos a seguir.
Paso 1: Se selecciona la opción Get Hardware Support Packages. Ver figura 34.
Paso 2: Se selecciona la opción Install from Internet.Ver figura 35.
Paso 3: Se selecciona la opción Arduino. Ver figura 36.
Paso 4: Se accede a la cuenta de Mathworks.Ver figura 37.
Paso 5: Se acepta los términos de la licencia.Ver figura 38.
Paso 6: Se selecciona Next.Ver figura 39.
Paso 7: Se realiza la instalación. Ver figura 40.
Paso 8: Se finaliza la instalación. Ver figura 41.
Paso 9: Verificación de la correcta instalación. Ver figura 42.

31
Figura 34: Instalación del soporte de Matlab y Simulink para Arduino (paso 1).

Figura 35: Instalación del soporte de Matlab y Simulink para Arduino (paso 2).

Figura 36: Instalación del soporte de Matlab y Simulink para Arduino (paso 3).

32
Figura 37: Instalación del soporte de Matlab y Simulink para Arduino (paso 4).

Figura 38: Instalación del soporte de Matlab y Simulink para Arduino (paso 5).

Figura 39: Instalación del soporte de Matlab y Simulink para Arduino (paso 6).

33
Figura 40: Instalación del soporte de Matlab y Simulink para Arduino (paso 7).

Figura 41: Instalación del soporte de Matlab y Simulink para Arduino (paso 8).

Figura 42: Instalación del soporte de Matlab y Simulink para Arduino (paso 9).

34
Parte V

PRÁCTICA 3: MANEJO DE LA
TARJETA ARDUINO CON
EJEMPLOS DE MATLAB
(DESARROLLO DE EJERCICIOS)

35
EJERCICIO 1: DESARROLLO DE INTERFAZ GRÁFICA PARA EL CONTROL
DE LED’S.
El primer paso constituye la creación de la interfaz gráfica de usuario. El proceso seguido
se muestra en la figura 43.

Figura 43: Diagrama explicativo de los pasos seguidos para la creación de la GUI.

El siguiente paso consta del desarrollo de la programación para el control del encendido y
apagado de los LED’s, por lo se abre el editor de la interfaz gráfica. Estando en esta sección,
se buscará la sección denotada como function INTERFAZ 1 OpeningFcn(hObject, eventda-
ta, handles, varargin. En esta sección de código se creará una variable global llamada a que
permitirá configurar el puerto COM para la comunicación serial con la tarjeta Arduino. Adicio-
nalmente, antes de establecer la comunicación, se eliminarán todas las variables almacenadas
en el workspace.

Ahora se buscará la sección de código que se ejecutará al presionar el push button1 o


push button2, el cual estará denotado por function pushbutton2 Callback(hObject, eventdata,
handles). En esta sección de llamará a la variable global, y de acuerdo a los códigos de MATLAB
para la manipulación de Arduino se encenderá el LED 1 y se apagará el LED 2, caso que
cambiará al presionar el siguiente pushbutton. Con esto quedará finalizada la programación, y
se podrá ejecutar la GUI para verificar su funcionamiento.
En la figura 44, se muestra el código completo de la GUI creada (incluye pequeños comentarios
explcativos), permitiendo comprender adecuadamente todo realizado.
Al ejecutar el programa, la GUI primeramente se comunicará con arduino y posterior a
ello, se mostrará en pantalla la interfaz gráfica. Desde ese momento, se tendrá el control del
encendido y apagado de los LED’s. En la figura 46, se muestra en funcionamiento del proyecto

36
Figura 44: Comandos de la GUI creada.

realizado, mientras que en la figura 45 se muestra el diagrama de conexion.

Figura 45: Diagrama de conexión de los Led’s a la tarjeta Arduino.

En los anexos del presente reporte de práctica se incluyen videos didácticos que muestran
el desarrollo del presente ejercicio, reforzando lo descrito anteriomente.

37
Figura 46: Funcionamiento de la GUI creada.

SEGUNDO EJERCICIO (CONTROL DE INTENSIDAD DE UN LED CON SI-


MULINK Y ARDUINO)
El primer paso para lograr el objetivo planteado en este ejercicio, es la instalación del soporte
de Matlab y Simulink para Arduino (proceso ya explicado). Una vez hecho lo anterior, se abre
la aplicación de simulink y se crea un nuevo proyecto, donde se debe diseñar un diagrama a
bloques como el que se muestra en la figura 47. La configuración del generador de pulsos (que

Figura 47: Diagrama a bloques del control de la intensidad de un led en Simulink.

generará la señal de PWM para variar la intensidad luminosa del led) se muestra en la figura
48.

38
Figura 48: Configuración del generador de pulsos para la creación de una señal PWM.

El siguiente paso es configurar la comunicación con la tarjeta arduino. Para ello, se va a


la pestaña tools, se selecciona Run on Target Hardware y en Options. Los pasos siguientes se
ilustran en la figura 50. En la figura 49 se muestra el diagrama de conexión del led a la tarjeta
Arduino.

Figura 49: Diagrama de conexión del led a la tarjeta Arduino.

Una vez hecho lo anterior, solo queda correr la simulación y verificar su funcionamiento.
para ello, solo se debe seleccionar el modo de simulación Externo, de tal forma que nos permita
modificar el ciclo de trabajo durante el tiempo de simulación. En la figura 50 se muestra los
resultados obtenidos. La señal de PWM se muestra en la figura 51.

39
Figura 50: Configuración Configuración de los parámetros de simulación.

Figura 51: Señal PWM (Modulación por ancho de pulso) con un ciclo de trabajo del 40 por-
ciento.

0.20.2. CONCLUSIONES
El hecho de haber desarrollado estos dos ejercicios, nos permite crear un sin numero de
aplicaciones, mismo que pueden estar orientados a la electrónica, a la robótico, al control, etc.
Además, dota a la tarjeta Arduino con capacidades para fungir como una herramienta de adqui-
sición de datos, importante al momento de desarrollar los proyectos de la materia Electrónica
para control e instrumentación.

La implementación resultó un tanto laborariosa debido a que se tuvo que experimentar para
determinar los parámetros óptimos para que las simulaciones se ejecutaran acorde a lo requerido,
sin embargo, con el conocimiento adquirido, ahora resultan ser ejemplos muy sencillos.

40
Figura 52: Funcionamiento de la segunda parte de la práctica 3 (simulink).

0.21. REFERENCIAS BIBLIOGRÁFICAS


1. The MathWorks, I. (29 de Marzo de 2017). MATLAB Y SIMULINK. Recuperado el 04 de
Abril de 2017, de Simulación y diseño basado en modelos: https://es.mathworks.com/products/simulin
2. Instruments, N. (26 de Marzo de 2017). NI-VISA. Recuperado el 04 de Abril de 2017, de
Software de Interfaz de E/S Universal: http://sine.ni.com/nips/cds/view/p/lang/es/nid/12145
Ojeda, L. T. (23 de Julio de 2016).
3. Bishop, R. H. (2014). Learning with labview. Prentice Hall.
4. ARDUINO. Recuperado el 04 de Abril de 2017, de ¿QUÉ ES ARDUINO?: http://arduino.cl/que-
es-arduino/
5. ARDUINO - Homepage, (última modificación, Julio 2008). Disponible en: http://www.
arduino.cc
6. Ángulo Usategui, J. M., y Angulo Martı́nez, I. (2003). Microcontroladores PIC: diseño
práctico de aplicaciones.
7. Valdés, F., y Pallás, R. (2007). Microcontroladores: Fundamentos y aplicaciones con PIC.

0.22. ANEXOS: LINKS DE VIDEOS EXPLICATIVOS


1. Práctica 1:https://www.youtube.com/watch?v=6g9m89vtJEE&=474s
2. Práctica 2: https://www.youtube.com/watch?v=c0 K0jclCx4.
3. Práctica 3 parte 1:https://www.youtube.com/watch?v=xerH3yZUH84
4. Práctica 3, parte 2:https://www.youtube.com/watch?v=gZ6Fb6BWFrU

41

También podría gustarte