- Ustvarjanje grafičnega uporabniškega vmesnika MATLAB za risanje grafa
- Koda MATLAB za risanje grafa
- Potreben material
- Shema vezja
- Graf narišite z MATLAB
Grafi so vedno koristni za vizualizacijo podatkov in z ogledom trendov in vzorcev je zelo enostavno najti. Na voljo je veliko programske opreme za risanje grafov na podlagi vhodnih vrednosti, danes bomo uporabili MATLAB za risanje grafov na podlagi temperaturnih podatkov senzorja LM35. Ta vadnica vam bo dala osnovno idejo o tem, kako narisati graf v realnem času z uporabo MATLAB. Tukaj se za pridobivanje temperaturnih podatkov s temperaturnega senzorja LM35 uporablja Arduino Uno.
Preden nadaljujete, če ste nov v MATLAB-u, si oglejte naše prejšnje vadnice MATLAB-a za boljše podcenjevanje:
- Uvod v MATLAB: kratek uvod
- Povezava Arduina z MATLAB - utripajoča LED
- Zaporedna komunikacija med MATLAB in Arduino
- Upravljanje enosmernega motorja z uporabo MATLAB in Arduino
- Nadzor koračnega motorja z uporabo MATLAB in Arduino
Ustvarjanje grafičnega uporabniškega vmesnika MATLAB za risanje grafa
Najprej moramo zgraditi GUI (grafični uporabniški vmesnik) za načrtovanje grafa s podatki o temperaturi. Če želite zagnati GUI, v ukazno okno vnesite spodnji ukaz
vodnik
Odpre se pojavno okno, nato izberite nov prazen GUI, kot je prikazano na spodnji sliki,
Zdaj moramo izbrati en gumb, dve osi in eno besedilno polje za grafični vmesnik MATLAB . Za zagon zaznavanja temperature bo uporabljen gumb, dve osi za risanje grafa in polje z besedilom za prikaz trenutne vrednosti temperature.
Če želite spremeniti velikost ali spremeniti obliko gumba, osi ali gumba za urejanje besedila, ga preprosto kliknite in lahko povlečete vogale gumba. Z dvojnim klikom na katerega koli od njih boste lahko spremenili barvo, niz in oznako tega gumba. Po prilagoditvi bo videti tako
Gumbe lahko prilagodite po svoji izbiri. Ko to shranite, se v oknu urejevalnika MATLAB ustvari koda. Če želite, da vaš Arduino izvaja katero koli posebno nalogo, povezano z vašim projektom, morate vedno urediti to ustvarjeno kodo. Torej spodaj smo uredili kodo MATLAB. Več o ukaznem oknu, oknu urejevalnika itd. Lahko preberete v Uvodu za MATLAB.
Koda MATLAB za risanje grafa
Popolna koda MATLAB za načrtovanje termometra z uporabo LM35 in Arduino je podana na koncu tega projekta. Poleg tega sem za prenos vključili datoteko GUI (.fig) in kodno datoteko (.m), s pomočjo katerih lahko prilagodite velikost gumbov ali osi glede na vaše zahteve. Ustvarili smo ustvarjeno kodo, kot je razloženo spodaj.
Kopirajte in prilepite spodnjo kodo v vrstico št. 74, da se prepričate, da Arduino vsakič, ko zaženete m-datoteko, govori z MATLAB -om .
Počisti vse; globalno a; a = arduino ();
Ko se pomaknite navzdol, boste videli, da obstajata dve funkciji ustvarjene za tipke in urejanje besedila v GUI, ne bo funkcija ustvarjena za osi. Zdaj napišite kodo v funkcijo tipke (gumb za zagon) glede na nalogo, ki jo želite izvesti.
V funkciji gumba Start kopirajte in prilepite spodnjo kodo tik pred koncem funkcije, da zaženete zaznavanje temperature. Za neprekinjeno zaznavanje, prikazovanje in grafično risanje temperature uporabljamo zanko while . Po vsaki ponovitvi smo zagotovili 1 sekundo premora, zato se bo vrednost temperature posodabljala vsako sekundo.
x = 0; go = res; globalno a; while go vrednost = readVoltage (a, 'A1'); temp = (vrednost * 100); disp (temp); x =; ploskev (ročaji.seki1, x); mreža vklopljena; xlabel ('Čas (sekunde)') ylabel ('Temperatura (° C)'); naslov ('Real-Time Temperature Graph'); komplet drawnow (handles.edit1, 'String', num2str (temp)); premor (1); konec
Zdaj pa poglejmo, kako deluje koda. V spodnji vrstici pod tremi vrsticami smo nastavili začetno vrednost ' x ' na nič, pri čemer smo za začetek zanke while opredelili ' go ' kot true in razglasili ' global a' za klic Arduina v funkciji.
x = 0; go = res; globalno a;
Spodnja vrstica kode se uporablja za zaznavanje vrednosti napetosti iz analognega zatiča A1 Arduina, ki je povezan z zatičem 'OUT' temperaturnega senzorja LM35. Izhod bo vrednost napetosti in ne analogna vrednost.
value = readVoltage (a, 'A1');
Tu lahko vrednost napetosti neposredno pretvorimo v vrednost temperature (stopinje Celzija), tako da jo pomnožimo z 10
temp = (vrednost * 100);
Zdaj se za risanje grafa uporablja funkcija 'plot (handles.axes1, x)' , kjer je ax1 referenca ali ime območja grafa. Torej, če načrtujete več grafov, morate samo spremeniti ime osi, na primer, če načrtujete drug graf, lahko napišete plot (handles.axes2, x) '
'Mreža vklopljena' se uporablja v pogledu Mreže grafa , 'xlabel', 'ylabel' in ' title ' se uporabljajo za poimenovanje osi x, osi y in naslova.
ploskev (ročaji.seki1, x); mreža vklopljena; xlabel ('Čas (sekunde)') ylabel ('Temperatura (° C)'); naslov ('Real-Time Temperature Graph');
' Drawnow' se uporablja za posodobitev grafičnega prikaza v realnem času.
drawnow
Za prikaz vrednosti temperature v polju za urejanje besedila pri vsakem drugem spodnjem ukazu uporabite
set (handles.edit1, 'String', num2str (temp));
Potreben material
- Prenosni računalnik MATLAB (Preference: R2016a ali novejše različice)
- Arduino UNO
- LM35 - temperaturni senzor
- Povezovanje žic
- Breadboard
Shema vezja
Graf narišite z MATLAB
Ko nastavite strojno opremo v skladu s shemo vezja, kliknite gumb za zagon, da zaženete urejeno kodo v datoteki.m
MATLAB lahko traja nekaj sekund, da se odzove, ne kliknite na noben gumb GUI, dokler MATLAB v spodnjem levem kotu ne prikaže sporočila o zasedenosti, kot je prikazano spodaj,
Ko je vse pripravljeno, kliknite gumb za zagon in začeli boste dobivati podatke o temperaturi na grafičnem območju in v polju Uredi besedilo . Vrednost se samodejno posodobi v vsaki sekundi. Ta interval ene sekunde lahko ustrezno spremenite v kodi MATLAB.
Izhod bo videti kot slika, prikazana spodaj,
Tako lahko z uporabo MATLAB narišete graf za katero koli dohodno vrednost iz Arduina.
Preverite spodnji predstavitveni video za pravilno razumevanje.