- Krokový motor:
- Ovládač krokového motora ULN2003:
- Požadované komponenty
- Schéma zapojenia a vysvetlenie
- Vysvetlenie kódu
Krokový motor je špeciálne navrhnutý motor, ktorý sa otáča v krokoch. Rýchlosť krokového motora závisí od rýchlosti privádzaného elektrického signálu. Smer a typ rotácie krokového motora môžu byť ovládané rôznymi vzormi. K dispozícii sú hlavne dva typy krokových motorov, Unipolárne a Bipolárne. Unipolar je ľahšie ovládateľný, ovládateľný a tiež ľahšie dostupný. Tu v tomto výučbe prepojujeme krokový motor s mikrokontrolérom PIC PIC16F877A.
Použili sme 28BYJ-48 krokový motor pre tento projekt, ktorý je lacný a ľahko dostupný. Jedná sa o unipolárny krokový motor 5V DC. S týmto motorom tiež používame modul, ktorý pozostáva z integrovaného ovládača krokového motora ULN2003. ULN2003 je Darlingtonovo párové pole, ktoré je užitočné na pohon tohto motora, pretože mikrokontrolér PIC nemohol poskytnúť dostatok prúdu na pohon. ULN2003A je schopný riadiť záťaž 500 mA so špičkovým prúdom 600 mA.
Krokový motor:
Pozrime sa na špecifikáciu krokového motora 28BYJ-48 z technického listu.
Ako otáčať krokový motor:
Ak uvidíme údajový list, uvidíme pin-out.
Vo vnútri motora sú k dispozícii dve centrálne závitové cievky. Červený vodič je spoločný pre obidva typy, ktoré budú pripojené k napätiu VCC alebo 5V.
Ďalšie 4 vodiče ružový, červený, žltý a modrý budú riadiť rotáciu v závislosti od elektrického signálu. V závislosti od pohybu možno tento motor ovládať aj v 3 krokoch. Režim celej jazdy, režim Half disk a režim riadenia Wave.
Tri jazdné režimy krokového motora:
Plný pohon: Ak sú súčasne napájané dva statorové elektromagnety, motor bude bežať s plným krútiacim momentom, ktorý sa označuje ako sekvenčný režim s úplným pohonom.
Krok |
Modrá |
Ružová |
žltá |
Oranžová |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Polovičný pohon: Ak sú alternatívne napájané jedna a dve fázy, motor bude pracovať v režime polovičného pohonu. Používa sa na zvýšenie uhlového rozlíšenia. Nevýhodou je menší krútiaci moment vytváraný pri tomto pohybe.
Krok |
Modrá |
Ružová |
žltá |
Oranžová |
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 |
Wave Drive: V tomto režime je zapnutý jeden statorový elektromagnet. Nasleduje 4 kroky rovnaké ako v režime úplnej jazdy. Spotrebúva nízku energiu s nízkym krútiacim momentom.
Krok |
Modrá |
Ružová |
žltá |
Oranžová |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Predtým sme prepojili krokový motor s inými mikrokontrolérmi:
Krokový motor je možné ovládať aj bez mikrokontroléra, viď tento obvod ovládača krokového motora.
Ovládač krokového motora ULN2003:
Poďme porozumieť vylamovacej doske, ktorá pozostáva z ULN2003 IC. Je dôležité pochopiť dôležitosť.
Žltá časť sa používa na pripojenie k motoru, The Red časť sa ukazuje prepojku, je dôležité umiestniť prepojku, ako to umožní voľnobeh ochranu dióda pre motor . Ružový vstup je určený pre pripojenie mikroradiče.
Budeme točiť motorom v režime plnej jazdy v smere hodinových ručičiek a znova točením s režimom vlny v smere hodinových ručičiek. Na konci si pozrite ukážkové video.
Požadované komponenty
- Obrázok 16F877A
- Programovacia súprava
- Nepál
- 20MHz kryštál
- 33pF diskový kondenzátor - 2ks
- 4,7k rezistor
- Berg drôty a kolíky
- Odlamovacia doska ULN2003A spolu s krokovým motorom 28BYJ-48.
- Ďalšie vodiče na pripojenie
- 5V napájací zdroj alebo nástenný adaptér s 500 mA
Schéma zapojenia a vysvetlenie
V schéme zapojenia sa na ľavej strane zobrazuje PIC16F877A a na pravej strane pripojenie ULN2003A. ULN2003 a časť krokového motora je vo vnútri únikovej dosky.
Pripojenie z dosky Breakout k jednotke mikrokontroléra bude
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Pripojil som všetky komponenty a váš hardvér k otáčaniu krokového motora s mikrokontrolérom PIC je pripravený.
Ak ste v mikrokontroléri PIC nováčikom, postupujte podľa našich návodov na mikrokontroléry PIC s návodom Začíname s mikrokontrolérom PIC.
Vysvetlenie kódu
Celý kód tohto ovládača krokového motora založeného na PIC je uvedený na konci tohto tutoriálu s ukážkovým videom. Ako vždy najskôr je potrebné nastaviť konfiguračné bity v mikrokontroléri pic a potom začať s hlavnou funkciou void .
Toto sú makra pre konfiguračné bity jednotky mikrokontroléra a súbory hlavičiek knižnice.
#define _XTAL_FREQ 200000000 // Frekvencia kryštálu, použitá v oneskorení # definovať rýchlosť 1 // rozsah otáčok 10 až 1 10 = najnižšia, 1 = najvyššia # definovať kroky 250 // koľko kroku to bude trvať # definovať v smere hodinových ručičiek 0 // v smere hodinových ručičiek macro #define anti_clockwise 1 // makro v smere hodinových ručičiek
V prvom riadku sme definovali kryštálovú frekvenciu, ktorá je potrebná pre postup oneskorenia. Na definovanie možností týkajúcich sa používateľov sa používajú ďalšie makrá.
Ak vidíte kód, sú definované tri funkcie pre riadenie motora v troch režimoch v smere hodinových ručičiek a proti smeru hodinových ručičiek. Tu sú tri funkcie:
1. void full_drive (smer smeru)
2. void half_drive (smer smeru)
3. void wave_drive (smer znaku)
Skontrolujte definície týchto funkcií v úplnom kóde uvedenom nižšie:
Teraz v hlavnej funkcii void , poháňame motor v smere hodinových ručičiek pomocou režimu plného pohonu v závislosti od krokov a po niekoľkých sekundách oneskorenia opäť otáčame motor proti smeru hodinových ručičiek pomocou režimu vlnového pohonu.
void main (void) { system_init (); while (1) { / * Pohon motora v režime plnej jazdy v smere hodinových ručičiek * / pre (int i = 0; i
Takto môžeme otáčať krokový motor pomocou mikrokontroléra PIC. Krokové motory sú veľmi užitočné pri CNC strojoch, robotike a iných zabudovaných aplikáciách.