- Vytvorenie grafického užívateľského rozhrania MATLAB pre vykreslenie grafu
- Kód MATLAB na vykreslenie grafu
- Potrebný materiál
- Schéma zapojenia
- Vykreslite graf pomocou programu MATLAB
Grafy sú vždy užitočné na vizualizáciu údajov a je ľahké nájsť trendy a vzory pri ich prezeraní. Existuje veľa softvéru na vykreslenie grafov na základe vstupných hodnôt, dnes použijeme program MATLAB na vykreslenie grafu na základe údajov o teplote zo snímača LM35. Tento tutoriál vám poskytne základnú predstavu o tom, ako vykresliť graf v reálnom čase pomocou programu MATLAB. Tu sa používa Arduino Uno na získanie údajov o teplote z teplotného snímača LM35.
Predtým, ako budete pokračovať, ak ste v MATLABe nováčikom, môžete si prečítať naše predchádzajúce návody pre MATLAB, aby ste lepšie porozumeli:
- Začíname s MATLABom: Stručný úvod
- Prepojenie Arduina s MATLAB - blikajúca LED
- Sériová komunikácia medzi MATLAB a Arduino
- Ovládanie jednosmerného motora pomocou MATLAB a Arduino
- Ovládanie krokového motora pomocou MATLAB a Arduino
Vytvorenie grafického užívateľského rozhrania MATLAB pre vykreslenie grafu
Najskôr musíme vytvoriť grafické užívateľské rozhranie (Graphical User Interface) pre vykreslenie grafu s údajmi o teplote. Ak chcete spustiť grafické používateľské rozhranie, zadajte do príkazového okna nasledujúci príkaz
sprievodca
Otvorí sa vyskakovacie okno a potom vyberte nové prázdne grafické používateľské rozhranie, ako je to znázornené na obrázku nižšie,
Teraz musíme pre grafické rozhranie MATLAB zvoliť jedno tlačidlo, dve osi a jedno textové pole . Tlačidlo sa použije na spustenie snímania teploty, dve osi na vykreslenie grafu a textové pole na zobrazenie aktuálnej hodnoty teploty.
Ak chcete zmeniť veľkosť alebo zmeniť tvar tlačidla, osi alebo tlačidla Upraviť text, stačí naň kliknúť a budete môcť ťahať za rohy tlačidla. Dvojitým kliknutím na ľubovoľné z nich budete môcť zmeniť farbu, reťazec a značku konkrétneho tlačidla. Po prispôsobení to bude vyzerať takto
Tlačidlá môžete prispôsobiť podľa vlastného výberu. Keď to uložíte, vygeneruje sa kód v okne editora MATLABu. Aby vaše Arduino mohlo vykonávať akékoľvek konkrétne úlohy spojené s vašim projektom, musíte vždy upraviť tento vygenerovaný kód. Takže nižšie sme upravili kód MATLABu. Viac informácií o príkazovom okne, okne editora atď. Sa dozviete v príručke Začíname s programom MATLAB.
Kód MATLAB na vykreslenie grafu
Kompletný kód MATLAB pre návrh teplomeru pomocou LM35 a Arduino je uvedený na konci tohto projektu. Ďalej tu zahrňujeme súbor GUI (.fig) a súbor kódu (.m) na stiahnutie, pomocou ktorého môžete prispôsobiť tlačidlá alebo veľkosť osí podľa vašich požiadaviek. Vygenerovaný kód sme upravili, ako je vysvetlené nižšie.
Skopírujte a vložte nasledujúci kód do riadku č. 74, aby ste sa uistili, že Arduino hovorí s MATLABom pri každom spustení m-súboru .
zmazať všetko; globálne a; a = arduino ();
Pri posúvaní dole, uvidíte, že tam sú dve funkcie vytvorené pre Pushbutton a úprava textu v GUI, bude bez funkcia vytvorí pre osi. Teraz napíšte kód do funkcie Tlačidlo (tlačidlo Štart) podľa úlohy, ktorú chcete vykonať.
Vo funkcii tlačidla Štart skopírujte a vložte nasledujúci kód tesne pred ukončením funkcie, aby sa spustilo snímanie teploty. Na kontinuálne snímanie, zobrazovanie a grafické vykresľovanie teploty používame while . Poskytli sme prestávku 1 sekundu po každej iterácii, takže hodnota teploty sa bude aktualizovať každú sekundu.
x = 0; ísť = pravda; globálne a; while go value = readVoltage (a, 'A1'); teplota = (hodnota * 100); disp (teplota); x =; zápletka (handles.axes1, x); mriežka zapnutá; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); nadpis („Graf teploty v reálnom čase“); sada drawnow (handles.edit1, 'String', num2str (temp)); pauza (1); koniec
Teraz sa pozrime, ako kód funguje. V nižšie tri riadky riadok sme si stanovili počiatočnú hodnotu, x 'na nulu, definovanie, go ', ako je pravda spustiť while slučku a vyhlásený za, globálne a ' pre volanie Arduino vo funkcii.
x = 0; ísť = pravda; globálne a;
Dolný riadok kódu sa používa na snímanie hodnoty napätia z analógového kolíka A1 Arduina, ktorý je pripojený k kolíku „OUT“ teplotného snímača LM35. Výstupom bude hodnota napätia, nie analógová hodnota.
hodnota = readVoltage (a, 'A1');
Tu môžeme priamo previesť hodnotu napätia na hodnotu teploty (stupeň Celzia) vynásobením číslom 10
teplota = (hodnota * 100);
Teraz sa na vykreslenie grafu používa funkcia 'plot (handles.axes1, x)' , kde os1 je odkaz alebo názov oblasti grafu. Ak teda vykresľujete viac ako jeden graf, musíte jednoducho zmeniť názov osí, napríklad pri vykreslení iného grafu môžete napísať plot (handles.axes2, x) '
'Grid on' is used to V zobrazení mriežky grafu sa na pomenovanie osi x, osi y a nadpisu používajú symboly „xlabel“, „ylabel“ a „ title “.
zápletka (handles.axes1, x); mriežka zapnutá; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); nadpis („Graf teploty v reálnom čase“);
' Drawnow' sa používa na aktualizáciu grafického znázornenia v reálnom čase.
drawnow
Na zobrazenie hodnoty teploty v editovacom textovom poli sa používa príkaz každú sekundu pod, set (handles.edit1, 'String', num2str (temp));
Potrebný materiál
- Notebook nainštalovaný v systéme MATLAB (preferencia: R2016a alebo vyššia verzia)
- Arduino UNO
- LM35 - snímač teploty
- Pripojenie drôtov
- Nepál
Schéma zapojenia
Vykreslite graf pomocou programu MATLAB
Po nastavení hardvéru podľa schémy zapojenia stačí kliknúť na tlačidlo spustenia a spustiť upravený kód v súbore.m
MATLABu môže trvať niekoľko sekúnd, kým odpovie, neklikajte na žiadne tlačidlá grafického používateľského rozhrania, kým MATLAB neukáže zaneprázdnenú správu v ľavom dolnom rohu, ako je to zobrazené nižšie,
Keď je všetko pripravené, kliknite na tlačidlo Štart a začnete dostávať údaje o teplote v Grafickej oblasti a v poli Upraviť text . Hodnota sa automaticky aktualizuje každú sekundu. Tento interval jednej sekundy môžete podľa toho zmeniť v kóde MATLAB.
Výstup bude vyzerať ako na obrázku nižšie,
Takto môžete vykresliť graf akejkoľvek prichádzajúcej hodnoty z Arduina pomocou MATLABu.
Skontrolujte správne demonštračné video uvedené nižšie.