- Žingsninis variklis:
- ULN2003 žingsninio variklio tvarkyklė:
- Reikalingi komponentai
- Grandinės schema ir paaiškinimas
- Kodo paaiškinimas
„Stepper Motor“ yra specialiai sukurtas variklis, kuris sukasi pakopomis. Žingsnio variklio greitis priklauso nuo jam pritaikyto elektrinio signalo greičio. Skirtingi modeliai gali valdyti žingsninio variklio kryptį ir sukimosi tipą. Daugiausia yra dviejų tipų žingsninių variklių - „ Unipolar“ ir „ Bipolar“. „Unipolar“ yra lengviau valdyti, valdyti ir lengviau gauti. Čia, šioje pamokoje, susiejame žingsninį variklį su PIC mikrovaldikliu PIC16F877A.
Mes naudojame 28BYJ-48 Stepper motor šiam projektui, kuris yra pigus ir lengvai prieinama. Tai 5 V nuolatinis vienpolis žingsninis variklis. Mes taip pat naudojame modulį, kurį galima įsigyti su šiuo varikliu, kurį sudaro ULN2003 žingsninio variklio tvarkyklės IC. ULN2003 yra Darlingtono porų masyvas, naudingas šiam varikliui vairuoti, nes PIC mikrovaldiklis negalėjo suteikti pakankamai srovės, kad galėtų važiuoti. ULN2003A gali valdyti 500mA apkrovą su 600mA didžiausia srove.
Žingsninis variklis:
Pažiūrėkime 28BYJ-48 žingsninio variklio specifikaciją iš duomenų lapo.
Kaip pasukti žingsninį variklį:
Jei pamatysime duomenų lapą, pamatysime kaištį.
Variklio viduje yra dvi ritės, kurių vidinis kampas yra atsuktas. Raudona viela yra įprasta abiem, kurios bus prijungtos prie VCC arba 5 V įtampos.
Kiti 4 laidai - rožinė, raudona, geltona ir mėlyna - valdys sukimąsi priklausomai nuo elektrinio signalo. Be to, atsižvelgiant į judėjimą, šį variklį galima valdyti 3 žingsniais. „Full drive“ režimas, „ Half Drive“ ir „ Wave“ režimas.
Trys žingsninio variklio važiavimo režimai:
Visas varymas: Jei vienu metu maitinami du statoriaus elektromagnetai, variklis veiks visu sukimo momentu, vadinamu visos pavaros sekos režimu.
Žingsnis |
Mėlyna |
Rožinis |
Geltona |
Oranžinė |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Pusė pavaros: kai įjungiama viena ir dvi fazės, variklis veiks pusės važiavimo režimu. Jis naudojamas norint padidinti kampinę skiriamąją gebą. Trūkumas yra mažesnis sukimo momentas, atsirandantis atliekant šį judesį.
Žingsnis |
Mėlyna |
Rožinis |
Geltona |
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 |
Bangų pavara: Šiame režime įjungiamas vienas statoriaus elektromagnetas. Tai atliekama 4 žingsniais, kaip ir „Full-drive“ režimu. Jis sunaudoja mažą galią ir mažą sukimo momentą.
Žingsnis |
Mėlyna |
Rožinis |
Geltona |
Oranžinė |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Anksčiau mes sąsajome žingsninį variklį su kitais mikrovaldikliais:
Žingsninį variklį taip pat galima valdyti be jokio mikrovaldiklio, žiūrėkite šią „Stepper“ variklio tvarkyklę.
ULN2003 žingsninio variklio tvarkyklė:
Supraskime išsiveržimo lentą, kurią sudaro ULN2003 IC. Svarbu suprasti smeigtuką.
Geltona dalis yra naudojama prijungti variklį The Raudona dalis demonstruoja megztinis, svarbu įdėti trumpiklį, nes ji leis laisvąja eiga diodo apsauga variklio . Rožinė įėjimas yra už mikrovaldiklį ryšį.
Mes suksime variklį visu pavaros režimu pagal laikrodžio rodyklę ir vėl pasuksime su bangų pavaros režimu prieš laikrodžio rodyklę. Pabaigoje patikrinkite demonstracinį vaizdo įrašą.
Reikalingi komponentai
- Pic16F877A
- Programavimo rinkinys
- Bandomoji Lenta
- 20Mhz kristalas
- 33pF disko kondensatorius - 2vnt
- 4.7k rezistorius
- Berg laidai ir kaiščiai
- ULN2003A pertraukimo lenta kartu su 28BYJ-48 Stepper varikliu.
- Papildomi laidai prijungti
- 5V maitinimo blokas arba sieninis adapteris su 500mA reitingu
Grandinės schema ir paaiškinimas
Grandinės schemoje kairėje pusėje rodomas PIC16F877A, o dešinėje - ULN2003A ryšys. ULN2003 ir „Stepper“ variklio dalis yra pertraukiamosios lentos viduje.
Prijungimas nuo „Breakout“ plokštės prie mikrovaldiklio bloko bus
A. IN1 => kaištis33
B. IN2 => kaištis34
C. IN3 => kaištis35
D. IN4 => PIN36
Aš prijungiau visus komponentus ir jūsų aparatūrą, kad galėčiau pasukti „Stepper“ variklį su PIC mikrovaldikliu.
Jei dar nesinaudojote „PIC“ mikrovaldikliu, vadovaukitės mūsų „PIC“ mikrovaldiklio vadovėliais, kuriuose nurodyta „Pradėti naudoti„ PIC “mikrovaldiklį.
Kodo paaiškinimas
Visas šios PIC pagrindu sukurto „Stepper Motor“ tvarkyklės kodas pateikiamas šios pamokos pabaigoje su demonstraciniu vaizdo įrašu. Kaip visada pirmiausia, mes turime nustatyti konfigūracijos bitus pic mikrovaldiklyje ir tada pradėti nuo negaliojančios pagrindinės funkcijos.
Tai yra mikrovaldiklio bloko ir bibliotekos antraštės failų konfigūracijos bitų makrokomandos.
#define _XTAL_FREQ 200000000 // Krištolo dažnis, naudojamas vėluojant #define speed 1 // Greičio diapazonas nuo 10 iki 1 10 = mažiausias, 1 = didžiausias #define žingsniai 250 // kiek žingsnio reikės #define pagal laikrodžio rodyklę 0 // pagal laikrodžio rodyklę makrokomanda #define anti_clockwise 1 // prieš laikrodžio rodyklės kryptį macro
Pirmoje eilutėje mes apibrėžėme kristalų dažnį, kuris reikalingas uždelsimo rutinai. Kitos makrokomandos naudojamos apibrėžiant su vartotoju susijusias parinktis.
Jei matote kodą, yra trys funkcijos, apibrėžiančios variklį trimis režimais pagal laikrodžio rodyklę ir prieš laikrodžio rodyklę. Čia yra trys funkcijos:
1. negaliojantis „full_drive“ (char kryptis)
2. void half_drive (char kryptis)
3. void wave_drive (char kryptis)
Patikrinkite šių funkcijų apibrėžimus visame žemiau pateiktame kode:
Dabar, kai pagrindinė funkcija yra tuščia , mes vairuojame variklį pagal laikrodžio rodyklę, naudodamiesi visos pavaros režimu, priklausomai nuo žingsnių, ir po kelių sekundžių vėlavimo mes vėl sukame variklį prieš laikrodžio rodyklę naudodami bangų pavaros režimą.
void main (void) { system_init (); o (1) { / * Vairuokite variklį visu važiavimo režimu pagal laikrodžio rodyklę * / už (int i = 0; i
Taip mes galime pasukti žingsninį variklį su PIC mikrovaldikliu. Žingsniniai varikliai yra labai naudingi CNC mašinoms, robotams ir kitoms įmontuotoms programoms.