Knihovna pro krokový motor
	
	
		Václav Šuta a Jan Bernkopf, UREL, FEEC, VUT Brno
	
	
	
		
      
Obsah:
      
        - Úvod
- Realizace
- Závěr
	
	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í:
	 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
	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í:
	 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.
	
	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:
	 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.
	
	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.
	
	
	
	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!!!!!!!!
 		
	
	
	
		
			
	
	
	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.