- „Stepper“ variklio veikimo režimai
- MATLAB grafinės vartotojo sąsajos sukūrimas Stepper varikliui valdyti
- MATLAB „Stepper“ variklio valdymo su „Arduino“ kodas
- Reikalinga medžiaga
- Grandinės schema
- Žingsninio variklio valdymas naudojant MATLAB
„Stepper“ varikliai yra nuolatinės srovės varikliai be šepetėlių, kurie sukasi atskirais žingsniais ir yra geriausias pasirinkimas daugeliui tikslaus judesio valdymo programų. Be to, žingsniniai varikliai yra tinkami padėties nustatymui, greičio valdymui ir pritaikymui, kuriems reikalingas didelis sukimo momentas esant mažam greičiui.
Ankstesnėse MATLAB pamokose mes paaiškinome, kad kaip naudoti MATLAB norint valdyti nuolatinės srovės variklį, servovariklį ir buitinius prietaisus. Šiandien mes sužinosime, kaip valdyti žingsninį variklį naudojant MATALB ir „Arduino“. Jei esate naujas MATLAB vartotojas, rekomenduojame pradėti naudoti paprastą šviesos diodų mirksėjimo programą su MATLAB.
„Stepper“ variklio veikimo režimai
Prieš pradėdami koduoti žingsninį variklį, turėtumėte suprasti žingsninio variklio veikiančią ar besisukančią koncepciją. Kadangi „stepper“ režimo statorius yra sudarytas iš skirtingų ritių porų, kiekvieną ritės porą galima sužadinti daugeliu skirtingų metodų, o tai leidžia režimus valdyti daugeliu skirtingų režimų. Toliau pateikiamos plačios klasifikacijos
„Full Step“ režimas
Viso žingsnio sužadinimo režimu galime pasiekti pilną 360 ° pasukimą su minimaliu apsisukimų skaičiumi (žingsniais). Bet tai lemia mažesnę inerciją, be to, sukimasis nebus sklandus. Yra dar dvi „Full Step sužadinimo“ klasifikacijos, tai yra vienas „Phase-on Wave“ žingsnis ir du „Phase-on“ režimai.
1. Vienas pakopinis arba banginis žingsnis: šiuo režimu bet kuriuo metu bus įjungta tik viena variklio gnybtas (fazė). Tai turi mažiau žingsnių skaičiaus, todėl galima pasiekti pilną 360 ° pasukimą. Kadangi žingsnių skaičius yra mažesnis, šiuo metodu sunaudojama srovė taip pat yra labai maža. Šioje lentelėje pateikiama 4 fazių žingsninio variklio bangų pakopų seka
Žingsnis | 1 fazė (mėlyna) | 2 fazė (rožinė) | 3 fazė (geltona) | 4 fazė (oranžinė) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Du pakopiniai žingsniai: Kaip šiame metode nurodomas pavadinimas, du etapai bus vienas. Jis turi tą patį žingsnių skaičių kaip „Wave“ žingsnis, tačiau kadangi vienu metu įjungiama dviejų ritinių įtampa, tai gali užtikrinti geresnį sukimo momentą ir greitį, palyginti su ankstesniu metodu. Nors viena pusė yra ta, kad šis metodas taip pat sunaudoja daugiau energijos.
Žingsnis |
1 fazė (mėlyna) |
2 fazė (rožinė) |
3 fazė (geltona) |
4 fazė (oranžinė) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Pusės žingsnio režimas
„Half Step“ režimas yra vieno etapo ir dviejų fazių įjungimo režimų derinys. Šis derinys padės mums įveikti minėtą abiejų režimų trūkumą.
Kaip jūs jau galėjote atspėti, nes mes deriname abu metodus, kuriuos atlikdami turėsime atlikti 8 veiksmus, kad galėtume visiškai pasukti. 4 fazių žingsninio variklio perjungimo seka parodyta žemiau
Žingsnis |
1 fazė (mėlyna) |
2 fazė (rožinė) |
3 fazė (geltona) |
4 fazė (oranžinė) |
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 |
Taigi, jūsų pasirinkimas yra programuoti žingsninį variklį bet kokiu režimu, bet aš norėčiau, kad „Full Step“ režimas būtų dviem etapais. Kadangi šis metodas suteikia didesnį greitį nei vienos fazės metodas, o lyginant su pusiniu režimu, kodavimo dalis yra mažesnė dėl mažesnio dviejų fazių metodo žingsnių skaičiaus.
Sužinokite daugiau apie žingsninius variklius ir jų režimus čia
MATLAB grafinės vartotojo sąsajos sukūrimas Stepper varikliui valdyti
Tada turime sukurti GUI (grafinę vartotojo sąsają), kad galėtume valdyti „Stepper“ variklį. Norėdami paleisti GUI, komandų lange įveskite žemiau esančią komandą
vadovas
Bus atidarytas iššokantis langas, tada pasirinkite naują tuščią GUI, kaip parodyta žemiau esančiame paveikslėlyje,
Dabar pasirinkite du perjungimo mygtukus, norėdami pasukti žingsninį variklį pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę, kaip parodyta žemiau,
Norėdami pakeisti mygtuką arba pakeisti mygtuko formą, tiesiog spustelėkite jį ir galėsite vilkti mygtuko kampus. Du kartus spustelėję perjungimo mygtuką galite pakeisti konkretaus mygtuko spalvą, eilutę ir žymą. Mes pritaikėme du mygtukus, kaip parodyta žemiau esančiame paveikslėlyje.
Mygtukus galite pritaikyti pagal savo pasirinkimą. Dabar, kai tai išsaugosite, MATLAB redaktoriaus lange bus sugeneruotas kodas. Norėdami koduoti „Arduino“, kad atliktumėte bet kokias su jūsų projektu susijusias užduotis, visada turite redaguoti šį sugeneruotą kodą. Taigi žemiau mes redagavome MATLAB kodą. Sužinokite daugiau apie komandų langą, redaktoriaus langą ir pan. Pradedant naudoti MATLAB mokymo programą.
MATLAB „Stepper“ variklio valdymo su „Arduino“ kodas
Pilnas MATLAB kodas „ Stepper“ varikliui valdyti pateikiamas šio projekto pabaigoje. Čia mes taip pat įtraukiame GUI failą (.fig) ir kodo failą (.m), kad galėtumėte atsisiųsti (dešiniuoju pelės mygtuku spustelėkite nuorodą, tada pasirinkite „Išsaugoti nuorodą kaip…“)), naudodami kuriuos galite tinkinti mygtukus pagal savo reikalavimus. Žemiau pateikiami keli patobulinimai, kuriuos atlikome pasukdami „Stepper“ variklį pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę naudodami du perjungimo mygtukus.
Nukopijuokite ir įklijuokite žemiau esantį kodą eilutėje Nr. 74 įsitikinkite, kad „Arduino“ kalba su MATLAB kiekvieną kartą paleidus „m-file“.
Išvalyti viską; pasaulinis a; a = arduino ();
Slinkdami žemyn pamatysite, kad GUI abiem mygtukams yra sukurtos dvi funkcijos. Dabar įrašykite kodą į abi funkcijas pagal užduotį, kurią norite atlikti spustelėję.
Be laikrodžio rodyklę mygtuko funkcija, nukopijuokite ir įklijuokite žemiau kodą tik prieš funkciją pabaigoje pasukti pagal laikrodžio rodyklę variklį. Norėdami nuolat sukti žingsninį variklį pagal laikrodžio rodyklę, mes naudojame „ while loop“, kad pakartotume du laipsniško žingsnio pilno režimo žingsnius pagal laikrodžio rodyklę.
o get (hObject, 'Value') globalus a; rašytiDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); rašytiDigitalPin (a, 'D11', 1); pauzė (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); rašytiDigitalPin (a, 'D10', 1); rašytiDigitalPin (a, 'D11', 1); pauzė (0,0002); writeDigitalPin (a, 'D8', 0); rašytiDigitalPin (a, 'D9', 1); rašytiDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauzė (0,0002); rašytiDigitalPin (a, 'D8', 1); rašytiDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauzė (0,0002); galas
Dabar, paspaudę mygtuką „ Prieš laikrodžio rodyklę “, įklijuokite žemiau esantį kodą, kad pasuktumėte variklį prieš laikrodžio rodyklę. Norėdami nuolat sukti žingsninį variklį prieš laikrodžio rodyklę, mes naudojame while loop, kad pakartotume du laipsniško žingsnio pilno režimo veiksmus prieš laikrodžio rodyklę.
o get (hObject, 'Value') globalus a; rašytiDigitalPin (a, 'D8', 1); rašytiDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauzė (0,0002); writeDigitalPin (a, 'D8', 0); rašytiDigitalPin (a, 'D9', 1); rašytiDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauzė (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); rašytiDigitalPin (a, 'D10', 1); rašytiDigitalPin (a, 'D11', 1); pauzė (0,0002); rašytiDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); rašytiDigitalPin (a, 'D11', 1); pauzė (0,0002); galas
Reikalinga medžiaga
- MATLAB įdiegtas nešiojamas kompiuteris (Pirmenybė: R2016a arba naujesnės versijos)
- „Arduino UNO“
- Žingsninis variklis (28BYJ-48, 5VDC)
- ULN2003 - žingsninio variklio vairuotojas
Grandinės schema
Žingsninio variklio valdymas naudojant MATLAB
Nustatę aparatūrą pagal grandinės schemą, tiesiog spustelėkite mygtuką paleisti, kad paleistumėte redaguotą kodą.m faile
Gali praeiti kelios sekundės, kol MATLAB atsakys, nespustelėkite jokių GUI mygtukų, kol MATLAB apatiniame kairiajame kampe rodomas užimtas pranešimas, kaip parodyta žemiau,
Kai viskas bus paruošta, spustelėkite mygtuką pagal laikrodžio rodyklę arba prieš laikrodžio rodyklę, kad pasuktumėte variklį. Kai naudojame perjungimo mygtuką, žingsninis variklis nuolat judės pagal laikrodžio rodyklę, kol vėl paspausime mygtuką. Panašiai, paspaudus perjungimo mygtuką prieš laikrodžio rodyklę, variklis pradeda suktis prieš laikrodžio rodyklę, kol vėl paspausime mygtuką.