- Vytvoření grafického uživatelského rozhraní MATLAB pro ovládání stejnosměrného motoru
- Kód MATLAB pro ovládání stejnosměrného motoru pomocí Arduina
- Potřebný materiál
- Kruhový diagram
- Ovládání stejnosměrného motoru pomocí MATLABu
V tomto tutoriálu vám ukážeme, jak ovládat stejnosměrný motor pomocí MATLB a Arduino. Pokud jste s MATLABem noví, doporučujeme začít s jednoduchým programem blikání LED pomocí MATLABu.
Vytvoření grafického uživatelského rozhraní MATLAB pro ovládání stejnosměrného motoru
Po dokončení instalace pomocí Arduina pro MATLAB musíme pro ovládání stejnosměrného motoru vytvořit grafické uživatelské rozhraní (GUI). 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í vyberte tři tlačítka pro otáčení ve směru hodinových ručiček, proti směru hodinových ručiček a STOP, jak je znázorněno níže,
Chcete-li změnit velikost nebo změnit tvar tlačítka, jednoduše na něj klikněte a budete moci přetáhnout rohy tlačítka. Poklepáním na tlačítko můžete změnit barvu, řetězec a značku konkrétního tlačítka. Upravili jsme tři tlačítka, jak je znázorněno na následujícím obrázku.
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 kódovat své Arduino pro provádění jakýchkoli úkolů souvisejících s vaším projektem, musíte vždy upravit tento vygenerovaný kód. Níže jsme tedy upravili kód MATLABu.
Kód MATLAB pro ovládání stejnosměrného motoru pomocí Arduina
Kompletní kód MATLAB, po jeho úpravě pro řízení stejnosměrného motoru, je uveden na konci tohoto projektu. Dále zde uvádíme ke stažení soubor GUI (.fig) a soubor kódu (.m), pomocí kterého můžete přizpůsobit tlačítka podle svého požadavku. Níže uvádíme několik vylepšení, která jsme provedli pro otáčení stejnosměrného motoru ve směru hodinových ručiček, proti směru hodinových ručiček a zastavení pomocí tří tlačítek.
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 pro každé tlačítko v grafickém uživatelském rozhraní existují tři funkce. Nyní napište kód do každé funkce podle úkolu, který chcete provést po kliknutí.
Ve funkci tlačítka ve směru hodinových ručiček zkopírujte a vložte níže uvedený kód těsně před koncové závorky funkce a otočte motor ve směru hodinových ručiček. Zde dáváme HIGH na pinu 6 a LOW na pinu 5, aby se motor otáčel ve směru hodinových ručiček.
globální a; writeDigitalPin (a, 'D5', 0); writeDigitalPin (a, 'D6', 1); pauza (0,5);
Nyní ve funkci tlačítka proti směru hodinových ručiček vložte níže uvedený kód na konec funkce, aby se motor otočil proti směru hodinových ručiček. Zde dáváme HIGH na pinu 5 a LOW na pinu 6, aby se motor otáčel proti směru hodinových ručiček.
globální a; writeDigitalPin (a, 'D5', 1); writeDigitalPin (a, 'D6', 0); pauza (0,5);
Nakonec ve funkci tlačítka STOP vložte níže uvedený kód na konec, aby se zastavila rotace motoru. Zde dáváme LOW na obou pinech 5 a 6 k zastavení motoru.
globální a; writeDigitalPin (a, 'D5', 0); writeDigitalPin (a, 'D6', 0); pauza (0,5);
Potřebný materiál
- Notebook nainstalovaný v MATLABu (preference: verze R2016a nebo vyšší)
- Arduino UNO
- Stejnosměrný motor
- L293D - ovladač motoru
Kruhový diagram
Ovládání stejnosměrného motoru 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čítko grafického uživatelského rozhraní, dokud MATLAB nezobrazí indikaci BUSY, kterou můžete vidět v levém dolním rohu obrazovky, jak je znázorněno níže,
Když je vše připraveno, kliknutím na tlačítko ve směru nebo proti směru hodinových ručiček motor otočíte. Když stisknete tlačítko ve směru hodinových ručiček, bude proud protékat kolíky 6 až 5 a motor se bude otáčet ve směru hodinových ručiček, zatímco proti směru hodinových ručiček bude proud protékat mezi kolíky 5 a 6 a motor se bude otáčet ve směru hodinových ručiček, bude se otáčet ve směru hodinových ručiček. Pro zastavení otáčení stejnosměrného motoru stiskněte tlačítko STOP. Stejnou metodu lze použít k ovládání servomotoru pomocí MATLABu, stačí pouze odpovídajícím způsobem upravit kód. Níže si můžete prohlédnout video, abyste pochopili kompletní proces ovládání stejnosměrného motoru MATLAB pomocí Arduina.