- Krokový motor:
- Ovladač krokového motoru ULN2003:
- Požadované komponenty
- Schéma zapojení a vysvětlení
- Vysvětlení kódu
Krokový motor je speciálně navržený motor, který se otáčí v krocích. Rychlost krokového motoru závisí na rychlosti elektrického signálu, který je na něj aplikován. Směr a typ rotace krokového motoru mohou být ovládány různými vzory. K dispozici jsou hlavně dva typy krokových motorů, Unipolární a Bipolární. Unipolární se snadněji ovládá, ovládá a také snáze získává. Zde v tomto tutoriálu propojujeme krokový motor s mikrokontrolérem PIC PIC16F877A.
Pro tento projekt používáme krokový motor 28BYJ-48, který je levný a snadno dostupný. Jedná se o unipolární krokový motor 5V DC. S tímto motorem používáme také modul, který se skládá z integrovaného ovladače krokového motoru ULN2003. ULN2003 je Darlingtonovo párové pole, které je užitečné pro pohon tohoto motoru, protože mikrokontrolér PIC nemohl poskytnout dostatek proudu pro pohon. ULN2003A je schopen řídit zátěž 500 mA se špičkovým proudem 600 mA.
Krokový motor:
Podívejme se na specifikaci krokového motoru 28BYJ-48 z datového listu.
Jak otáčet krokový motor:
Pokud uvidíme datový list, uvidíme pin-out.
Uvnitř motoru jsou k dispozici dvě středové závitové cívky. Červený vodič je společný pro oba, které budou připojeny při VCC nebo 5V.
Další 4 vodiče růžový, červený, žlutý a modrý budou řídit rotaci v závislosti na elektrickém signálu. V závislosti na pohybu lze tento motor také ovládat pomocí 3 kroků. Režim celé jízdy, režim Half disk a režim řízení Wave.
Tři režimy řízení krokového motoru:
Plný pohon: Pokud jsou pod napětím dva statorové elektromagnety najednou, motor poběží na plný točivý moment označovaný jako režim sekvence plného pohonu.
Krok |
Modrý |
Růžový |
Žlutá |
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: Je - li střídavě napájena jedna a dvě fáze, motor poběží v režimu polovičního pohonu. Používá se ke zvýšení úhlového rozlišení. Nevýhodou je menší točivý moment vytvářený při tomto pohybu.
Krok |
Modrý |
Růžový |
Žlutá |
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žimu je zapnut jeden statorový elektromagnet. Sleduje 4 kroky stejně jako režim Full-drive. Spotřebovává nízkou energii s nízkým točivým momentem.
Krok |
Modrý |
Růžový |
Žlutá |
oranžový |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Dříve jsme propojili krokový motor s jinými mikrokontroléry:
Krokový motor lze ovládat také bez mikrokontroléru, viz tento obvod ovladače krokového motoru.
Ovladač krokového motoru ULN2003:
Pojďme pochopit vylamovací desku, která se skládá z ULN2003 IC. Je důležité pochopit klíč.
Žlutá část se používá pro připojení k motoru, The Red část se ukazuje propojku, je důležité umístit propojku, jak to umožní volnoběh ochranu dioda pro motor . Růžový vstup je určen pro připojení mikrořadiče.
Otočíme motor v režimu plného pohonu ve směru hodinových ručiček a znovu jej otočíme režimem vlnového pohonu proti směru hodinových ručiček. Na konci zkontrolujte ukázkové video.
Požadované komponenty
- Obrázek 16F877A
- Programovací sada
- Nepájivá deska
- 20MHz krystal
- 33pF diskový kondenzátor - 2ks
- 4,7k rezistor
- Berg dráty a kolíky
- Odlamovací deska ULN2003A spolu s krokovým motorem 28BYJ-48.
- Další vodiče pro připojení
- 5V napájecí zdroj nebo nástěnný adaptér s jmenovitým proudem 500mA
Schéma zapojení a vysvětlení
Ve schématu zapojení se na levé straně zobrazuje PIC16F877A a na pravé straně připojení ULN2003A. ULN2003 a část krokového motoru jsou uvnitř únikové desky.
Připojení z desky Breakout k jednotce mikrokontroléru bude
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Připojil jsem všechny komponenty a váš hardware k otáčení krokového motoru s mikrokontrolérem PIC je připraven.
Pokud s mikrokontrolérem PIC jste nováčkem, postupujte podle našich výukových programů mikrokontroléru PIC s pokyny Začínáme s mikrokontrolérem PIC.
Vysvětlení kódu
Celý kód tohoto ovladače krokového motoru založeného na PIC je uveden na konci tohoto tutoriálu s ukázkovým videem. Jako vždy nejdříve musíme nastavit konfigurační bity v mikrokontroléru pic a poté začít s hlavní funkcí void .
Jedná se o makra pro konfigurační bity jednotky mikrokontroléru a soubory záhlaví knihovny.
#define _XTAL_FREQ 200000000 // Frekvence krystalu, použitá ve zpoždění #define speed 1 // Speed Range 10 to 1 10 = nejnižší, 1 = nejvyšší #definujte kroky 250 // kolik kroků to bude trvat #define ve směru hodinových ručiček 0 // ve směru hodinových ručiček makro # definovat proti směru hodinových ručiček 1 // makro proti směru hodinových ručiček
V prvním řádku jsme definovali krystalovou frekvenci, která je potřebná pro zpožďovací rutinu. K definování možností souvisejících s uživatelem se používají další makra.
Pokud vidíte kód, jsou definovány tři funkce pro řízení motoru ve třech režimech ve směru hodinových ručiček a proti směru hodinových ručiček. Tady jsou tři funkce:
1. void full_drive (směr znaků)
2. void half_drive (směr znaku)
3. void wave_drive (směr char)
Zkontrolujte definice těchto funkcí v úplném níže uvedeném kódu:
Nyní v hlavní funkci void , řídíme motor ve směru hodinových ručiček pomocí režimu plného pohonu v závislosti na krocích a po několika sekundách zpoždění znovu otáčíme motorem proti směru hodinových ručiček pomocí režimu vlnového pohonu.
void main (void) { system_init (); while (1) { / * Pohon motoru v režimu plné jízdy ve směru hodinových ručiček * / pro (int i = 0; i
Takto můžeme otáčet krokový motor pomocí mikrokontroléru PIC. Krokové motory jsou velmi užitečné u CNC strojů, robotiky a dalších vestavěných aplikací.