Zapojení krokového motoru
Krokové motory z disketových mechanik, kopírek, faxů, tiskáren se liší svou velikostí, hmotností, konstrukcí, barvami drátů, odporem vinutí atd. Je možné je rozdělit do dvou skupin:
- Motory se šesti vývody.
- Motory se čtyřmi vývody.
Začal jsem měřit ohmmetrem a nakreslil schéma zapojení.
Krokovému motoru se šesti vývody se říká unipolární. Motoru se čtyřmi vývody se říká bipolární. Oba druhy motorů se liší způsobem ovládání, tedy způsobem buzení. Pro buzení unipolárního krokového motoru stačí neměnná polarita napětí, jednotlivá vinutí motoru se spínají např. tranzistory k zemi. Pro buzení bipolárního krokového motoru je zapotřebí polaritu napětí na jeho vinutích měnit, k tomu se používá tzv. H-můstek.
Také jsem objevil motor s pěti vývody. Ale ukázalo se, že je to krokový motor unipolární. Prostřední vývody A a B obou vinutí byly spojeny už v motoru a vyvedeny jedním vodičem.
Pokus se zdrojem napětí
Na univerzální desku plošného spoje, na samostatné plošky vedle sebe, jsem přiletoval šest drátků vedoucích z unipolárního krokového motoru. Jejich pořadí jsem zvolil takové, aby přehledně odpovídalo zapojení na obrázku. Potom jsem středy vinutí A a B mezi sebou propojil a přivedl na ně napětí +12 V. Druhým pólem napájecího zdroje (GND) jsem se postupně dotýkal jednotlivých vinutí motoru A1, A2, B1, B2, až jsem našel kombinaci, při které rotor poskočil vždy o jeden krok doprava. Pořadí jsem si zapsal. Tuto sekvenci jsem aplikoval také obráceně, rotor kráčel doleva.
Po dobu, po kterou bylo jedno vinutí pod napětím, byl rotor držen ve své poloze určitou silou. Když jsem chtěl rukou hřídelku rotoru pootočit, musel jsem vyvinout značné úsilí.
Směr pohybu
Vysledoval jsem, že při prvním vybuzení motoru se mohou vyskytnout tři různé stavy. Při vybuzení vinutí, které jsem v dané sekvenci považoval za první, se buď hřídelka motoru nepohnula ani na jednu stranu (zuby rotoru se nacházely v příslušné správné poloze proti daným vybuzeným pólům statoru) nebo se provedl jeden krok doleva nebo doprava.
Když jsem ledabyle zatočil hřídelkou rotoru rukou, nebo když jsem zapomněl, které vinutí jsem budil naposledy (nevěděl kde pokračovat) a motor začal budit např. od začátku známé sekvence, nebylo možné dopředu předpovědět, jakým směrem se rotor poprvé pohne nebo zda nezůstane stát na místě.
Když jsem např. chtěl, aby se rotor točil doprava, stalo se někdy, že nejprve provedl jeden krok vlevo, v dalším se vrátil na původní místo a pak již pokračoval žádaným směrem. Někdy se po prvním vybuzení rotor nepohnul vůbec nebo udělal správným směrem hned první krok.
Směr prvního kroku je závislý na počáteční vzájemné poloze zubů rotoru a buzených pólů statoru.
Výchozí poloha v přístroji
V přístrojích, po zapnutí napájení, ve kterých není možné nějakým způsobem sledovat aktuální polohu rotoru vůči statoru (např. enkodérem), nebo tam, kde tuto známou polohu není možné zajistit mechanicky (např. vhodnou převodovkou) a ukládat ji do paměti, není možné dopředu určit jak je rotor vůči statoru nastavený a tedy kde v dané sekvenci buzení motoru začít, není možné určit, kterým směrem se provede první krok nebo zda se rotor vůbec pohne!
Polohovací zařízení s krokovými motory, která nemají absolutní enkodér (drahé) často využívají optických závor (Hallovy snímače, koncové spínače) na začátku a na konci dráhy a provádí se automatická kalibrace přístroje po startu (projede se dráha, spočítají se kroky od začátku do konce atd.). Tato metoda např. nevyřeší možnost „proklouznutí” kroku při přetížení rotoru. Konstruktér ví čeho chce dosáhnout, jak velká nepřesnost je přípustná apod. a podle toho volí vhodné prostředky.
Tranzistorové budiče podle učebnice
Příklad zapojení tranzistorů pro buzení unipolárního krokového motoru spolu s ochrannými diodami. Jednotlivá vinutí A1, A2, B1, B2 jsou spínána tranzistory k zemi, středy A a B jsou připojeny na kladné napájecí napětí +Um.
Zapojení dvojitého H-můstku pro buzení bipolárního krokového motoru s tranzistory NPN i PNP. Označení +A1, +A2, +B1, +B2 a -A1, -A2, -B1, -B2 u bází tranzistorů znázorňuje, jaká polarita napětí bude na daném vývodu vinutí motoru po sepnutí příslušného tranzistoru. Pozor, neznamená to, jaké ovládací napětí resp. proud je potřeba přivést na daný tranzistor! Jde pouze o schematické znázornění obvodového zapojení.
Obvod pro řízení H-můstku nesmí připustit sepnutí obou tranzistorů nad sebou najednou, došlo by ke zkratu. Musí se koordinovat logická posloupnost spínání tranzistorů a musí se počítat s časovými prodlevami při zavírání a otevírání tranzistorů.
Jednu nebo dvě fáze
Krokové motory lze ovládat jednofázově nebo dvoufázově. Při jednofázovém způsobu řízení přivádíme napětí jen na jedno vinutí motoru, budíme jednu fázi. Při dvoufázovém řízení budíme dvě sousední vinutí se stejně orientovaným magnetickým polem současně, budíme dvě fáze.
Oběma způsoby řízení dosáhneme stejného počtu kroků. Ale! Budíme-li jen jednu fázi, motor odebírá ze zdroje menší proud; budíme-li současně dvě fáze, kromě proudu vzroste úměrně také síla, kterou je rotor držen ve své pozici, tedy moment.
Vybuzením jedné nebo obou fází statoru se rotor nastaví vždy tak, aby jeho zuby nalezly vzhledem k daným vybuzeným pólům statoru klidovou magnetickou polohu. Je-li vybuzena jedna fáze, zuby rotoru jsou nastaveny přímo proti vybuzenému pólu statoru. Jsou-li vybuzeny dvě fáze současně, magnetická klidová poloha zubů rotoru bude v geometrické ose obou vybuzených statorových pólů.
Mikrokrokování
Kombinací jednofázového a dvoufázového buzení lze dosáhnout u stejného motoru dvojnásobného počtu kroků na jednu celou otáčku.
Nejprve vybudím jednu fázi, zuby rotoru se nastaví proti vybuzenému pólu; potom k první fázi vybudím druhou fázi (pól se stejně orientovaným magnetickým polem jako u předchozího pólu), zuby rotoru se nastaví do geometrické osy mezi vybuzené póly; nakonec vypnu fázi, která byla vybuzena jako první (druhý pól nechám vybuzený), zuby rotoru se nastaví proti vybuzenému druhému pólu.
Tomuto zjemnění kroků se říká mikrokrokování. Existují obvody, které dokáží mezi dvěma póly realizovat více než jeden krok: 8, 16, 32... Tyto obvody řídí velikost napětí (nebo výkon pomocí PWM) ve fázích v určitém vzájemném poměru a o rotor se doslova přetahují.
Používáme-li pouze jednofázové nebo pouze dvoufázové buzení, vystřídáme tak vždy čtyři různé kombinace vybuzení jednotlivých vinutí motoru a říkáme, že motor je provozován ve čtyřtaktním režimu. Střídáním jednofázového a dvoufázového řízení vznikne osm možných kombinací vybuzení vinutí motoru a motor je tak provozován v režimu osmitaktním atd.
Bádání pokračuje...
Pokoušel jsem se k některým motorům s výrobním štítkem vyhledat dokumentaci na Internetu. U většiny exemplářů ale neznám jejich skutečné parametry. Změřený odpor jednoho vinutí odpovídal, podle Ohmova zákona, spočtenému a následně změřenému protékajícímu proudu, bylo-li na dané vinutí trvale zapojeno příslušné napětí. Čím větší napětí jsem na vinutí přivedl, tím větší silou byl rotor držen ve své stabilní poloze a tím větší proud ze zdroje tekl, úměrné bylo i vyzařované teplo z krytu motoru. Jak budu krokové motory ovládat? Kolik kroků na otáčku jsou schopny vykonat typy bez štítku? Jak rychle můžou jet?
Dvojitý H-můstek prakticky
Vzpomněl jsem si na obvod ULN2803A. Obsahuje osm darlingtonových tranzistorů s otevřeným kolektorem; každý může spínat proud až 500 mA a napětí do 50 V. Napětí na vstupech nesmí překročit 30 V; důležité však je, že jsou ovladatelné úrovněmi TTL/CMOS. Obvod integruje potřebné ochranné diody pro spínání indukční zátěže. Schematicky je znázorňován jako osm invertorů.
Vzal jsem páječku a na univerzální destičce plošného spoje vytvořil zapojení podle obrázku. Tranzistory T1 až T4 jsou typu PNP; vybral jsem BC640. Trvalý kolektorový proud (proud zátěže) může být až -1 A. Maximální spínané napětí je -80 V. Tranzistory T1 až T4 společně s obvodem ULN2803A tvoří zapojení dvou na sobě nezávislých H-můstků. Zapojení budičů krokového motoru s ULN2803A a tranzistory.
Pokud je propojka J1 rozpojena, tranzistory T1 až T4 jsou odpojeny od napětí +Um a zapojení funkčně odpovídá obvodu pro buzení unipolárního krokového motoru.
Na dvojitý H-můstek (J1 propojena) jsem připojil bipolární krokový motor, svorku +Um jsem dal na +12 V a na vstupech IN_A1, IN_A2, IN_B1, IN_B2 začal drátkem (napětím +12 V) vyťukávat naučenou sekvenci.
Byl jsem překvapený, když jsem si uvědomil, že pro ovládání bipolárního motoru používám stejnou kombinaci jako pro řízení motoru unipolárního. Rychle jsem rozpojil propojku J1 a připojil motor unipolární, stále tatáž kombinace, tentýž efekt.
Z hlediska ovládacích signálů na vstupu tohoto obvodu není rozdíl mezi unipolárním a bipolárním motorem!
Pozn.: Pokud není na kterémkoliv vstupu IN_A1, IN_A2, IN_B1, IN_B2 připojeno kladné ovládací napětí, je daný vstup držen v log. 0. Vyplývá to z vnitřního zapojení obvodu ULN2803A; báze vstupního tranzistoru je přitažena k zemi pomocí odporů 7K2 a 3K0.
Řídící obvod s mikroprocesorem
Řídící obvod umožňuje:
- Udělat jeden krok vlevo nebo vpravo.
- Automaticky krokovat vlevo nebo vpravo.
- Měnit rychlost automatického krokování.
- Zobrazovat pomocí LED právě prováděné kombinace buzení motoru.
Také jsem chtěl vyzkoušet všechny popsané režimy provozu: jednofázový čtyřtaktní, dvoufázový čtyřtaktní a mikrokrokování (kombinaci jednofázového a dvoufázového režimu tzn. provoz osmitaktní). Režim provozu resp. způsob buzení je daný verzí firmware (volně ke stažení).
V šuplíku jsem našel mikrokontrolér PIC12F675. Na univerzální destičku jsem přidal objímku DIL8, několik odporů, dvě tlačítka, čtyři diody LED, blokovací kondenzátory a všechno zapojil podle schématu.
Řídící obvod může být napájen napětím v rozsahu 2-5 V DC. Obvod výstupních tranzistorů resp. H-můstek dovoluje připojit napětí +Um až 50 V. Při pokusech jsem použil dva napájecí napěťové zdroje: pro řídící obvod stabilizovaný zdroj +5 V, pro obvod tranzistorů regulovatelný zdroj 1,5-30 V. Svorky GND obou zdrojů jsem propojil. Regulovatelný zdroj umožnil testovat motory při různém napětí.
Způsob ovládání
Tlačítka LEVA/R- a PRAVA/R+ mají několik funkcí:
- Jeden krok doleva nebo doprava - krátce kliknu na tlačítko LEVA/R- nebo PRAVA/R+; motor vykoná jeden krok žádaným směrem.
- Automatické krokování doleva nebo doprava - držím tlačítko LEVA/R- nebo PRAVA/R+ v sepnutém stavu; motor se rozjede, krokuje žádaným směrem.
- Snížit rychlost automatického krokování - držím tlačítko PRAVA/R+ (motor krokuje automaticky doprava), současně krátce kliknu na tlačítko LEVA/R-, tím dojde ke snížení rychlosti o jeden stupeň. Pokud je rychlost na stupni 1, další snižování rychlosti je bez efektu.
- Zvýšit rychlost automatického krokování - držím tlačítko LEVA/R- (motor krokuje automaticky doleva), současně krátce kliknu na tlačítko PRAVA/R+, tím dojde ke zvýšení rychlosti o jeden stupeň. Pokud je rychlost na stupni 9, další zvyšování rychlosti je bez efektu.
Pokud jsou trvale drženy obě tlačítka najednou, automatické krokování motoru je zastaveno, nedovolený funkční stav.
Rychlost automatického krokování lze měnit v krocích 1-9:
Příslušná kombinace aktivovaných výstupů OUT_A1, OUT_A2, OUT_B1, OUT_B2 je znázorňována pomocí LED D1 až D4.
Připravil jsem tři soubory (*.hex) pro mikrokontrolér PIC12F675, každý odpovídá jednomu způsobu provozu:
- Jednofázové buzení, čtyřtaktní provoz km_1f_4takt.zip (1,5 KB)
- Dvoufázové buzení, čtyřtaktní provoz km_2f_4takt.zip (1,5 KB)
- Kombinace jednofázového a dvoufázového buzení, osmitaktní provoz km_1f2f_8takt.zip (1,5 KB)
Závěr
Potom jsem na rotory a statory motorů kreslil značky a počítal kroky. Testoval jsem různé rychlosti a sledoval rozdíly mezi jednotlivými typy. Zkoušel jsem momenty při různých rychlostech, napětí, způsobu buzení atd.