- Crearea interfeței grafice de utilizator MATLAB pentru reprezentarea graficului
- Cod MATLAB pentru reprezentarea graficului
- Material necesar
- Diagrama circuitului
- Trasați graficul cu MATLAB
Graficele sunt întotdeauna utile pentru a vizualiza datele și devine foarte ușor să găsești tendințe și modele uitându-te la ele. Există multe software-uri disponibile pentru graficarea graficelor pe baza valorilor de intrare, astăzi vom folosi MATLAB pentru graficul pe baza datelor de temperatură de la senzorul LM35. Acest tutorial vă va oferi o idee de bază despre cum să faceți grafic în timp real folosind MATLAB. Arduino Uno este folosit aici pentru a obține date de temperatură de la senzorul de temperatură LM35.
Înainte de a continua, dacă sunteți nou în MATLAB, puteți consulta tutorialele noastre anterioare MATLAB pentru o mai bună apreciere:
- Noțiuni introductive despre MATLAB: o introducere rapidă
- Interfață Arduino cu MATLAB - LED intermitent
- Comunicare în serie între MATLAB și Arduino
- Control motor DC folosind MATLAB și Arduino
- Controlul motorului pas cu pas folosind MATLAB și Arduino
Crearea interfeței grafice de utilizator MATLAB pentru reprezentarea graficului
Mai întâi trebuie să construim GUI (Graphical User Interface) pentru Plot un grafic cu datele de temperatură. Pentru a lansa interfața grafică, tastați comanda de mai jos în fereastra de comandă
ghid
Se va deschide o fereastră pop-up, apoi selectați o nouă interfață grafică goală așa cum se arată în imaginea de mai jos,
Acum trebuie să alegem un buton, două axe și o casetă de text pentru interfața grafică MATLAB . Apăsați butonul pentru a începe detectarea temperaturii, două axe pentru reprezentarea graficului și caseta Text pentru a arăta valoarea curentă a temperaturii.
Pentru a redimensiona sau a schimba forma butonului, axe sau butonul de editare a textului, trebuie doar să faceți clic pe acesta și veți putea trage colțurile butonului. Făcând dublu clic pe oricare dintre acestea, veți putea schimba culoarea, șirul și eticheta acelui buton. După personalizare, va arăta astfel
Puteți personaliza butoanele după alegerea dvs. Acum, când salvați acest lucru, un cod este generat în fereastra Editor a MATLAB. Pentru ca Arduino să îndeplinească orice sarcină specială legată de proiectul dvs., trebuie întotdeauna să editați acest cod generat. Deci, mai jos am editat codul MATLAB. Puteți afla mai multe despre fereastra de comandă, fereastra editorului, etc., în Tutorialul Noțiuni introductive despre MATLAB.
Cod MATLAB pentru reprezentarea graficului
Codul complet MATLAB pentru proiectarea unui termometru folosind LM35 și Arduino este dat la sfârșitul acestui proiect. În plus, includem fișierul GUI (.fig) și fișierul de cod (.m) aici pentru descărcare, folosind care puteți personaliza butoanele sau dimensiunea axelor conform cerințelor dvs. Am editat codul generat așa cum se explică mai jos.
Copiați și lipiți codul de mai jos pe linia nr. 74 pentru a vă asigura că Arduino vorbește cu MATLAB de fiecare dată când rulați fișierul m .
curata tot; global a; a = arduino ();
Când derulați în jos, veți vedea că există două funcții create pentru Pushbutton și Edit Text în GUI, nu va fi creată nicio funcție pentru Axes. Acum scrieți codul în funcția Buton (buton de pornire) în funcție de sarcina pe care doriți să o efectuați.
În funcția butonului Start , copiați și lipiți codul de mai jos chiar înainte de terminarea funcției pentru a începe detectarea temperaturii. Pentru detectarea continuă, afișarea și reprezentarea grafică a temperaturii, folosim bucla while . Am oferit o pauză de 1 secundă după fiecare iterație, astfel încât valoarea temperaturii va fi actualizată în fiecare secundă.
x = 0; go = adevărat; global a; în timp ce valoarea go = readVoltage (a, 'A1'); temp = (valoare * 100); disp (temp); x =; complot (handles.axes1, x); grilă pe; xlabel ('Timp (secunde)') ylabel ('Temperatură (° C)'); titlu („Graficul temperaturii în timp real”); set drawow (handles.edit1 , 'String', num2str (temp)); pauză (1); Sfârșit
Acum, să vedem cum funcționează codul. În linia de mai jos de trei linii am setat valoarea inițială a lui ' x ' la zero, definind „ du - te ” ca fiind adevărat pentru a începe bucla while și am declarat „ global a” pentru apelarea Arduino în funcție.
x = 0; go = adevărat; global a;
Mai jos, linia de cod este utilizată pentru a detecta valoarea tensiunii de la pinul analogic A1 al Arduino, care este conectat la pinul „OUT” al senzorului de temperatură LM35. Ieșirea va fi valoarea tensiunii, nu valoarea analogică.
value = readVoltage (a, 'A1');
Aici putem converti direct valoarea tensiunii în valoarea temperaturii (grade Celsius), înmulțind-o cu 10
temp = (valoare * 100);
Acum, pentru a trasa graficul, se folosește funcția „plot (handles.axes1, x)” , unde axes1 este referința sau numele zonei Grafic. Deci, dacă urmăriți mai mult de un grafic, atunci trebuie doar să schimbați numele axelor, de exemplu, dacă reprezentați un alt grafic, puteți scrie grafic (handles.axes2, x) '
„Grid on” se folosește pentru Vizualizarea Grid a graficului , „xlabel”, „ylabel” și „ title ” sunt utilizate pentru denumirea axei x, axa y și a titlului.
complot (handles.axes1, x); grilă pe; xlabel ('Timp (secunde)') ylabel ('Temperatură (° C)'); titlu („Graficul temperaturii în timp real”);
„ Drawnow” este folosit pentru a actualiza reprezentarea grafică în timp real.
drawow
Pentru a afișa valoarea temperaturii în caseta de text de editare la fiecare secundă de mai jos este utilizată comanda, set (handles.edit1, 'String', num2str (temp));
Material necesar
- Laptop instalat de MATLAB (preferință: versiunile R2016a sau mai sus)
- Arduino UNO
- LM35 - Senzor de temperatură
- Conectarea firelor
- Breadboard
Diagrama circuitului
Trasați graficul cu MATLAB
După setarea hardware-ului conform schemei de circuite, trebuie doar să faceți clic pe butonul Run pentru a rula codul editat în fișierul.m
MATLAB poate dura câteva secunde pentru a răspunde, nu faceți clic pe niciun buton GUI până când MATLAB nu afișează mesajul ocupat în colțul din stânga jos, așa cum se arată mai jos,
Când totul este gata, faceți clic pe butonul Start și veți începe să obțineți datele de temperatură în zona grafică și în caseta Edit Text . Valoarea se va actualiza automat în fiecare secundă. Acest interval de o secundă îl puteți modifica în codul MATLAB în consecință.
Ieșirea va arăta ca imaginea de mai jos,
Acesta este modul în care puteți trasa graficul pentru orice valoare de intrare din Arduino folosind MATLAB.
Verificați videoclipul demonstrativ de mai jos pentru a înțelege corect.