Knihovna pro krokový motor

Václav Šuta a Jan Bernkopf, UREL, FEEC, VUT Brno

Obsah:

  1. Úvod
  2. Realizace
  3. Závěr

Úvod

Základní princip krokového motoru je velice jednoduchý. Proud procházející cívkou statoru vytvoří magnetické pole, které přitáhne opačný pól magnetu rotoru. Postupným zapojováním cívek dosáhneme vytvoření rotujícího magnetického pole, které otáčí rotorem. Jak se bude měnit magnetické pole statoru závisí na řízení.
Rozlišujeme několik základních metod řízení:
- unipolární/bipolární
- jednofázové/dvoufázové
- s plným krokem/polovičním krokem.

Více napoví ilustrace jednotlivých metod:
Unipolární a bipolární řízení:
Unipolární zapjení
Víše je vidět rozdíl mezi unipolárním a bipolárním řízením. Při unipolárním řízení prochází v jednom okamžiku právě jednou cívkou. Motor s tímto buzením má nejmenší odběr, ale také poskytuje nejmenší kroutící moment. Výhodou tohoto řešení je jednoduché zapojení řídící elektroniky. Při bipolárním řízení prochází proud vždy dvěma protilehlými cívkami. Ty jsou zapojené tak, že mají navzájem opačně orientované magnetické pole. Motor v tomto režimu poskytuje větší kroutící moment, ovšem za cenu vyšší spotřeby. Pro řízení jsou zapotřebí 2 H-můstky: pro každou větev jeden

Jednofázové a dvoufázové řízení:
Jednofázové Dvoufázové
Víše zase vidíme rozdíl mezi jednofázovým a dvoufázovým řízením. Jednofázové řízení znamená, že magnetické pole generuje pouze jedna cívka (případně dvojice cívek při bipolárním buzení). Při dvoufázovém řízení generují shodně orientované magnetické pole vždy dvě sousední cívky. Daní za vyšší kroutící moment je dvojnásobná spotřeba oproti řízení jednofázovému.

Řízení s plným a s polovičním krokem:
polovicni_krok_a_plny_krok
Ještě rozdělujeme řízení s plným a s polovičním krokem. Řízení s plným krokem znamená, že na jednu otáčku je potřeba přesně tolik kroků, kolik vynutí má stator daného motoru. Dosáhneme ho použitím kterékoliv doposud uvedené metody řízení. Řízením s polovičním krokem dosáhneme dvojnásobné přesnosti. Technicky se jedná o střídání kroků s jednofázovým a dvoufázovým řízením.

Realizace

Jde o fce které ovládáají unipolární krokový motor s polovičním krokem. Pro správnou funkci je nutno použít i knihovnu delay.c. Dále je nutné znát vzdálenost pro minimální krok a uhel minimálního natočení. Princip vysvětlíme na jedné z funkcí.

int go_right(int v,int t)
           {
           int r = v/min_step;
           for(j=0; j<r; j++)
                      {
                      PORTD = tab[i];
                      i++;
                      if(i==8) i=0;
                      delay_ms(t);
                      }
           return 0;
           }


Umyslně jsme vybrali funkci která obsahuje přepočet na počet kroků. Na prvním řádku fce jsou pouze vsupní proměnné. Na třetím řádku je již zmíněný přepočet vzálenosti na počet kroků. Jádrem celé funkce je cyklus for který proběhne právě r-krát. Uvnitř cyklu nejprve odešleme nastavení portu a inkrementujem pomocnou proměnou i, která ukazuje na části tabulky. Podmínka if je tu jen proto aby, když najedem na konec tabulky, nás vrátila na začátek.
Nezapomeňte nastavit řídící registr DDRD. Změnou tabulky je možné nastavit si řízení výstupů na portu D. Je nutné si tuto tabulku zkontrolovat!!!!!!!!

Závěr

Původně měla být tabulka uložena pouze v paměti programu, ale toto řešení způsobocvalo problémy. Dále je možné adresovat tabulku pomocí ukazatele a né přímo, kdo chce, s chutí do toho... . Knihovna funkcí, je k stáhnutí zde: stepper_motor.h.