UNIVERSIDAD DE SONORA
División de Ciencias Exactas y Naturales
Departamento de Investigación en Física
Ingeniería en Tecnología Electrónica
TEORÍA DE CONTROL
Practica 5
Instalación de librería
Arduino en Simulación
Mtro. Luis Arturo García
Equipo:
Burrola Muñoz Francisco Antonio
León Pérez Axel Alfredo
Montelongo Brulhart Alexander
0
Fecha 04/04/25
Objetivo
Esta práctica tiene como objetivo Instalar los paquetes necesarios para poder instalar
un toolbox en simulink que controle las entradas y salidas de Arduino, a modo de
tarjeta adquisitora de datos. Adicionalmente se logrará medir la posición de la flecha
de un motor mediante un encoder de cuadratura, y se podrá enviar un voltaje al motor
para accionarlo, a través de la salida analógica (PWM) y un puente H.
Material
• Computadora con MATLAB, y simulador electrónico
• Arduino
• 1 Fuente de voltaje
• 2 resistencias (1k, 500k, 220)
• 1 led
• pulsador (push button)
• 1 tablilla protoboard
• Motor pololu, modelo 34:1 Metal Gearmotor 25Dx2L mm
• Puente H, modelo MD21A
Introducción
La adquisición de datos o adquisición de señales consiste en la toma de muestras del
mundo real (sistema analógico) para generar datos que puedan ser manipulados por
un ordenador u otros dispositivos electrónicos (sistema digital). Consiste en tomar un
conjunto de señales físicas, convertirlas en tensiones eléctricas y digitalizarlas de
manera que se puedan ser procesadas por una computadora o PAC. Se requiere una
etapa de acondicionamiento, que adecua la señal a niveles compatibles con el
elemento que hace la transformación a señal digital. El elemento que hace dicha
transformación es el módulo de digitalización o tarjeta de adquisición de datos (DAQ).1
Al utilizar una DAQ, la computadora puede leer o escribir datos analógicos y/o digitales
mediante simples comandos de lectura/escritura.
El microcontrolador Arduino puede ser utilizado como tarjeta adquisitora de datos,
para lo cual hay que cargarle un programa que lo haga funcionar como tal. Mediante
dicho programa, es posible leer o escribir datos con comandos simples a través del
puerto serial.
1
Por otro lado, también es posible configurar MATLAB y Simulink para interactuar con
Arduino como DAQ. Con ello, se pueden utilizar bloques de Simulink para leer o escribir
datos en los puertos de entrada o salida de Arduino. Mediante esta utilidad, se pueden
aplicar controladores a sistemas físicos.
Desarrollo Teórico
Para instalar las librerías de Arduino para MATLAB y Simulink, así como para cargar el
Sketch a Arduino para que funcione como tarjeta adquisitora de datos, necesita
seguir los siguientes pasos:
1. Tener instalada una versión de MATLAB 2013 o más reciente.
2. Descargar los archivos de instalación de la lirería ArduinoIO, yendo a la dirección:
[Link]
3. Cargar en Arduino el programa [Link], que se encuentra en la carpeta pde.
Dicho sketch trabaja como tarjeta adquisitora de datos, incluyendo entrada de
encoder de cuadratura.
4. En la barra de directorio de MATLAB, abrir la carpeta donde se instalaron los
archivos de la librería ArduinoIO.
5. Ejecutar el archivo de instalación de la librería ArduinoIO, mediante la instrucción:
install_arduino
6. Dentro de la carpeta de instalación de ArduinoIO, vaya a la subcarpeta simulink y
abra el archivo arduino_io_lib.mdl . Después de abrirlo en Simulink guárdelo y si la
versión de Simulink es más reciente, guárdelo con extensión .slx.
7. Al reiniciar MATLAB y abrir Simulink, debe aparecer una nueva librería llamada
Arduino IO Lybrary, como aparece en la Figura 38.
2
Figura 38: Librería de Arduino en Simulink
En algunos casos no aparece la librería ArduinoIO, pero sale un mensaje para fijarla
(Fix), como se ve en la Figura 39.
Figura 39: Fijar la librería de Arduino en Simulink
8. Identificar el puerto por el que se comunica la computadora con Arduino. Por
ejemplo, el puerto COM11.
9. Desde la ventana de comandos de MATLAB (una vez que ya esté instalada la librería
ArduinoIO e identificado el puerto de comunicación), ejecutar la instucción: a =
arduino('COM11')
3
10. Abrir Simulink y crear un modelo nuevo. Siempre que se vaya a trabajar con bloques
de Arduino, se debe utilizar el bloque Arduino IO Setup (Figura 40), que carga la
configuración de Arduino en
Simulink
Figura 40: Bloque de configuración
11. Si ya se ejecutó correctamente la instrucción del Paso 9, entonces la variable “ a ”
será el manejador del Arduino, y habrá que indicar dicha variable en cada bloque
de Arduino en Simulink, como se hace en la Figura 41.
Figura 41: Configuración del bloque Setup
Con lo cual el bloque indicará que se hace referencia a dicha variable, ver Figura 42. Se
debe hacer esto con cada bloque de Arduino que se utilice.
Figura 42: Bloque de configuración
4
12. La Tabla 1 muestra una breve descripción de cada bloque.
Tabla 1: Principales bloques de Arduino para Simulink.
Nota: En el tiempo de simulación ponga inf, para que la simulación siga corriendo
hasta que usted la detenga.
5
Desarrollo de la practica
Para empezar, se cargó el programa [Link] en el Arduino.
Img. 1 Compilación del código (programa).
Img. 2 Arduino conectado.
6
Después usamos Matlab, para poder indicarle en que puerto de comunicación se
encuentra el Arduino y que se pueda controlar dentro de simulink.
Img.3 El Arduino se ha conectado correctamente.
Desde la librería que agregamos gracias a el documento proporcionado en la práctica.
pusimos 2 bloques para la comunicación del Arduino.
Agregamos una constante que nos sirvió para poder controlar un led del Arduino para
saber si estaba conectado correctamente.
7
1 = Led encendido
0 = Led apagado
Insertamos este nuevo bloque Analog Read y modificamos los parámetros.
Img.4 Parámetros modificados.
8
Img. 5 Respuesta al pulsar (respuesta de Arduino).
9
Prueba de entrada y salida de datos
En la Figura 43 se muestran distintas conexiones para poder probar entradas y salidas
analógicas y digitales. La Figura 43(a) muestra la conexión para probar una entrada
analógica, consiste de un potenciómetro donde las terminales de sus extremos están
conectadas a 5V y a tierra, mientras que la terminal intermedia, que es la que varía la
resistencia y por ende el voltaje, se contecta hacia una entrada analógica de Arduino.
Los circuitos de las Figurar 43 (c) y (d), muestran conexiones para probar entrada
digital, consisten en formas de conectar una entrada de pulsador (push button) en
conexiones pull-up y pull-down, respectivamente. En la configuración pull-up,
mientras el pulsador esté abierto, la entrada digital está conectada al potencial alto, al
pulsar el botón, la entrada digital quedará referenciada a tierra. En la configuración
pull-down, mientras el pulsador esté abierto, la entrada digital está conectada a tierra,
al pulsar el botón, la entrada digital quedará referenciada al potencial alto. Finalmente,
en la Figura 43(d), se puestra una conexión para probar tanto salidas analógicas como
digitales, esta conexión consiste en conectar un led a la terminal de salida de Arduino,
con una resistencia que limite la corriente. En salidas digitales podrá notar si la salida
está encendida o apagada, y en salidas analógicas (PWM) podrá notar la variación de
intensidad en la escala de 0 a 255.
a) (b) (c) (d)
Figura 43: (a) Conexión para entrada analógica; (b) conexión pull-up para entrada digital; (c)
conexión pull-down para entrada digital; (d) conexión para salida analógica o digital
10
(a) Conexión para entrada analógica
Para esta conexión se utilizó un potenciómetro de 1k conectado entre 5V y GND, con
su terminal central conectado a una entrada analógica (AI) del Arduino.
Img.6 Conexión para entrada analógica.
Img.7 Respuesta del potenciómetro al Arduino.
11
(b) Conexión pull-up para entrada digital
En esta conexión se cambió el potenciómetro por una resistencia de 1kΩ conectada
entre 5V y la entrada digital (DI), y un pulsador (push botton) conectado entre DI y GND.
Img.8 Conexión pull-up para entrada analógica.
Img.9 Respuesta al pulsar el push botton en esta conexión, hacia el Arduino.
12
c) Conexión pull-down para entrada digital
En esta conexión tenemos una resistencia de 1kΩ conectada entre la entrada digital
(DI) y GND, y un pulsador conectado entre DI y 5V.
Img.10 Conexión pull-down para entrada analógica.
Img. 11 respuesta de las pulsaciones al push botton al Arduino.
13
(d) Conexión para salida analógica o digital
Por Último, tenemos una resistencia de 220Ω conectada entre una salida
digital/analógica (Qut) del Arduino y un LED, luego a GND.
Img. 12 respuesta del led, con una intensidad igual 1.
Img. 13 respuesta del led, con una intensidad igual 0.
Nota: Al ser un led azul y ser más brillante que uno rojo o verde, con una constante de
1, este llego a una intensidad muy alta (sin necesidad de llegar a una escala de 255 y
quemarlo)
14
Conclusión
Aunque nuestro equipo no pudo poner en práctica la segunda parte de esta práctica
(Motor de CD). Por tiempo y no tener el material por ocuparlo otro equipo. Pudimos
lograr lo siguiente:
En esta práctica se logró establecer comunicación entre MATLAB/Simulink y Arduino.
Primero se cargó un programa base desde Arduino IDE, luego se identificó el puerto de
comunicación en MATLAB para vincular el Arduino correctamente.
Se utilizó una constante para encender y apagar un LED, confirmando la conexión.
Posteriormente, se usó un potenciómetro con el bloque Analog Read, observando
variaciones en tiempo real. También se implementó un Push Button, detectando
correctamente los pulsos digitales y ajustando la configuración para una mejor
respuesta. Finalmente, se controló un LED mediante Simulink, validando el
funcionamiento del sistema físico.
La práctica permitió entender cómo controlar y leer datos del Arduino desde Simulink
de manera efectiva.
15