- Creació d’interfície gràfica d’usuari MATLAB per a traçar gràfics
- Codi MATLAB per traçar el gràfic
- Material requerit
- Esquema de connexions
- Representa el gràfic amb MATLAB
Els gràfics sempre són útils per visualitzar les dades i es fa molt fàcil trobar tendències i patrons mirant-los. Hi ha molts programes disponibles per representar gràfics basats en els valors d’entrada, avui farem servir MATLAB per representar gràfics basats en les dades de temperatura del sensor LM35. Aquest tutorial us donarà una idea bàsica sobre com traçar gràfics en temps real mitjançant MATLAB. Arduino Uno s’utilitza aquí per obtenir dades de temperatura del sensor de temperatura LM35.
Abans de continuar, si sou nou a MATLAB, podeu consultar els nostres tutorials anteriors de MATLAB per comprovar-ho millor:
- Introducció a MATLAB: una introducció ràpida
- Interfície d'Arduino amb MATLAB - LED parpellejant
- Comunicació en sèrie entre MATLAB i Arduino
- Control del motor de corrent continu mitjançant MATLAB i Arduino
- Control del pas a pas mitjançant MATLAB i Arduino
Creació d’interfície gràfica d’usuari MATLAB per a traçar gràfics
Primer hem de crear GUI (Interfície gràfica d'usuari) per a traçar un gràfic amb les dades de temperatura. Per iniciar la GUI, escriviu l'ordre següent a la finestra d'ordres
guia
S'obrirà una finestra emergent i, a continuació, seleccioneu una nova interfície gràfica en blanc com es mostra a la imatge següent.

Ara hem de triar un polsador, dos eixos i un quadre de text per a la interfície gràfica MATLAB . S'utilitzarà el botó polsador per iniciar la detecció de temperatura, dos eixos per representar el gràfic i el quadre de text per mostrar el valor actual de la temperatura.

Per canviar la mida o canviar la forma del botó, els eixos o el botó d'edició de text, només cal que feu clic a sobre i podreu arrossegar les cantonades del botó. En fer doble clic sobre qualsevol d’aquests, podreu canviar el color, la cadena i l’etiqueta d’aquest botó en particular. Després de la personalització, quedarà així


Podeu personalitzar els botons segons la vostra elecció. Ara, quan el deseu, es genera un codi a la finestra Editor de MATLAB. Per fer que el vostre Arduino realitzi qualsevol tasca particular relacionada amb el vostre projecte, sempre heu d’editar aquest codi generat. Per tant, a continuació hem editat el codi MATLAB. Podeu obtenir més informació sobre la finestra d'ordres, la finestra de l'editor, etc. a Introducció al tutorial MATLAB.
Codi MATLAB per traçar el gràfic
Al final d’aquest projecte es dóna un codi complet MATLAB per al disseny d’un termòmetre amb LM35 i Arduino. A més, incloem el fitxer GUI (.fig) i el fitxer de codi (.m) aquí per descarregar, amb el qual podeu personalitzar els botons o la mida dels eixos segons el vostre requisit. Hem editat el codi generat tal com s’explica a continuació.
Copieu i enganxeu el codi següent a la línia núm. 74 per assegurar-vos que l'Arduino parla amb MATLAB cada vegada que executeu el fitxer m .
netejar-ho tot; global a; a = arduino ();

Quan desplaceu-vos cap avall, veureu que hi ha dues funcions creades per a Pulsador i Edita text a la GUI; no es crearà cap funció per als eixos. Ara escriviu el codi a la funció Pulsador (botó d'inici) segons la tasca que vulgueu realitzar.
A la funció del botó Inici , copieu i enganxeu el codi següent just abans de finalitzar la funció per iniciar la detecció de temperatura. Per a la detecció contínua, visualització i traçat gràfic de la temperatura, estem utilitzant bucle while . Hem proporcionat una pausa d'1 segon després de cada iteració, de manera que el valor de la temperatura s'actualitzarà cada segon.
x = 0; anar = cert; global a; mentre que go value = readVoltage (a, 'A1'); temp = (valor * 100); disp (temp); x =; parcel·la (handles.axes1, x); quadrícula activada; xlabel ('Temps (segons)') ylabel ('Temperatura (° C)'); title ('Gràfic de temperatura en temps real'); conjunt de dibuixos (handles.edit1, 'String', num2str (temp)); pausa (1); final

Ara, vegem com funciona el codi. Per sota de tres línies s'alineen hem establert el valor inicial de ' x ' a zero, la definició de ' anar ' tan cert per iniciar el temps de bucle i es va declarar ' 1 mundial' per cridar l'Arduino en la funció.
x = 0; anar = cert; global a;
Sota la línia de codi s’utilitza per detectar el valor de la tensió del pin analògic A1 de l’Arduino que està connectat al pin “OUT” del sensor de temperatura LM35. La sortida serà el valor de tensió i no el valor analògic.
valor = readVoltage (a, 'A1');
Aquí podem convertir directament el valor de la tensió en el valor de la temperatura (grau Celsius), multiplicant-lo per 10
temp = (valor * 100);
Ara, per traçar el gràfic s’utilitza la funció “traçar (handles.axes1, x)” , on els eixos 1 són la referència o el nom de l’àrea del gràfic. Per tant, si traqueu més d'un gràfic, només haureu de canviar el nom dels eixos, com si traçeu un altre gràfic, podeu escriure un traç (handles.axes2, x) '
"Reixeta activada" s'utilitza per A la visualització Reixa del gràfic , s'utilitzen "xlabel", "ylabel" i " title " per anomenar l'eix x, l'eix y i el títol.
parcel·la (handles.axes1, x); quadrícula activada; xlabel ('Temps (segons)') ylabel ('Temperatura (° C)'); title ('Gràfic de temperatura en temps real');
" Drawnow" s'utilitza per actualitzar la representació gràfica en temps real.
dibuix
Per mostrar el valor de la temperatura al quadre de text d'edició a cada segon que s'utilitza l'ordre següent, set (handles.edit1, 'String', num2str (temp));
Material requerit
- Portàtil instal·lat per MATLAB (preferència: R2016a o versions superiors)
- Arduino UNO
- LM35 - Sensor de temperatura
- Connexió de cables
- Taula de pa
Esquema de connexions

Representa el gràfic amb MATLAB
Després de configurar el maquinari segons el diagrama del circuit, només cal que feu clic al botó d'execució per executar el codi editat al fitxer.m

MATLAB pot trigar uns quants segons a respondre; no feu clic a cap botó GUI fins que MATLAB no mostri el missatge ocupat a la cantonada inferior esquerra, tal com es mostra a continuació.

Quan tot estigui a punt, feu clic al botó d'inici i començareu a obtenir les dades de temperatura a l'àrea gràfica i al quadre Edita el text . El valor s'actualitzarà automàticament cada segon. Aquest interval d'un segon el podeu canviar en el codi MATLAB en conseqüència.
La sortida tindrà l’aspecte de la imatge que es mostra a continuació,

Així és com podeu traçar el gràfic per a qualsevol valor entrant des de l'Arduino mitjançant MATLAB.
Consulteu el vídeo de demostració següent per comprendre-ho bé.
