- Askelmoottorin toimintatilat
- MATLAB-graafisen käyttöliittymän luominen askelmoottorin ohjaamiseksi
- MATLAB-koodi askelmoottorin ohjaamiseksi Arduinolla
- Tarvittava materiaali
- Piirikaavio
- Askelmoottorin ohjaus MATLAB: lla
Askelmoottorit ovat harjaton tasavirtamoottori, joka pyörii erillisissä vaiheissa ja on paras valinta moniin tarkkuuden liikeohjaussovelluksiin. Myös askelmoottorit ovat hyviä paikannukseen, nopeuden säätöön ja sovelluksiin, jotka edellyttävät suurta vääntöä pienellä nopeudella.
Aikaisemmissa MATLAB-oppaissa olemme selittäneet, kuinka MATLABia käytetään DC-moottorin, servomoottorin ja kodinkoneiden ohjaamiseen. Tänään opimme ohjaamaan Askelmoottoria MATALB: n ja Arduinon avulla. Jos olet uusi MATLAB-käyttäjä, suosittelemme aloittamaan yksinkertaisen LED-vilkkumisohjelman MATLAB: n kanssa.
Askelmoottorin toimintatilat
Ennen kuin aloitat askelmoottorin koodaamisen, sinun tulisi ymmärtää askelmoottorin toiminta tai pyörivä käsite. Koska askelmoodin staattori on rakennettu erilaisista kelapareista, kutakin kelaparia voidaan virittää monilla eri menetelmillä, mikä mahdollistaa moodien ohjaamisen monissa eri moodeissa. Seuraavat ovat laajoja luokituksia
Full Step -tila
Täysvaiheisessa viritystilassa voimme saavuttaa täyden 360 °: n pyörimisen vähimmäiskierrosluvuilla (askelilla). Mutta tämä johtaa vähemmän inertiaan, eikä myöskään kierto ole tasainen. Täysvaiheisessa herätyksessä on vielä kaksi luokitusta, ne ovat yksi vaihe-aaltoporrastus ja kaksi vaihe-päällä-tila.
1. Yksi porrasaskel tai aaltoporras: Tässä tilassa vain yksi moottorin liitin (vaihe) saa virtaa kerrallaan. Tällä on vähemmän portaita ja siten voidaan saavuttaa täydellinen 360 ° kiertymä. Koska vaiheiden lukumäärä on pienempi, tällä menetelmällä kuluva virta on myös hyvin pieni. Seuraava taulukko näyttää aaltoporrastusjärjestyksen 4-vaiheiselle askelmoottorille
Vaihe | Vaihe 1 (sininen) | Vaihe 2 (vaaleanpunainen) | Vaihe 3 (keltainen) | Vaihe 4 (oranssi) |
1 | 1 | 0 | 0 | 0 |
2 | 0 | 1 | 0 | 0 |
3 | 0 | 0 | 1 | 0 |
4 | 0 | 0 | 0 | 1 |
2. Kaksi vaiheenvaihetta: Kuten nimessä todetaan tässä menetelmässä, kaksi vaihetta on yksi. Sillä on sama portaiden määrä kuin aaltoporrastuksella, mutta koska kaksi kelaa kytketään kerrallaan, se voi tarjota paremman vääntömomentin ja nopeuden edelliseen menetelmään verrattuna. Vaikka yksi puoli on, että tämä menetelmä kuluttaa myös enemmän virtaa.
Vaihe |
Vaihe 1 (sininen) |
Vaihe 2 (vaaleanpunainen) |
Vaihe 3 (keltainen) |
Vaihe 4 (oranssi) |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Puolivaiheinen tila
Half Step -tila on yhdistelmä yhdestä vaiheesta toiseen ja kaksivaiheisesta tilasta. Tämä yhdistelmä auttaa meitä pääsemään molempien toimintatapojen yllä mainitusta haitoista.
Kuten olet ehkä arvannut, koska yhdistämme molemmat menetelmät, meidän on suoritettava kahdeksan vaihetta tässä menetelmässä täydellisen kierron saamiseksi. Alla esitetty 4-vaiheisen askelmoottorin kytkentäjakso
Vaihe |
Vaihe 1 (sininen) |
Vaihe 2 (vaaleanpunainen) |
Vaihe 3 (keltainen) |
Vaihe 4 (oranssi) |
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 |
Siksi on sinun valintasi ohjelmoida askelmoottori mihin tahansa tilaan, mutta pidän parempana kaksivaiheista täyden vaiheen tilaa. Koska tämä menetelmä tuottaa nopeamman nopeuden kuin yksivaiheinen menetelmä, ja puolitilaan verrattuna koodaava osa on pienempi johtuen vähemmän vaiheiden määrästä kaksivaiheisessa menetelmässä.
Lue lisää askelmoottoreista ja niiden tiloista täältä
MATLAB-graafisen käyttöliittymän luominen askelmoottorin ohjaamiseksi
Sitten meidän on rakennettava GUI (graafinen käyttöliittymä) Stepper-moottorin ohjaamiseksi. Käynnistä GUI kirjoittamalla alla oleva komento komentoikkunaan
opas
Ponnahdusikkuna avautuu ja valitse sitten uusi tyhjä käyttöliittymä kuvan alla olevan kuvan mukaisesti,
Valitse nyt kaksi vaihtopainiketta askelmoottorin kääntämiseksi myötä- ja vastapäivään alla olevan kuvan mukaisesti,
Jos haluat muuttaa painikkeen kokoa tai muuttaa sen muotoa, napsauta sitä ja voit vetää painikkeen kulmia. Kaksoisnapsauttamalla vaihtopainiketta voit muuttaa kyseisen painikkeen väriä, merkkijonoa ja tagia. Olemme räätälöineet kaksi painiketta alla olevan kuvan mukaisesti.
Voit mukauttaa painikkeita valintasi mukaan. Kun tallennat tämän, koodi luodaan MATLAB: n Editor-ikkunaan . Jos haluat koodata Arduinosi suorittamaan projektiin liittyviä tehtäviä, sinun on aina muokattava tätä luotua koodia. Joten alla olemme muokanneet MATLAB-koodia. Voit oppia lisää komentoikkunasta, muokkausikkunasta jne. MATLAB-opetusohjelman käytön aloittamisesta.
MATLAB-koodi askelmoottorin ohjaamiseksi Arduinolla
Täydellinen MATLAB-koodi Stepper-moottorin ohjaamiseksi annetaan tämän projektin lopussa. Lisäksi sisällytämme GUI-tiedoston (.fig) ja kooditiedoston (.m) tähän ladattavaksi (napsauta hiiren kakkospainikkeella linkkiä ja valitse sitten Tallenna linkki nimellä…)), joiden avulla voit mukauttaa painikkeita vaatimuksesi mukaan. Alla on joitain parannuksia, jotka teimme askelmoottorin kiertämiseksi myötä- ja vastapäivään kahdella vaihtopainikkeella.
Kopioi ja liitä alla oleva koodi riville nro. 74 varmistaa, että Arduino puhuu MATLAB: n kanssa aina, kun suoritat m-tiedoston.
Tyhjennä; globaali a; a = arduino ();
Kun vierität alaspäin, huomaat, että GUI: n molemmille painikkeille on luotu kaksi toimintoa. Kirjoita nyt koodi molempiin toimintoihin sen tehtävän mukaan, jonka haluat suorittaa napsautuksella.
Vuonna myötäpäivään painikkeen toiminto, kopioi ja liitä alla koodi juuri ennen loppua toiminto moottorin pyörittämiseen myötäpäivään. Askelmoottorin pyörittämiseksi jatkuvasti myötäpäivään käytämme while-silmukkaa toistamaan kaksi vaiheittaista täyden tilan vaihetta myötäpäivään.
kun taas get (hObject, 'Arvo') globaali a; kirjoitaDigitalPin (a, 'D8', 1); kirjoitaDigitalPin (a, 'D9', 0); kirjoitaDigitalPin (a, 'D10', 0); kirjoitaDigitalPin (a, 'D11', 1); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 0); kirjoitaDigitalPin (a, 'D9', 0); kirjoitaDigitalPin (a, 'D10', 1); kirjoitaDigitalPin (a, 'D11', 1); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 0); kirjoitaDigitalPin (a, 'D9', 1); kirjoitaDigitalPin (a, 'D10', 1); kirjoitaDigitalPin (a, 'D11', 0); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 1); kirjoitaDigitalPin (a, 'D9', 1); kirjoitaDigitalPin (a, 'D10', 0); kirjoitaDigitalPin (a, 'D11', 0); tauko (0,0002); loppuun
Liitä nyt vastapäivän painikkeen toimintoon alla oleva koodi toiminnon kohdalle pyörittääksesi moottoria vastapäivään. Askelmoottorin jatkuvaan pyörittämiseen vastapäivään käytämme while loop -toimintoa toistamaan kaksi vaiheittaista täyden tilan vaihetta vastapäivään.
kun taas get (hObject, 'Arvo') globaali a; kirjoitaDigitalPin (a, 'D8', 1); kirjoitaDigitalPin (a, 'D9', 1); kirjoitaDigitalPin (a, 'D10', 0); kirjoitaDigitalPin (a, 'D11', 0); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 0); kirjoitaDigitalPin (a, 'D9', 1); kirjoitaDigitalPin (a, 'D10', 1); kirjoitaDigitalPin (a, 'D11', 0); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 0); kirjoitaDigitalPin (a, 'D9', 0); kirjoitaDigitalPin (a, 'D10', 1); kirjoitaDigitalPin (a, 'D11', 1); tauko (0,0002); kirjoitaDigitalPin (a, 'D8', 1); kirjoitaDigitalPin (a, 'D9', 0); kirjoitaDigitalPin (a, 'D10', 0); kirjoitaDigitalPin (a, 'D11', 1); tauko (0,0002); loppuun
Tarvittava materiaali
- MATLAB: n asentama kannettava tietokone (etusija: R2016a tai uudemmat versiot)
- Arduino UNO
- Askelmoottori (28BYJ-48, 5VDC)
- ULN2003 - Askelmoottorin kuljettaja
Piirikaavio
Askelmoottorin ohjaus MATLAB: lla
Kun olet määrittänyt laitteiston piirikaavion mukaisesti, napsauta vain ajaa-painiketta suorittaaksesi muokatun koodin.m-tiedostossa
MATLAB voi viedä vastauksen muutaman sekunnin ajan, älä napsauta mitään käyttöliittymän painikkeita, ennen kuin MATLAB näyttää varattu viesti vasemman kulman alaosassa, kuten alla on esitetty,
Kun kaikki on valmis, kierrä moottoria napsauttamalla myötä- tai vastapäivään-painiketta. Kun käytämme vaihtopainiketta, askelmoottori liikkuu jatkuvasti myötäpäivään, kunnes painamme painiketta uudelleen. Vastaavasti moottori alkaa pyöriä vastapäivään painamalla vastapäivään, kunnes painamme painiketta uudelleen.