Está en la página 1de 24

Universidad del Valle de Mxico.

ING.COMUNICACIONES Y ELECTRNICA

MATERIA: TRANSMISIN DE DATOS

AREA: INGENIERA.
PROFESOR: GERSON VILLA GONZLEZ

Prcticas de Transmisin de Datos 1


Rev. 1 AGOSTO 2017
Fecha de Elaboracin__________
PRACTICA No. 2
Manejo de Matlab Con Arduino Fecha de revisin.:_______________

Responsable:__________________

OBJETIVO: Manejo de Matlab y Arduino

INVESTIGACIN PREVIA

A) Instalar controladores de Arduino para Matlab

B) Manejo del Arduino UNO

C) Programacion de Arduino

MATERIAL
Arduino RUNO
Leds
Protoboard
Resistencias de 330 Ohms
2 Pulsadores
1 Servo Motor
1 Buzzer o pizoelectrico

MARCO TEORICO:

Prcticas de Trsnamisin de Datos 2


MATLAB es un entorno de programacin para el desarrollo de
algoritmos, el anlisis de datos, la visualizacin y el clculo
numrico. Con MATLAB, puede solucionar problemas de clculo
tcnico ms rpidamente que con lenguajes de programacin
tradicionales tales como C, C++ o Fortran.
Puede utilizar MATLAB en una gran variedad de aplicaciones, tales
como procesamiento de seales e imgenes, comunicaciones,
diseo de control, pruebas y medidas, modelado y anlisis
financiero o biologa computacional. Para un milln de ingenieros y
cientficos de la industria y la educacin, MATLAB es el lenguaje
del clculo tcnico.
Como podemos ver en la descripcin que nos presentan desde
MathWorks, MATLAB es un entorno de programacin con infinidad
de posibilidades, que nos ayudar a resolver nuestros problemas
de clculo tcnico incluso ms rpidamente que otros lenguajes de
programacin. MATLAB es extremadamente potente.

DESARROLLO DE LA PRACTICA.
Ejemplo 1 Prender y Apagar un LED
Conecte un LED al pin digital 11 en el hardware Arduino a travs
de una resistencia de 330Ohm.

Prcticas de Trsnamisin de Datos 3


Configuraremos el LED para que parpade en un perodo de 1
segundo.
Creamos un objeto en Arduino, en la lnea de comando escribimos
lo siguiente:

Prcticas de Trsnamisin de Datos 4


Posteriormente abrimos un script nuevo y escribimos lo siguiente

Y lo ejecutamos, nuestro led debe de parpadear 10 veces.


Ejercicio 2 Iluminar y atenuar el LED
Se envian seales de pulso de ancho especificado a los pines
PWM del hardware de Arduino. Las seales PWM pueden iluminar
los LED conectados al pin. El ciclo de trabajo del pulso controla el
brillo del LED. Calculamos la cantidad que el LED ilumina y
oscurece dividiendo el ciclo de trabajo mximo y mnimo para el pin
por el nmero de iteraciones.
Abrimos un sript en Matlab y escribimos los siguiente:

Prcticas de Trsnamisin de Datos 5


Y lo ejecutamos

Ejercicio 3 Iluminar y atenuar el LED variante


Tambin se puede iluminar y atenuar las luces cambiando el voltaje
de la seal PWM. Calculando la cantidad que el LED ilumina y

Prcticas de Trsnamisin de Datos 6


oscurece dividiendo la tensin mxima y mnima para el pin por el
nmero de iteraciones.
Abrimos un script en Matlab y escribimos lo siguiente

Y lo ejecutamos

Ejercicio 4 Controlando un LED a travs de un Potenciometro

Prcticas de Trsnamisin de Datos 7


El potencimetro cambia el valor de tensin que lee del pin
analgico 0 que se puede utilizar para ajustar el nivel de voltaje en
el pin PWM para controlar el brillo del LED conectado.
Conecte un potencimetro al hardware Arduino con la pata
intermedia conectada al pin analgico 0 y los otros dos conectados
a 5V y GND.

Abrimos un srpt y escribimos el siguiente cdigo

Prcticas de Trsnamisin de Datos 8


Y lo ejecutamos
Mientras el cdigo est funcionando, puede girar la perilla del
potencimetro para ver cmo afecta el brillo del LED.

Prcticas de Trsnamisin de Datos 9


Ejercicio 5 Control de un altavoz piezoelctrico mediante un
pulsador
Esta parte del ejemplo muestra cmo reproducir un tono controlado
por un pulsador conectado a un pin digital en el hardware de
Arduino. Tambin se puede configurar un pin digital para el modo
pullup y utilizar la resistencia pullup incorporada.
1. Conecte un altavoz piezo a la pin digital 11.
2. Conecte un pulsador al pin digital 12.

Armar primero el siguiente circuito

Prcticas de Trsnamisin de Datos 10


Para reproducir un tono en el altavoz, puede utilizar el mtodo
playTone para especificar la frecuencia y la duracin del sonido. En
segundo lugar, el estado de un pulsador se puede detectar leyendo

Prcticas de Trsnamisin de Datos 11


el valor del pin digital conectado. Para que el botn pulsador
funcione, hay que conectar una resistencia pullup al pin digital
correspondiente de la tarjeta Arduino. Puede utilizar la resistencia
de pullup integrada configurando el modo de pin digital para
activarlo. Si se ha pulsado el botn, significa que el valor de lectura
es 0, se emite un pitido en el altavoz. Ejecute el siguiente comando
en el indicador MATLAB para reproducir un sonido en el altavoz
cuando se pulsa el botn pulsador.
Abrimos un script en Matlab y escribimos lo siguiente

Prcticas de Trsnamisin de Datos 12


Y lo ejecutamos
Limpiar
Una vez que la conexin ya no es necesaria, borre el objeto
arduino.
En la terminal de comandos escribimos lo siguiente

Ejercicio 6 Control de Servo Motores


Crear objeto servo y calibra el motor
Creemos un objeto arduino e incluimos la biblioteca Servo.

Prcticas de Trsnamisin de Datos 13


Creamos el objeto servo como se muestra a continuacin en la
lnea de comandos de Matlab

Prcticas de Trsnamisin de Datos 14


Comprobamos los valores del rango de ancho de pulso de la hoja
de datos del servo motor para calibrar el motor para que gire en el
rango esperado. Este ejemplo usa 700 * 10 ^ 6 y 2300 * 10 ^ -6
para que el motor se mueva de 0 a 180 grados.
Escribimos lo siguiente en la lnea de comandos de Matlab y lo
ejecutamos

Escribir y leemos la posiciones del servo


Cambie la posicin del eje del servo motor de 0 (mnimo) a 1
(mximo) con 0.2, por ejemplo, 36 grados, incremento. Muestra la
posicin actual cada vez que cambia la posicin.
Abrimos un script y escribimos lo siguiente:

Prcticas de Trsnamisin de Datos 15


Limpiamos
Una vez que la conexin ya no es necesaria, borramos el objeto
asociado.
Ejercicio 7 MATLAB + Arduino: Serial Port Communication
En este ejercicio aprenderemos a comunicar nuestra placa Arduino
con Matlab mediante comunicacin Puerto Serial. Qu es
MATLAB?
Bueno, y este ejercicio qu te puede aportar?

Prcticas de Trsnamisin de Datos 16


Muy simple y, en cuanto tengamos un poco de prctica, lo
tendremos resuelto. Para comenzar, lo que queremos hacer es,
leer con Arduino los datos de un potencimetro que tenemos
conectado al pin analgico nmero 0. Obtendremos valores entre 0
y 1023, los cuales enviaremos a travs del Puerto Serial hacia
MATLAB, que los recoger y los procesar pasndolos a Voltios.
Podemos decir, que vamos a realizar un muestreo de valores, los
cuales vamos a representar en una grfica.

Prcticas de Trsnamisin de Datos 17


Esta grfica muestra los valores que Arduino ha obtenido del
potencimetro, el cual he ido moviendo para ver la variacin en
cada muestra. Arduino enva a Matlab valores entre 0 y 1023 pero,
como ya he mencionado antes, desde Matlab he hecho el cambio a
Volts, aunque tambin se podra haber hecho desde Arduino.
Lo nico que hay que programar es una lectura de valores
analgicos con el pin que queramos, en mi caso del A0, y tras
haber realizado la lectura, mandar los datos a travs del Puerto
Serial. Esto lo haremos cada 100 ms, pero cada uno puede
modificar ese tiempo a su gusto, incluso ponerlo a 0.
Para comenzar, he creado una funcin, a la que llamaremos desde
la Ventana de Comandos (Command Window), para que se ejecute
el script. A esta funcin le tenemos que pasar un parmetro, que
ser el nmero de muestras que queramos tomar.

Si, por ejemplo, queremos tomar 500 muestras, escribiremos:

A continuacin, en el script, declararemos un vector, en el cual se


almacenarn los datos obtenidos de la comunicacin Arduino-
Matlab. Adems, inicializaremos la comunicacin mediante las
siguientes declaraciones. En tu cdigo, simplemente debers fijarte
si utilizas el COM3, COM4, o cualquier otro. Es lo nico que
tendrs que cambiar probablemente, aunque no tiene por qu.

Prcticas de Trsnamisin de Datos 18


Tras crear la ventana para la grfica, tendremos que configurar los
datos que vamos a mostrar en ella y, crear un bucle, While en mi
caso, para que realice el muestreo y lo represente en la grfica.

Con ylim y xlim, estoy dando el rango de valores que se mostrarn


en la grfica. Como sabemos que no vamos a bajar de 0 Voltios, y
tampoco vamos a subir de 5, pues representaremos entre 0 y 5.1.
Con el eje de las X sucede lo mismo. Represento 20 muestras

Prcticas de Trsnamisin de Datos 19


anteriores y la actual, dejando un pequeo hueco de 5 para las que
vienen a continuacin. El eje X ser dinmico e ir en funcin del
nmero muestras que quieras tomar.

Armaremos el siguiente circuito

En el Arduino lo compilamos y lo subimos


El programa es el siguiente:

Prcticas de Trsnamisin de Datos 20


En Matlab ejecutamos lo siguiente:

Prcticas de Trsnamisin de Datos 21


Y nos mostrara una ventana como la siguiente

Prcticas de Trsnamisin de Datos 22


ANLISIS Y PRESENTACIN DE RESULTADOS

NOTAS PARA LOS ALUMNOS.


1. El reporte final de la prctica deber ser entregado a mquina
de escribir o en procesador de textos (PC) sin excepcin.
2. Las prcticas impresas slo sirven de gua y referencia.
3. No se aceptan copias fotostticas del reporte final.
4. La entrega del reporte de prctica es por alumno.

CONCLUSIONES DE APRENDIZAJE.

Prcticas de Trsnamisin de Datos 23


RECURSOS BIBLIOGRFICOS.
http://arduino.cl/que-es-arduino/
http://arduino.cl/descargas/
http://arduino.cl/programacion/

Prcticas de Trsnamisin de Datos 24