- Režimy činnosti v krokovom motore
- Vytvorenie grafického užívateľského rozhrania MATLAB pre riadenie krokového motora
- MATLAB kód pre riadenie krokového motora pomocou Arduina
- Potrebný materiál
- Schéma zapojenia
- Ovládanie krokového motora pomocou MATLABu
Krokové motory sú jednosmerný jednosmerný motor, ktorý sa otáča v samostatných krokoch a sú najlepšou voľbou pre mnoho aplikácií presného riadenia pohybu. Krokové motory sú tiež dobré na polohovanie, riadenie rýchlosti a aplikácie, ktoré vyžadujú vysoký krútiaci moment pri nízkych otáčkach.
V predchádzajúcich tutoriáloch MATLABu sme si vysvetlili, ako používať MATLAB na ovládanie jednosmerného motora, servomotora a domácich spotrebičov. Dnes sa naučíme, ako ovládať krokový motor pomocou MATALB a Arduino. Ak ste v MATLABe nováčikom, odporúčame vám začať s jednoduchým programom blikania LED pomocou MATLABu.
Režimy činnosti v krokovom motore
Predtým, ako začnete kódovať krokový motor, mali by ste pochopiť pracovnú alebo rotačnú koncepciu krokového motora. Pretože stator krokového režimu je zostavený z rôznych párov cievok, môže byť každý pár cievok budený mnohými rôznymi spôsobmi, čo umožňuje, aby boli režimy prevádzkované v mnohých rôznych režimoch. Nasleduje široká klasifikácia
Celý krok
V režime budenia celého kroku môžeme dosiahnuť úplnú rotáciu 360 ° s minimálnym počtom závitov (krokov). To ale vedie k menšej zotrvačnosti a tiež rotácia nebude plynulá. Vo Full Step Excitation existujú ďalšie dve klasifikácie, jedná sa o jednostupňové fázové vlnenie a dve fázové režimy.
1. Jednofázové krokovanie alebo krokovanie vlny: V tomto režime bude v danom okamihu napájaná iba jedna svorka (fáza) motora. To má menší počet krokov, a tým možno dosiahnuť úplné otočenie o 360 °. Pretože počet krokov je menší, prúd spotrebovaný touto metódou je tiež veľmi nízky. V nasledujúcej tabuľke je uvedená postupnosť krokov 4-fázového krokového motora
Krok | Fáza 1 (modrá) | Fáza 2 (ružová) | Fáza 3 (žltá) | Fáza 4 (oranžová) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Dvojfázové šliapanie: Ako hovorí názov v tejto metóde, dve fázy budú jedna. Má rovnaký počet krokov ako krokovanie Wave, ale keďže sú súčasne napájané dve cievky, môže poskytnúť lepší krútiaci moment a rýchlosť v porovnaní s predchádzajúcou metódou. Jednou z nevýhod je, že táto metóda tiež spotrebuje viac energie.
Krok |
Fáza 1 (modrá) |
Fáza 2 (ružová) |
Fáza 3 (žltá) |
Fáza 4 (oranžová) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Polkrokový režim
Polkrokový režim je kombináciou jednofázového a dvojfázového režimu. Táto kombinácia nám pomôže prekonať vyššie spomenutú nevýhodu oboch režimov.
Ako ste už mohli uhádnuť, pretože kombinujeme obidve metódy, v tejto metóde budeme musieť vykonať 8 krokov, aby sme dosiahli úplnú rotáciu. Postup spínania 4-fázového krokového motora je uvedený nižšie
Krok |
Fáza 1 (modrá) |
Fáza 2 (ružová) |
Fáza 3 (žltá) |
Fáza 4 (oranžová) |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Preto je na vás, aby ste si krokový motor naprogramovali v ľubovoľnom režime, ale ja dávam prednosť dvojfázovému krokovému režimu Full Step. Pretože táto metóda poskytuje vyššiu rýchlosť ako jednofázová metóda a v porovnaní s polovičným režimom je kódovacia časť menšia kvôli menšiemu počtu krokov v dvojfázovej metóde.
Viac informácií o krokových motoroch a ich režimoch sa dozviete tu
Vytvorenie grafického užívateľského rozhrania MATLAB pre riadenie krokového motora
Potom musíme zostaviť GUI (grafické užívateľské rozhranie) na ovládanie krokové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 dve prepínacie tlačidlá na otáčanie krokového motora v smere a proti smeru hodinových ručičiek, ako je to znázornené 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 prepínač môžete zmeniť farbu, reťazec a značku konkrétneho tlačidla. Prispôsobili sme dve 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. Viac informácií o príkazovom okne, okne editora atď. Sa dozviete v príručke Začíname s programom MATLAB.
MATLAB kód pre riadenie krokového motora pomocou Arduina
Kompletný kód MATLAB na riadenie krokového motora je uvedený na konci tohto projektu. Ďalej sem zahrňujeme súbor GUI (.fig) a súbor kódu (.m) na stiahnutie (kliknite pravým tlačidlom myši na odkaz a potom vyberte príkaz „Uložiť odkaz ako…“)), 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í krokového motora v smere hodinových ručičiek a proti smeru hodinových ručičiek pomocou dvoch prepínacích 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 ();
Po rolovaní nadol uvidíte, že pre obe tlačidlá v grafickom používateľskom rozhraní sú vytvorené dve funkcie. Teraz napíšte kód do oboch funkcií 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 koncom funkcie, aby ste motor otočili v smere hodinových ručičiek. Pre nepretržité otáčanie krokového motora v smere hodinových ručičiek používame cyklus while, aby sme zopakovali dva fázové kroky krokovania celého režimu v smere hodinových ručičiek.
while get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pauza (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pauza (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauza (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauza (0,0002); koniec
Teraz vo funkcii tlačidla proti smeru hodinových ručičiek , prilepte nasledujúci kód na koniec funkcie, aby ste motor otočili proti smeru hodinových ručičiek. Pre nepretržité otáčanie krokového motora v smere proti smeru hodinových ručičiek používame cyklus while, aby sme zopakovali dva fázové kroky plného režimu v smere proti smeru hodinových ručičiek.
while get (hObject, 'Value') global a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauza (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauza (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pauza (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pauza (0,0002); koniec
Potrebný materiál
- Notebook nainštalovaný v systéme MATLAB (preferencia: R2016a alebo vyššia verzia)
- Arduino UNO
- Krokový motor (28BYJ-48, 5VDC)
- ULN2003 - budič krokového motora
Schéma zapojenia
Ovládanie krokové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čidlá grafického používateľského rozhrania, kým MATLAB neukáže zaneprázdnenú správu v dolnej časti ľavého rohu, ako je to zobrazené 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. Pretože používame prepínacie tlačidlo, krokový motor sa bude nepretržite pohybovať v smere hodinových ručičiek, kým tlačidlo znovu nestlačíme. Podobne, stlačením prepínacieho tlačidla proti smeru hodinových ručičiek sa motor začne otáčať proti smeru hodinových ručičiek, kým tlačidlo opäť nestlačíme.