- Vytvoření grafického uživatelského rozhraní MATLAB pro vykreslování grafu
- Kód MATLAB pro vykreslování grafu
- Potřebný materiál
- Kruhový diagram
- Nakreslete graf pomocí MATLABu
Grafy jsou vždy užitečné pro vizualizaci dat a jejich prohlížením je velmi snadné najít trendy a vzory. Existuje mnoho softwaru k vykreslení grafů na základě vstupních hodnot, dnes použijeme MATLAB k vykreslení grafu na základě údajů o teplotě ze senzoru LM35. Tento výukový program vám poskytne základní představu o tom, jak vykreslovat graf v reálném čase pomocí MATLABu. Zde se používá Arduino Uno k získávání údajů o teplotě z teplotního senzoru LM35.
Než budete pokračovat, pokud jste v MATLABu noví, můžete si prohlédnout naše předchozí výukové programy MATLAB pro lepší porozumění:
- Začínáme s MATLAB: Rychlý úvod
- Propojení Arduina s MATLAB - blikající LED
- Sériová komunikace mezi MATLAB a Arduino
- Řízení stejnosměrného motoru pomocí MATLAB a Arduino
- Ovládání krokového motoru pomocí MATLAB a Arduino
Vytvoření grafického uživatelského rozhraní MATLAB pro vykreslování grafu
Nejprve musíme vytvořit grafické uživatelské rozhraní (Graphical User Interface) pro vykreslení grafu s údaji o teplotě. Chcete-li spustit grafické uživatelské rozhraní, zadejte do příkazového okna následující příkaz
průvodce
Otevře se vyskakovací okno a poté vyberte nové prázdné grafické uživatelské rozhraní, jak je znázorněno na následujícím obrázku,
Nyní musíme pro grafické rozhraní MATLAB zvolit jedno tlačítko, dvě osy a jedno textové pole . Tlačítko se použije pro spuštění snímání teploty, dvě osy pro vykreslení grafu a textové pole pro zobrazení aktuální hodnoty teploty.
Chcete-li změnit velikost nebo změnit tvar tlačítka, tlačítka Osy nebo upravit text, stačí na něj kliknout a budete moci přetáhnout rohy tlačítka. Poklepáním na kteroukoli z těchto možností budete moci změnit barvu, řetězec a značku konkrétního tlačítka. Po přizpůsobení to bude vypadat takto
Tlačítka můžete upravit podle svého výběru. Když to nyní uložíte, vygeneruje se kód v okně editoru MATLABu. Chcete-li, aby vaše Arduino plnilo jakýkoli konkrétní úkol související s vaším projektem, musíte vždy vygenerovaný kód upravit. Níže jsme tedy upravili kód MATLABu. Další informace o příkazovém okně, okně editoru atd. Najdete v tutoriálu Začínáme s MATLABem.
Kód MATLAB pro vykreslování grafu
Kompletní kód MATLAB pro návrh teploměru pomocí LM35 a Arduino je uveden na konci tohoto projektu. Dále zde uvádíme soubor GUI (.fig) a soubor kódu (.m) ke stažení, pomocí kterého můžete přizpůsobit velikost tlačítek nebo os podle vašich požadavků. Vygenerovaný kód jsme upravili, jak je vysvětleno níže.
Zkopírujte a vložte níže uvedený kód na řádek č. 74 a ujistěte se, že Arduino mluví s MATLABem při každém spuštění m-souboru .
vymazat vše; globální a; a = arduino ();
Když se posunete dolů, uvidíte, že existují dvě funkce vytvořené pro Pushbutton a Upravit text v grafickém uživatelském rozhraní, pro Axes nebude vytvořena žádná funkce. Nyní napište kód do funkce Tlačítko (tlačítko Start) podle úkolu, který chcete provést.
Ve funkci tlačítka Start zkopírujte a vložte níže uvedený kód těsně před ukončením funkce pro spuštění snímání teploty. Pro kontinuální snímání, zobrazování a grafické vykreslování teploty používáme smyčku while . Poskytli jsme pauzu 1 sekundy po každé iteraci, takže hodnota teploty bude aktualizována každou sekundu.
x = 0; go = true; globální a; while go value = readVoltage (a, 'A1'); temp = (hodnota * 100); disp (teplota); x =; plot (handles.axes1, x); mřížka zapnuta; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); název („Graf teploty v reálném čase“); sada drawnow (handles.edit1 , 'String', num2str (temp)); pauza (1); konec
Nyní se podívejme, jak kód funguje. V řádku pod třemi řádky jsme nastavili počáteční hodnotu ' x ' na nulu, definování ' go ' jako true pro spuštění smyčky while a deklaroval ' global a' pro volání Arduino ve funkci.
x = 0; go = true; globální a;
Níže uvedený řádek kódu slouží ke snímání hodnoty napětí z analogového kolíku A1 Arduina, který je připojen k kolíku „OUT“ teplotního senzoru LM35. Výstupem bude hodnota napětí, nikoli analogová hodnota.
value = readVoltage (a, 'A1');
Zde můžeme přímo převést hodnotu napětí na hodnotu teploty (stupeň Celsia) vynásobením 10
temp = (hodnota * 100);
Nyní se pro vykreslení grafu používá funkce 'plot (handles.axes1, x)' , kde axes1 je odkaz nebo název oblasti Graph. Pokud tedy vykreslujete více než jeden graf, musíte pouze změnit název os, například pokud vykreslíte jiný graf, můžete napsat plot (handles.axes2, x) '
‚Mřížka na‘ se používá k Na zobrazení mřížky grafu , ‚xlabel‘, ‚ylabel‘ a ‚ název ‘se používá pro pojmenování osa X, osa Y a název.
plot (handles.axes1, x); mřížka zapnuta; xlabel ('Time (seconds)') ylabel ('Temperature (° C)'); název („Graf teploty v reálném čase“);
' Drawnow' se používá k aktualizaci grafického zobrazení v reálném čase.
drawnow
Pro zobrazení hodnoty teploty v editačním textovém poli se používá příkaz každou sekundu níže, set (handles.edit1, 'String', num2str (temp));
Potřebný materiál
- Notebook nainstalovaný v MATLABu (preference: verze R2016a nebo vyšší)
- Arduino UNO
- LM35 - teplotní senzor
- Připojení vodičů
- Nepájivá deska
Kruhový diagram
Nakreslete graf pomocí MATLABu
Po nastavení hardwaru podle schématu zapojení stačí kliknout na tlačítko spuštění a spustit upravený kód v souboru.m
MATLABu může trvat několik sekund, než odpoví, neklikejte na žádná tlačítka grafického uživatelského rozhraní, dokud MATLAB neukáže obsazenou zprávu v levém dolním rohu, jak je znázorněno níže,
Když je vše připraveno, klikněte na tlačítko Start a začnete získávat údaje o teplotě v grafické ploše a v poli Upravit text . Hodnota se automaticky aktualizuje každou sekundu. Tento interval jedné sekundy můžete odpovídajícím způsobem změnit v kódu MATLAB.
Výstup bude vypadat jako na obrázku níže,
Takto můžete vykreslit graf jakékoli příchozí hodnoty z Arduina pomocí MATLABu.
Zkontrolujte ukázkové video níže, abyste správně porozuměli.