Jak se řídí krokové motory?

Blog: 

Jak se řídí krokové motory? S trochou času a chutí experimentovat na to přijdete sami. Inspirovat Vás může tento článek. Publikováno v Praktická elektronika 12/2007.

Učíte se ovládat krokové motory nebo řešíte pohon svého přístroje? Napište mi nebo zavolejte. Pokud se učíte, pokusím se odpovědět na Vaše otázky. Pokud řešíte pohon, rád bych se dozvěděl, jak potřebujete aby to fungovalo a kolik by to mělo stát? Možná Vám budu umět nabídnout řešení na míru za přijatelnou cenu (kdy neplatíte vývoj elektroniky ani firmware). Také zvažte použití stejnosměrného kartáčového motoru.

 

Nasbíral jsem krokové motory z disketových mechanik, kopírek, faxů, tiskáren aj. Lišily se svou velikostí, hmotností, konstrukcí, barvami drátů, odporem vinutí atd. Bylo je však možné rozdělit do dvou skupin. Motory se šesti vývody a motory se čtyřmi vývody. Začal jsem měřit ohmmetrem a nakreslil schéma zapojení.

 

 Unipolární krokový motor se šesti vývody
Obr. 1 Unipolární krokový motor se šesti vývody

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 mj. 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.

 Bipolární krokový motor se čtyřmi vývody
Obr. 2 Bipolární krokový motor se čtyřmi vývody

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.

 Unipolární krokový motor s pěti vývody
Obr. 3 Unipolární krokový motor s pěti vývody

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. 1. 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í.

Jakým směrem se rotor pohne poprvé?

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 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 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áhnou, jak velká nepřesnost je přípustná apod.

Tranzistorové spínače podle učebnice

Příklad zapojení tranzistorů pro buzení unipolárního krokového motoru spolu s ochrannými diodami je na obr. 4. 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.

Tranzistory pro buzení unipolárního krokového motoru
Obr. 4. Tranzistory pro buzení unipolárního krokového motoru

V zapojení H-můstku jsou použity tranzistory NPN i PNP. Příklad takového obvodu je na obr. 5. 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í.

Dvojitý H-můstek pro buzení bipolárního krokového motoru
Obr. 5 Dvojitý H-můstek pro buzení bipolárního krokového motoru

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.

Ze skript a knih, které jsem ve vědecké knihovně a na Internetu našel, jsem si udělal stručné poznámky a přemýšlel nad způsobem, jakým 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ů.

Vnitřní zapojení ULN2803A
Obr. 6. Vnitřní zapojení jednoho kanálu ULN2803A

Vzal jsem páječku a na univerzální destičce plošného spoje vytvořil zapojení podle obr. 7. Tranzistrory 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
Obr. 7 Zapojení budiče 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 podle obr. 4.

Označení Hodnota
IO1 ULN2803A
T1, T2, T3, T4 BC640
R1, R2, R3, R4 10 K
R5, R6, R7, R8 4,7 K

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 obr. 6 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í).

Schéma zapojení

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 obr. 8.

Řídící obvod
Obr. 8 Řídící obvod

Ří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 orb. 7 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í.

Označení Hodnota
IO1 PIC12F675 (naprogramovaný)
R1, R2 10 K
R3, R4, R5, R6 1,8 K
D1, D2, D3, D4 Rudá LED (2 mA)
C1 47 µF
C2 100 nF
Spínací tlačítko 2 ks

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:

Stupeň rychlosti Počet kroků za 1 s Doba trvání 1 kroku [ms]
1 2 500
2 4 250
3 8 125
4 16 65,5
5 32 31,25
6 64 15,63
7 128 7,81
8 256 3,9
9 512 1,95

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)

Aktivní řídící signály OUT_X (za X dejte A1, A2 atd. podle tabulky) v jednotlivých krocích v daném provozním režimu:

Režim Krok 1 Krok 2 Krok 3 Krok 4 Krok 5 Krok 6 Krok 7 Krok 8
km_1f_4takt A1 B1 A2 B2 - - - -
km_2f_4takt A1 + B1 B1 + A2 A2 + B2 B2 + A1 - - - -
km_1f2f_8takt A1 A1 + B1 B1 B1 + A2 A2 A2 + B2 B2 B2 + A1

Daná sekvence se v daném režimu opakuje neustále dokola, je vykonávána zleva doprava nebo opačně.

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.

Komentáře

Pochvala

Moc hezky zpracovane, dávám za jedna

Mikrokrokování pomocí PWM

Ano, tak se dělají mikrokroky, napětí na fázích se řídí pomocí PWM. Je výhodné použít hotový driver, výběr je velký.

Zápis nastavení do eeprom

Dobrý den, dekuji za velice přínosný článek. Čeká mne zapojení servomotorku s převodovkou na 220V. Zatím nevím zdali je unipolar nebo bipolar, ale s tím po přečtení vašich stránek nebude problém. Jen mě zajímá, jestli si pamatuje pic nastavení tlačítky (směr a rychlost) i po vypnutí napájení. Dekuji za odpověď. Lukáš. Bureš

Řídící obvod se chová jako

Řídící obvod se chová jako jednoduchý logický automat. Do paměti EEPROM se žádná nastavení neukládají.

Uznání

Velice pěkný článek, moc děkuju !!!

Přidat komentář

Filtered HTML

  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Povolené HTML značky: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Řádky a odstavce se zalomí automaticky.

Plain text

  • Nejsou povoleny HTML značky.
  • Webové a e-mailové adresy jsou automaticky převedeny na odkazy.
  • Řádky a odstavce se zalomí automaticky.