- Creación de la interfaz gráfica de usuario de MATLAB para trazar gráficos
- Código MATLAB para trazar el gráfico
- Material requerido
- Diagrama de circuito
- Trazar el gráfico con MATLAB
Los gráficos siempre son útiles para visualizar los datos y resulta muy fácil encontrar tendencias y patrones al mirarlos. Hay muchos software disponibles para trazar gráficos basados en los valores de entrada, hoy usaremos MATLAB para trazar gráficos basados en los datos de temperatura del sensor LM35. Este tutorial le dará una idea básica sobre cómo trazar gráficos en tiempo real usando MATLAB. Arduino Uno se utiliza aquí para obtener datos de temperatura del sensor de temperatura LM35.
Antes de continuar, si es nuevo en MATLAB, puede consultar nuestros tutoriales anteriores de MATLAB para comprender mejor:
- Introducción a MATLAB: una introducción rápida
- Interfaz de Arduino con MATLAB - LED parpadeante
- Comunicación en serie entre MATLAB y Arduino
- Control de motores de CC mediante MATLAB y Arduino
- Control de motor paso a paso usando MATLAB y Arduino
Creación de la interfaz gráfica de usuario de MATLAB para trazar gráficos
Primero tenemos que construir GUI (interfaz gráfica de usuario) para trazar un gráfico con los datos de temperatura. Para iniciar la GUI, escriba el siguiente comando en la ventana de comandos
guía
Se abrirá una ventana emergente, luego seleccione una nueva GUI en blanco como se muestra en la imagen de abajo,
Ahora tenemos que elegir un botón, dos ejes y un cuadro de texto para la interfaz gráfica de MATLAB . El botón pulsador se utilizará para iniciar la detección de temperatura, dos ejes para trazar el gráfico y el cuadro de texto para mostrar el valor actual de temperatura.
Para cambiar el tamaño o cambiar la forma del botón, Ejes o botón de edición de texto, simplemente haga clic en él y podrá arrastrar las esquinas del botón. Al hacer doble clic en cualquiera de estos, podrá cambiar el color, la cadena y la etiqueta de ese botón en particular. Después de la personalización se verá así
Puede personalizar los botones según su elección. Ahora, cuando guarda esto, se genera un código en la ventana Editor de MATLAB. Para que su Arduino realice cualquier tarea en particular relacionada con su proyecto, siempre debe editar este código generado. Entonces, a continuación, hemos editado el código MATLAB. Puede obtener más información sobre la ventana de comandos, la ventana del editor, etc.en el tutorial Introducción a MATLAB.
Código MATLAB para trazar el gráfico
El código completo de MATLAB para diseñar un termómetro utilizando LM35 y Arduino se proporciona al final de este proyecto. Además, incluimos el archivo GUI (.fig) y el archivo de código (.m) aquí para descargar, con el cual puede personalizar los botones o el tamaño de los ejes según sus necesidades. Hemos editado el código generado como se explica a continuación.
Copie y pegue el siguiente código en la línea no. 74 para asegurarse de que Arduino esté hablando con MATLAB cada vez que ejecute el archivo m .
limpiar todo; global a; a = arduino ();
Cuando se desplaza hacia abajo, verá que hay dos funciones creadas para Pushbutton y Edit Text en la GUI, no se creará ninguna función para Axes. Ahora escriba el código en la función Pushbutton (botón de inicio) de acuerdo con la tarea que desea realizar.
En la función del botón Iniciar , copie y pegue el siguiente código justo antes de que finalice la función para iniciar la detección de temperatura. Para la detección continua, la visualización y la representación gráfica de la temperatura, utilizamos el bucle while . Hemos proporcionado una pausa de 1 segundo después de cada iteración para que el valor de temperatura se actualice cada segundo.
x = 0; ir = verdadero; global a; while go value = readVoltage (a, 'A1'); temp = (valor * 100); disp (temp); x =; plot (handle.axes1, x); cuadrícula activa; xlabel ('Tiempo (segundos)') ylabel ('Temperatura (° C)'); título ('Gráfico de temperatura en tiempo real'); drawnow set (handle.edit1, 'String', num2str (temp)); pausa (1); fin
Ahora, veamos cómo funciona el código. Por debajo de tres líneas se alinean hemos establecido el valor inicial de ' x ' a cero, la definición de ' ir ' tan cierto para iniciar el tiempo de bucle y se declaró ' un mundial' para llamar la Arduino en la función.
x = 0; ir = verdadero; global a;
La siguiente línea de código se usa para detectar el valor de voltaje del pin analógico A1 del Arduino que está conectado al pin 'OUT' del sensor de temperatura LM35. La salida será el valor de voltaje, no el valor analógico.
valor = readVoltage (a, 'A1');
Aquí podemos convertir directamente el valor de voltaje en el valor de temperatura (grados Celsius), multiplicándolo por 10
temp = (valor * 100);
Ahora, para trazar el gráfico se utiliza la función 'plot (handle.axes1, x)' , donde axes1 es la referencia o el nombre del área del gráfico. Entonces, si está trazando más de un gráfico, solo tiene que cambiar el nombre de los ejes, como si trazara otro gráfico, puede escribir plot (handle.axes2, x) '
'Grid on' se usa para En la vista de cuadrícula del gráfico , 'xlabel', 'ylabel' y ' title ' se usan para nombrar el eje x, el eje y y el título.
plot (handle.axes1, x); cuadrícula activa; xlabel ('Tiempo (segundos)') ylabel ('Temperatura (° C)'); título ('Gráfico de temperatura en tiempo real');
' Drawnow' se utiliza para actualizar la representación gráfica en tiempo real.
sacar ahora
Para mostrar el valor de la temperatura en el cuadro de texto de edición cada segundo, se utiliza el siguiente comando, set (handle.edit1, 'String', num2str (temp));
Material requerido
- Laptop instalada en MATLAB (preferencia: R2016a o versiones superiores)
- Arduino UNO
- LM35 - Sensor de temperatura
- Conexión de cables
- Tablero de circuitos
Diagrama de circuito
Trazar el gráfico con MATLAB
Después de configurar el hardware de acuerdo con el diagrama de circuito, simplemente haga clic en el botón Ejecutar para ejecutar el código editado en el archivo.m
MATLAB puede tardar unos segundos en responder, no haga clic en ningún botón de la GUI hasta que MATLAB muestre un mensaje de ocupado en la esquina inferior izquierda como se muestra a continuación.
Cuando todo esté listo, haga clic en el botón de inicio y comenzará a obtener los datos de temperatura en el área gráfica y en el cuadro Editar texto . El valor se actualizará automáticamente cada segundo. Este intervalo de un segundo se puede cambiar en el código MATLAB en consecuencia.
La salida se verá como la imagen que se muestra a continuación,
Así es como puede trazar el gráfico para cualquier valor entrante de Arduino usando MATLAB.
Consulte el video de demostración a continuación para obtener una comprensión adecuada.