- Darbības veidi Stepper Motor
- MATLAB grafiskās lietotāja saskarnes izveide soļu motora kontrolei
- MATLAB kods Stepper Motor kontrolēšanai ar Arduino
- Nepieciešams materiāls
- Ķēdes shēma
- Stepper motora vadība ar MATLAB
Stepper motori ir bezkontakta līdzstrāvas motors, kas rotē atsevišķos soļos, un ir labākā izvēle daudzām precīzas kustības vadības lietojumprogrammām. Arī soļu motori ir labi piemēroti pozicionēšanai, ātruma kontrolei un lietojumiem, kuriem ir nepieciešams liels griezes moments ar mazu ātrumu.
Iepriekšējās MATLAB apmācībās mēs esam paskaidrojuši, kā izmantot MATLAB, lai kontrolētu līdzstrāvas motoru, servomotoru un sadzīves tehniku. Šodien mēs uzzināsim, kā vadīt Stepper Motor, izmantojot MATALB un Arduino. Ja esat jauns MATLAB lietotājs, ieteicams sākt ar vienkāršu LED mirgošanas programmu ar MATLAB.
Darbības veidi Stepper Motor
Pirms sākat soļu motora kodēšanu, jums vajadzētu saprast soļu motora darbības vai rotācijas koncepciju. Tā kā stepera režīma stators ir veidots no dažādiem ruļļu pāriem, katru spoles pāri var ierosināt ar daudzām dažādām metodēm, kas ļauj režīmus vadīt daudzos dažādos režīmos. Tālāk ir sniegta plašā klasifikācija
Pilna soļa režīms
Pilnas pakāpes ierosmes režīmā mēs varam sasniegt pilnu 360 ° pagriezienu ar minimālu pagriezienu skaitu (pakāpieniem). Bet tas noved pie mazākas inerces, un arī rotācija nebūs vienmērīga. Pilnas pakāpes ierosmē ir vēl divas klasifikācijas, tās ir viena pakāpeniska viļņa pakāpiena un divas fāzes ieslēgšanas režīms.
1. Viena pakāpiena pakāpiena vai viļņa pakāpiena darbība: šajā režīmā tikai vienā motora spailē (fāzē) jebkurā laikā tiks aktivizēts. Tam ir mazāks pakāpienu skaits, un tādējādi var panākt pilnu 360 ° pagriezienu. Tā kā soļu skaits ir mazāks, ar šo metodi patērētā strāva arī ir ļoti zema. Šajā tabulā parādīta viļņu pakāpienu secība četrfāžu soļu motoram
Solis | 1. fāze (zila) | 2. fāze (rozā) | 3. fāze (dzeltena) | 4. fāze (oranža) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Divas pakāpeniskas darbības: kā šajā metodē norāda nosaukums, divas fāzes būs viena. Tam ir tāds pats pakāpju skaits kā Wave pakāpieniem, taču, tā kā vienlaikus tiek aktivizētas divas spoles, tas var nodrošināt labāku griezes momentu un ātrumu, salīdzinot ar iepriekšējo metodi. Lai gan viena no tām ir tāda, ka šī metode patērē arī vairāk enerģijas.
Solis |
1. fāze (zila) |
2. fāze (rozā) |
3. fāze (dzeltena) |
4. fāze (oranža) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Puse soļa režīms
Puse soļa režīms ir vienas pakāpes un divfāžu ieslēgšanas režīmu kombinācija. Šī kombinācija palīdzēs mums pārvarēt iepriekš minēto abu režīmu trūkumu.
Kā jūs, iespējams, to uzminējāt, jo mēs apvienojam abas metodes, mums būs jāveic 8 soļi šajā metodē, lai iegūtu pilnīgu rotāciju. Pārslēgšanas secība četrfāžu soļu motoram parādīta zemāk
Solis |
1. fāze (zila) |
2. fāze (rozā) |
3. fāze (dzeltena) |
4. fāze (oranža) |
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 |
Tādējādi jūs esat izvēlējies ieprogrammēt soļu motoru jebkurā režīmā, bet es dodu priekšroku divpakāpju pakāpeniskam pilna soļa režīmam. Tā kā šī metode nodrošina lielāku ātrumu, nekā vienas fāzes metode, un, salīdzinot ar pusi režīmu, kodēšanas daļa ir mazāka, jo divfāžu metodē ir mazāks soļu skaits.
Uzziniet vairāk par soļu motoriem un to režīmiem šeit
MATLAB grafiskās lietotāja saskarnes izveide soļu motora kontrolei
Tad mums ir jāveido GUI (grafiskā lietotāja saskarne), lai kontrolētu Stepper motoru. Lai palaistu GUI, komandu logā ierakstiet zemāk esošo komandu
vadīt
Tiks atvērts uznirstošais logs, pēc tam atlasiet jaunu tukšu GUI, kā parādīts zemāk esošajā attēlā,
Tagad izvēlieties divas pārslēgšanas pogas, lai pagrieztu soļa motoru pulksteņrādītāja kustības virzienā un pretēji pulksteņrādītāja kustības virzienam, kā parādīts zemāk,
Lai mainītu pogas izmēru vai mainītu pogas formu, vienkārši noklikšķiniet uz tā, un jūs varēsiet vilkt pogas stūrus. Veicot dubultklikšķi uz pārslēgšanas pogas, jūs varat mainīt konkrētās pogas krāsu, virkni un tagu. Mēs esam pielāgojuši divas pogas, kā parādīts zemāk esošajā attēlā.
Pogas varat pielāgot pēc savas izvēles. Tagad, kad to saglabājat, MATLAB redaktora logā tiek ģenerēts kods. Lai kodētu Arduino jebkura uzdevuma veikšanai, kas saistīts ar jūsu projektu, jums vienmēr ir jārediģē šis ģenerētais kods. Tātad zemāk mēs esam rediģējuši MATLAB kodu. Jūs varat uzzināt vairāk par komandu logu, redaktora logu utt. Darba sākšana ar MATLAB apmācību.
MATLAB kods Stepper Motor kontrolēšanai ar Arduino
Pilnīgs MATLAB kods Stepper motora vadībai ir norādīts šī projekta beigās. Šeit mēs lejupielādei pievienojam arī GUI failu (.fig) un koda failu (.m) (ar peles labo pogu noklikšķiniet uz saites, pēc tam atlasiet Saglabāt saiti kā…)), izmantojot kuru jūs varat pielāgot pogas atbilstoši savām prasībām. Zemāk ir daži kniebieni, ko mēs izdarījām, lai pagrieztu Stepper Motor pulksteņrādītāja virzienā un pretēji pulksteņrādītāja virzienam, izmantojot divas pārslēgšanas pogas.
Nokopējiet un ielīmējiet zemāk esošo kodu rindā Nr. 74, lai pārliecinātos, ka Arduino runā ar MATLAB katru reizi, kad palaižat m-failu.
nodzēst visu; globāls a; a = arduino ();
Ritinot uz leju, jūs redzēsiet, ka GUI abām pogām ir izveidotas divas funkcijas. Tagad ierakstiet kodu abās funkcijās atbilstoši uzdevumam, kuru vēlaties veikt ar klikšķi.
Pēc pulksteņa rādītāja virzienam Pogas funkcija, nokopējiet un ielīmējiet tālāk kodu tieši pirms beigām funkciju, lai pagrieztu motoru pulksteņrādītāja virzienā. Lai nepārtraukti rotētu soļu motoru pulksteņrādītāja kustības virzienā, mēs izmantojam while loop, lai atkārtotu divas pakāpeniskas pilnā režīma darbības pulksteņrādītāja virzienā.
kamēr get (hObject, 'Value') globāls a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pauze (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pauze (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauze (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauze (0,0002); beigas
Tagad pogas Pretēji pulksteņrādītāja kustības virzienā funkcijā ielīmējiet zemāk esošo kodu, lai pagrieztu motoru pretēji pulksteņrādītāja virzienam. Lai nepārtraukti rotētu soļu motoru pretēji pulksteņrādītāja kustības virzienam, mēs izmantojam while loop, lai atkārtotu divas pakāpeniskas pilnā režīma darbības pretēji pulksteņrādītāja kustības virzienam.
kamēr get (hObject, 'Value') globāls a; writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 0); pauze (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 1); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 0); pauze (0,0002); writeDigitalPin (a, 'D8', 0); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 1); writeDigitalPin (a, 'D11', 1); pauze (0,0002); writeDigitalPin (a, 'D8', 1); writeDigitalPin (a, 'D9', 0); writeDigitalPin (a, 'D10', 0); writeDigitalPin (a, 'D11', 1); pauze (0,0002); beigas
Nepieciešams materiāls
- MATLAB instalēts klēpjdators (priekšroka: R2016a vai jaunākas versijas)
- Arduino UNO
- Stepper motors (28BYJ-48, 5VDC)
- ULN2003 - Stepper motora vadītājs
Ķēdes shēma
Stepper motora vadība ar MATLAB
Pēc aparatūras iestatīšanas saskaņā ar shēmu vienkārši noklikšķiniet uz palaist pogas, lai palaistu rediģēto kodu.m failā
MATLAB var paiet dažas sekundes, lai atbildētu, neklikšķiniet uz nevienas GUI pogas, kamēr MATLAB kreisā stūra apakšējā pusē nav redzams aizņemts ziņojums, kā parādīts zemāk,
Kad viss ir gatavs, noklikšķiniet uz pogas pulksteņrādītāja kustības virzienā vai pretēji pulksteņrādītāja virzienam, lai pagrieztu motoru. Kad mēs izmantojam pārslēgšanas pogu, soļu motors nepārtraukti kustēsies pulksteņrādītāja kustības virzienā, līdz mēs vēlreiz nospiežam pogu. Līdzīgi, nospiežot pogu pretēji pulksteņrādītāja kustības virzienam, motors sāk griezties pretēji pulksteņrādītāja kustības virzienam, līdz mēs vēlreiz nospiežam pogu.