- Stepper motors
- Stepper motora pagriešana ARM7-LPC2148
- Nepieciešamās sastāvdaļas
- Stepper motors (28BYJ-48)
- ULN2003 soļu motora vadītājs
- Ķēdes shēma
- ARM7-LPC2148 programmēšana soļu motoram
Mūsdienu automatizācijas pasaulē stepper motors un servomotors ir divi visbiežāk izmantotie motori iegultās sistēmās. Abi tiek izmantoti dažādās automatizācijas mašīnās, piemēram, robotu rokās, CNC mašīnās, kamerās utt. Šajā apmācībā mēs redzēsim, kā saskarni Stepper Motor ar ARM7-LPC2148 un kā kontrolēt tā ātrumu. Ja esat jauns ARM7 lietotājs, sāciet, uzzinot par ARM7-LPC2148 un tā programmēšanas rīkiem.
Stepper motors
Stepper motors ir DC-motors bez sukām, ko var pagriezt mazos leņķos, šos leņķus sauc par pakāpieniem. Mēs varam pakāpeniski pagriezt pakāpju motoru, piešķirot tā tapām digitālos impulsus. Stepper motori ir lēti, un tiem ir izturīgs dizains. Motora ātrumu var kontrolēt, mainot digitālo impulsu frekvenci.
Pamatojoties uz statora tinuma tipu, ir pieejami divu veidu pakāpienu motori: UNIPOLAR un BIPOLAR. Šeit mēs izmantojam UNIPOLAR soļu motoru, kas ir visbiežāk izmantotais soļu motors . Lai pagrieztu soļu motoru, mums secīgi jāiedarbina soļu motora spoles. Pamatojoties uz rotācijas darbību, tos iedala divos režīmos:
- Pilnas darbības režīms: (četrpakāpju secība)
- Vienfāzes solis (WAVE STEPPING)
- Divpakāpju pakāpieni
- Puse soļa režīms (8 soļu secība)
Lai uzzinātu vairāk par soļu motoru un tā darbību, sekojiet saitei.
Stepper motora pagriešana ARM7-LPC2148
Šeit mēs izmantosim PILNO SOLI: VIENAS FĀZES IESLĒGŠANA vai VIELNES STIPRINĀŠANAS režīms, lai pagrieztu soļu motoru ar ARM7-LPC2148
Šajā metodē mēs vienlaikus darbināsim tikai vienu spoli (vienu LPC2148 tapu). Tas ir, ja pirmajai spolei A tiek dota strāva uz nelielu laiku, vārpsta mainīs savu pozīciju un pēc tam spole B tiek darbināta uz to pašu laiku un vārpsta atkal mainīs savu stāvokli. Tāpat kā šis, spole C un pēc tam spole D tiek aktivizēta, lai virzītos tālāk vārpstu. Tas liek soļa motora vārpstai griezties soli pa solim, vienlaikus iedarbinot vienu spoli.
Ar šo metodi mēs pagriežam vārpstu soli pa solim, pēc kārtas aktivizējot spoli. To sauc par četrām soļu sekvencēm, jo tas prasa četras darbības.
Jūs varat pagriezt pakāpju motoru, izmantojot HALF STEP metodi (8 secības metode) atbilstoši tālāk norādītajām vērtībām.
Solis |
A spole |
Spole B |
Spole C |
Spole 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 |
Nepieciešamās sastāvdaļas
Aparatūra:
- ARM7-LPC2148
- ULN2003 Motora draivera IC
- LED - 4
- STEPPER MOTOR (28BYJ-48)
- PAPĪLS
- VADU SAVIENOŠANA
Programmatūra:
- Keil uVision5
- Flasic Magic rīks
Stepper motors (28BYJ-48)
28BYJ-48 pakāpienu motors jau ir parādīts attēlā iepriekš. Tas ir Unipolar Stepper motors, kuram nepieciešama 5V barošana. Motors ir aprīkots ar 4 spoles vienpolāru izvietojumu, un katra spole ir novērtēta ar + 5 V, tāpēc to ir salīdzinoši viegli vadīt ar visiem mikrokontrolleriem, piemēram, Arduino, Raspberry Pi, STM32, ARM utt.
Bet, lai to darbinātu, mums ir nepieciešams motora piedziņas IC, piemēram, ULN2003, jo soļu motori patērē lielu strāvu, un tas var sabojāt mikrokontrollerus.
28BYJ-48 specifikācijas ir norādītas zemāk esošajā datu lapā:
Pārbaudiet arī saskarni ar Stepper Motor ar citiem mikrokontrolleriem:
- Saskarne Stepper Motor ar Arduino Uno
- Stepper motora vadība ar Raspberry Pi
- Stepper motora mijiedarbība ar 8051 mikrokontrolleru
- Saskarne Stepper Motor ar PIC mikrokontrolleru
- Saskarne Stepper Motor ar MSP430G2
Stepper motoru var vadīt arī bez mikrokontrollera, skatiet šo Stepper Motor vadītāja shēmu.
ULN2003 soļu motora vadītājs
Lielākā daļa soļu motoru darbosies tikai ar vadītāja moduļa palīdzību. Tas ir tāpēc, ka kontroliera modulis (mūsu gadījumā LPC2148) nespēs nodrošināt pietiekamu strāvu no tā I / O tapām, lai motors darbotos. Tāpēc mēs izmantosim ārēju moduli, piemēram, ULN2003 moduli, kā pakāpju motora draiveri.
Šajā projektā mēs izmantosim ULN2003 motora draivera IC. Zemāk ir dota IC tapu diagramma:
Piespraudes (IN1 līdz IN7) ir ieejas tapas mikrokontrollera izejas savienošanai, un OUT1 līdz OUT7 ir atbilstošas izejas tapas stepper motoru ieejas savienošanai. COM tiek dots pozitīva avota spriegums, kas nepieciešams izejas ierīcēm un ārējam barošanas avotam.
Ķēdes shēma
Ķēdes shēma pakāpeniskā motora saskarnei ar ARM-7 LPC2148 ir dota zemāk
ARM7-LPC2148 ar ULN2003 motora draivera IC
LPC2148 GPIO tapas (P0.7 līdz P0.10) tiek uzskatītas par izejas tapām, kas savienotas ar ULN2003 IC ievades tapām (IN1-IN4).
LPC2148 tapas |
ULN2003 IC PINS |
P0.7 |
IN1 |
P0.8 |
IN2 |
P0.9 |
IN3 |
P.10 |
IN4 |
5V |
COM |
GND |
GND |
ULN2003 IC savienojumi ar soļu motoru (28BYJ-48)
ULN2003 IC izejas tapas (OUT1-OUT4) ir savienotas ar soļu motoru tapām (zils, rozā, dzeltens un oranžs).
ULN2003 IC PINS |
STIPRINĀTĀS MOTORA PINES |
OUT1 |
ZILA |
OUT2 |
ROZĀ |
OUT3 |
DZELTENS |
OUT4 |
APELSĪNS |
COM |
Sarkans (+ 5 V) |
Gaismas diodes ar IN1 līdz IN4 no ULN2003
Četri LED (LED1, LED2, LED4, LED 4) anoda tapas ir savienotas ar attiecīgi ULN2003 tapām IN1, IN2, IN3 un IN4, un LED katods ir savienots ar GND, kas norāda impulsus no LPC2148. Mēs varam atzīmēt sniegto impulsu modeli. Modelis ir parādīts demonstrācijas video, kas pievienots beigās.
ARM7-LPC2148 programmēšana soļu motoram
Lai ieprogrammētu ARM7-LPC2148, mums ir nepieciešams Keil uVision un Flash Magic rīks. Mēs izmantojam USB kabeli, lai programmētu ARM7 Stick, izmantojot mikro USB portu. Mēs rakstām kodu, izmantojot Keil, un izveidojam hex failu, un pēc tam HEX fails tiek flashed uz ARM7 stick, izmantojot Flash Magic. Lai uzzinātu vairāk par keil uVision un Flash Magic instalēšanu un to izmantošanu, sekojiet saitei Darba sākšana ar ARM7 LPC2148 mikrokontrolleru un ieprogrammējiet to, izmantojot Keil uVision.
Pilns kods Stepper Motor vadīšanai ar ARM 7 ir norādīts šīs apmācības beigās, šeit mēs izskaidrojam dažas tā daļas.
1. Lai izmantotu FULL STEP-ONE PHASE ON metodi, mums jāiekļauj komanda zemāk. Tātad mēs programmā izmantojam šādu rindu
neparakstīta rakstzīme pulksteņrādītāja kustības virzienā = {0x1,0x2,0x4,0x8}; // Komandas pulksteņrādītāja kustības virzienam neparakstīts simbols pretēji pulksteņrādītāja virzienam = {0x8,0x4,0x2,0x1}; // Komandas rotācijai pretēji pulksteņrādītāja virzienam
2. Lai inicializētu PORT0 tapas kā izvadi un iestatītu tās uz LOW, tiek izmantotas šādas rindas
PINSEL0 = 0x00000000; // PORT0 tapu iestatīšana IO0DIR - = 0x00000780; // tapu P0.7, P0.8, P0.9, P0.10 iestatīšana kā OUTPUT IO0CLR = 0x00000780; // Iestatot P0.7, P0.8, P0.9, P0.10 tapas OUTPUT kā LOW
3. uzstādītu OSTāS pins (P0.7 līdz P0.10) HIGH saskaņā pretēji pulksteņa rādītāja virzienam komandu, izmantojot šo par cilpa ar kavēšanās
par (int j = 0; j
Tas pats ar Anti-clock Wise
par (int z = 0; z
4. Mainiet aizkaves laiku, lai mainītu soļu motora griešanās ātrumu
kavēšanās (0x10000); // Mainiet šo vērtību, lai mainītu rotācijas ātrumu (0x10000) -Pilns ātrums (0x50000) -Lēnāk (0x90000) -Lēnāk nekā iepriekšējais. Tātad, palielinot kavēšanos, mēs pazeminām rotācijas ātrumu.
5. Vienai pilnīgai rotācijai paredzēto darbību skaitu var mainīt, izmantojot zemāk redzamo kodu
int no_of_steps = 550; // Mainiet šo vērtību, lai pagrieztu nepieciešamo soļu skaitu (550 dod vienu pilnīgu pagriešanu)
Savam soļu motoram es saņēmu 550 pakāpienus pilnīgai rotācijai un 225 pakāpienu pusei. Tāpēc mainiet to atbilstoši savām prasībām.
6. Šo funkciju izmanto, lai izveidotu aizkaves laiku.
void delay (neparakstīta int vērtība) // Funkcija, lai ģenerētu aizkavēšanos { unsigned int z; par (z = 0; z
Pilns kods ar demonstrācijas video ir norādīts zemāk.