- Vytvorenie grafického užívateľského rozhrania MATLAB pre riadenie jednosmerného motora
- Kód MATLAB na riadenie jednosmerného motora pomocou Arduina
- Potrebný materiál
- Schéma zapojenia
- Ovládanie jednosmerného motora pomocou MATLABu
V tomto návode si ukážeme, ako riadiť jednosmerný motor pomocou MATLB a Arduino. Ak ste v MATLABe nováčikom, odporúčame vám začať s jednoduchým programom blikania LED pomocou MATLABu.
Vytvorenie grafického užívateľského rozhrania MATLAB pre riadenie jednosmerného motora
Po dokončení nastavenia pomocou Arduina pre MATLAB musíme zostaviť GUI (grafické užívateľské rozhranie) na riadenie jednosmerného motora. 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 zvoľte tri tlačidlá pre otáčanie v smere hodinových ručičiek, proti smeru hodinových ručičiek a STOP, ako je to zobrazené nižšie,
Ak chcete zmeniť veľkosť alebo zmeniť tvar tlačidla, jednoducho naň kliknite a budete môcť ťahať za rohy tlačidla. Dvojitým kliknutím na tlačidlo môžete zmeniť farbu, reťazec a značku konkrétneho tlačidla. Prispôsobili sme tri tlačidlá, ako je znázornené na nasledujúcom obrázku.
Tlačidlá môžete prispôsobiť podľa vlastného výberu. Keď to uložíte, vygeneruje sa kód v okne editora MATLABu. Ak chcete kódovať svoje Arduino na vykonávanie akýchkoľvek úloh týkajúcich sa vášho projektu, musíte vždy upraviť tento vygenerovaný kód. Takže nižšie sme upravili kód MATLABu.
Kód MATLAB na riadenie jednosmerného motora pomocou Arduina
Kompletný kód MATLAB po jeho úprave pre riadenie jednosmerného motora je uvedený na konci tohto projektu. Ďalej sem zahrnieme súbor GUI (.fig) a súbor kódu (.m) na stiahnutie, pomocou ktorého si môžete prispôsobiť tlačidlá podľa svojich požiadaviek. Ďalej uvádzame niekoľko vylepšení, ktoré sme vykonali pri otáčaní jednosmerného motora v smere hodinových ručičiek, proti smeru hodinových ručičiek a pri zastavení pomocou troch tlačidiel.
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í nadol uvidíte, že pre každé tlačidlo v grafickom používateľskom rozhraní existujú tri funkcie. Teraz napíšte kód do každej funkcie podľa úlohy, ktorú chcete vykonať po kliknutí.
Vo funkcii tlačidla v smere hodinových ručičiek skopírujte a vložte nasledujúci kód tesne pred koncové zátvorky funkcie a otočte motor v smere hodinových ručičiek. Tu dávame HIGH na kolíku 6 a LOW na kolíku 5, aby sa motor otáčal v smere hodinových ručičiek.
globálne a; writeDigitalPin (a, 'D5', 0); writeDigitalPin (a, 'D6', 1); pauza (0,5);
Teraz vo funkcii tlačidla proti smeru hodinových ručičiek , vložte nasledujúci kód na koniec funkcie, aby ste motor otočili proti smeru hodinových ručičiek. Tu dávame HIGH na kolíku 5 a LOW na kolíku 6, aby sa motor otáčal proti smeru hodinových ručičiek.
globálne a; writeDigitalPin (a, 'D5', 1); writeDigitalPin (a, 'D6', 0); pauza (0,5);
Nakoniec do funkcie tlačidla STOP vložte nasledujúci kód na koniec, aby ste zastavili otáčanie motora. Tu dávame LOW na oboch pinoch 5 a 6 na zastavenie motora.
globálne a; writeDigitalPin (a, 'D5', 0); writeDigitalPin (a, 'D6', 0); pauza (0,5);
Potrebný materiál
- Notebook nainštalovaný v systéme MATLAB (preferencia: R2016a alebo vyššia verzia)
- Arduino UNO
- Jednosmerný motor
- L293D - vodič motora
Schéma zapojenia
Ovládanie jednosmerného motora pomocou MATLABu
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čidlo grafického používateľského rozhrania, kým MATLAB nezobrazí údaj BUSY, ktorý vidíte v ľavom dolnom rohu obrazovky, ako je to znázornené nižšie,
Keď je všetko pripravené, kliknite na tlačidlo v smere alebo proti smeru hodinových ručičiek, aby ste motor otočili. Keď stlačíte tlačidlo v smere hodinových ručičiek, prúd pretečie cez pin 6 až pin 5 a motor sa bude otáčať v smere hodinových ručičiek, zatiaľ čo v protismere hodinových ručičiek bude prúd prúdiť cez pin 5 až pin 6 a motor sa bude otáčať v smere hodinových ručičiek, bude sa točiť v smere hodinových ručičiek. Na zastavenie otáčania jednosmerného motora stlačte tlačidlo STOP. Rovnaká metóda môže byť použitá na ovládanie servomotora pomocou MATLABu, len musíme zodpovedajúcim spôsobom upraviť kód. Môžete si pozrieť video nižšie, aby ste pochopili kompletný proces riadenia jednosmerného motora MATLAB pomocou Arduina.