- Askelmoottori
- Askelmoottorin pyörittäminen ARM7-LPC2148: lla
- Tarvittavat komponentit
- Askelmoottori (28BYJ-48)
- ULN2003-askelmoottorin ohjain
- Piirikaavio
- ARM7-LPC2148: n ohjelmointi askelmoottorille
Nykypäivän automaatiomaailmassa askelmoottori ja servomoottori ovat kaksi sulautettujen järjestelmien yleisimmin käytettyä moottoria. Molempia käytetään erilaisissa automaatiokoneissa, kuten robottivarret, CNC-koneet, kamerat jne. Tässä opetusohjelmassa näemme kuinka askelmoottori voidaan liittää ARM7-LPC2148: een ja kuinka hallita sen nopeutta. Jos olet uusi ARM7: ssä, aloita oppimalla ARM7-LPC2148 ja sen ohjelmointityökalut.
Askelmoottori
Askelmoottori on harjaton tasavirtamoottori, jota voidaan pyörittää pienissä kulmissa. Näitä kulmia kutsutaan vaiheiksi. Voimme kiertää askelmoottoria askel askeleelta antamalla digitaalisia pulsseja sen napoihin. Askelmoottorit ovat halpoja ja kestäviä. Moottorin nopeutta voidaan säätää muuttamalla digitaalisten pulssien taajuutta.
Staattorin käämityypin perusteella on saatavana kahta tyyppistä askelmoottoria: UNIPOLAR ja BIPOLAR. Tässä käytetään UNIPOLAR-askelmoottoria, joka on yleisimmin käytetty askelmoottori . Askelmoottorin pyörittämiseksi meidän on aktivoitava askelmoottorin kelat peräkkäin. Pyörintäkäytön perusteella ne luokitellaan kahteen tilaan:
- Täysi vaihe -tila: (4-vaiheinen jakso)
- Yhden vaiheen askel (WAVE STEPPING)
- Kaksivaiheinen askelma
- Puolivaiheinen tila (8-vaiheinen jakso)
Jos haluat tietää enemmän askelmoottorista ja sen toiminnasta, seuraa linkkiä.
Askelmoottorin pyörittäminen ARM7-LPC2148: lla
Tässä käytämme TÄYDEN VAIHE: YKSI VAIHE PÄÄLLÄ- tai AALTAVAIHE -tilaa askelmoottorin pyörittämiseksi ARM7-LPC2148: lla
Tässä menetelmässä energisoimme vain yhden kelan (yksi tappi LPC2148: sta) kerrallaan. Toisin sanoen jos ensimmäiseen kelaan A kytketään jännite pieneksi ajaksi, akseli muuttaa sijaintiaan ja sitten kela B saa jännitteen samaksi ajaksi ja akseli muuttaa jälleen asemaansa. Samoin kuin tämä, kela C ja sitten kela D saavat jännitteen akselin siirtämiseksi edelleen. Tämä saa askelmoottorin akselin pyörimään askel askeleelta vetämällä yhtä kelaa kerrallaan.
Tällä menetelmällä pyöritämme akselia askel askeleelta vetämällä kelaa peräkkäin. Tätä kutsutaan neljäksi vaihejaksoksi, koska se vie neljä vaihetta.
Voit kääntää askelmoottoria HALF STEP -menetelmällä (8-jaksoinen menetelmä) alla annettujen arvojen mukaisesti.
Vaihe |
Käämi A |
Käämi B |
Käämi C |
Käämi D |
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 |
Tarvittavat komponentit
Laitteisto:
- ARM7-LPC2148
- ULN2003-moottorin ohjaimen IC
- LED - 4
- ASKELMOOTTORI (28BYJ-48)
- LEIPÄLAUTA
- LIITÄNTÄJOHDOT
Ohjelmisto:
- Keil uVision 5
- Flasic Magic -työkalu
Askelmoottori (28BYJ-48)
28BYJ-48-askelmoottori on jo esitetty yllä olevassa kuvassa. Se on Unipolar Stepper -moottori, joka vaatii 5 V: n virtalähteen. Moottorissa on 4 kelan yksipolaarinen järjestely ja kutakin kelaa on mitoitettu + 5 V: lle, joten sitä on suhteellisen helppo hallita millä tahansa mikrokontrollerilla, kuten Arduino, Raspberry Pi, STM32, ARM jne.
Mutta tarvitsemme moottorikäyttöisen IC: n, kuten ULN2003, ajamiseen, koska askelmoottorit kuluttavat suurta virtaa ja voivat vahingoittaa mikro-ohjaimia.
28BYJ-48: n tekniset tiedot ovat alla olevassa taulukossa:
Tarkista myös liitäntä askelmoottoriin muiden mikrokontrollerien kanssa:
- Yhdistetty askelmoottori Arduino Unon kanssa
- Askelmoottorin ohjaus Raspberry Pi: llä
- Askelmoottori liitetään 8051-mikrokontrolleriin
- Liitäntäaskelmamoottori PIC-mikrokontrollerilla
- Liitäntäaskelmamoottori MSP430G2: n kanssa
Askelmoottoria voidaan ohjata myös ilman mikro-ohjainta, katso tämä askelmoottorin ohjainpiiri.
ULN2003-askelmoottorin ohjain
Useimmat askelmoottorit toimivat vain ohjainmoduulin avulla. Tämä johtuu siitä, että ohjainmoduuli (meidän tapauksessamme LPC2148) ei pysty tuottamaan riittävästi virtaa I / O-nastoistaan moottorin toimintaan. Joten käytämme ulkoista moduulia, kuten ULN2003- moduulia, askelmoottorin ohjaimena.
Tässä projektissa käytämme ULN2003-moottoriohjaimen IC: tä. IC: n pin-kaavio on annettu alla:
Nastat (IN1 - IN7) ovat tulonastoja mikrokontrollerin lähdön liittämistä varten ja OUT1 - OUT7 ovat vastaavia lähtönastoja askelmoottoreiden tulojen liittämistä varten. COM: lle annetaan positiivinen lähdejännite, jota tarvitaan lähtölaitteille ja ulkoiselle virtalähteelle.
Piirikaavio
Kytkentäkaavio askelmoottorin liittämiseksi ARM-7 LPC2148: een on annettu alla
ARM7-LPC2148 ja ULN2003-moottorin ohjainpiiri
LPC2148: n GPIO-nastoja (P0,7 - P0,10) pidetään lähtönastoina, jotka on kytketty ULN2003 IC: n tuloliittimiin (IN1-IN4).
LPC2148 nastat |
ULN2003 IC: n PINNAT |
P0.7 |
KOHDASSA 1 |
P0.8 |
IN2 |
P0.9 |
IN3 |
S.10 |
IN4 |
5 V |
KOM |
GND |
GND |
ULN2003 IC: n liitännät askelmoottorilla (28BYJ-48)
ULN2003 IC: n ulostulotapit (OUT1-OUT4) on kytketty askelmoottorin nastoihin (sininen, vaaleanpunainen, keltainen ja oranssi).
ULN2003 IC-PINNAT |
VAIHEELLISEN MOOTTORIN PINNAT |
OUT1 |
SININEN |
OUT2 |
VAALEANPUNAINEN |
OUT3 |
KELTAINEN |
OUT4 |
ORANSSI |
KOM |
PUNAINEN (+ 5 V) |
LEDit, joiden IN1 - IN4 ovat ULN2003
Neljä LED: n (LED1, LED2, LED4, LED 4) anoditappia on kytketty ULN2003: n nastoihin IN1, IN2, IN3 ja IN4, ja LEDien katodi on kytketty GND: hen, mikä osoittaa pulssit LPC2148: sta. Voimme huomata tarjottujen pulssien mallin. Kuvio näkyy lopussa olevassa esittelyvideossa.
ARM7-LPC2148: n ohjelmointi askelmoottorille
ARM7-LPC2148: n ohjelmointiin tarvitaan keil uVision & Flash Magic -työkalu. Ohjelmoimme ARM7 Stick USB-kaapelilla mikro-USB-portin kautta. Kirjoitamme koodin Keilillä ja luomme heksatiedoston ja sitten HEX-tiedosto välitetään ARM7-tikkuun Flash Magicilla. Jos haluat tietää enemmän Keil uVisionin ja Flash Magicin asentamisesta ja niiden käytöstä, seuraa linkkiä Aloittaminen ARM7 LPC2148 -mikrokontrollerilla ja ohjelmoi se Keil uVisionin avulla.
Täydellinen koodi askelmoottorin ohjaamiseksi ARM 7: llä annetaan tämän opetusohjelman lopussa, tässä selitämme muutamia osia siitä.
1. Sillä käyttäen FULL STEP-Yksi vaihe arvon pitäisi sisältää alle komento. Joten käytämme ohjelmassa seuraavaa riviä
allekirjoittamaton merkki myötäpäivään = {0x1,0x2,0x4,0x8}; // Komennot myötäpäivään kiertämistä varten, allekirjoittamaton merkki vastapäivään = {0x8,0x4,0x2,0x1}; // Komennot vastapäivään
2. Seuraavia rivejä käytetään alustamaan PORT0-nastat lähtökohtana ja asettamaan ne kohtaan MATALA
PINSEL0 = 0x00000000; // PORT0-nastojen asettaminen IO0DIR - = 0x00000780; // Asennustapit P0.7, P0.8, P0.9, P0.10 lähtöön IO0CLR = 0x00000780; // Asetus P0.7, P0.8, P0.9, P0.10 nastat OUTPUT LOW
3. Aseta PORT nastat (P0.7 ja P0.10) HIGH mukainen Myötäpäivään komentoja käyttämällä tätä varten silmukka viiveellä
varten (int j = 0; j
Sama anti-clock Wise
(int z = 0; z
4. Muuta viiveaikaa vaihtaaksesi askelmoottorin pyörimisnopeutta
viive (0x10000); // Muuta tätä arvoa muuttaaksesi pyörimisnopeutta (0x10000) -Täysi nopeus (0x50000) -Hidastuu hitaasti (0x90000) -Hidastuu edellistä. Joten lisäämällä viivettä laskemme pyörimisnopeutta.
5. Yhden täydellisen kierroksen vaiheiden määrää voidaan muuttaa alla olevalla koodilla
int no_of_steps = 550; // Muuta tätä arvoa vaaditulle portaiden lukumäärälle (550 antaa yhden täydellisen kierroksen)
Askelmoottorilleni sain 550 askelta täydelle pyörimiselle ja 225 puolikierrokselle. Joten muuta sitä tarpeidesi mukaan.
6. Tätä toimintoa käytetään viiveajan luomiseen.
void delay (allekirjoittamaton int-arvo) // Viiveen generoiva toiminto { unsigned int z; laskettu (z = 0; z
Täydellinen koodi esittelyvideolla on alla.