background image

Cel ćwiczenia : 

 

Napisać program w języku C, który będzie sterował pracą silnika krokowego w 

sposób pozwalający na podstawową kontrolę pracą tego silnika : zmiana kierunku obrotów, 
ilość obrotów, obrotu o zadany kąt. 
 

Teoria : 
 

Silnik krokowy jest to silnik przekształcający ciąg sterujących impulsów 

elektrycznych na ciąg przesunięć  kątowych jego wirnika, lub w przypadku silników 
liniowych przesunięcie liniowe biegnika. Silnik krokowy wykonuje obrót o konkretny 
przyrost kątowy pod wpływem impulsów elektrycznych podawanych w odpowiedniej 
kolejności. Obroty silnika są związane bezpośrednio z podawanymi impulsami, prędkość 
obrotowa zależy od częstotliwości impulsów, a kierunek od kolejności sekwencji impulsów 
podawanych na fazy silnika. 
 
W  ćwiczeniu wykorzystany będzie silnik unipolarny dwufazowy. Posiada on pięć 
wyprowadzeń. Cztery z nich to są końce uzwojeń, natomiast piąte jest zaciskiem wspólnym 
drugich końców wszystkich uzwojeń. 
Prądy w uzwojeniach silnika są kluczowane przez tranzystory zawarte w układzie scalonym 
ULN2003 (budowę wewnętrzną można znaleźć w dokumentacji).  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Podanie stanu logicznego ‘1’ na wejście Px (x=0..3) powoduje załączenie odpowiedniego 
tranzystora wyjściowego i przepływ prądu w danym uzwojeniu silnika Lx. 

 

Najpowszechniejsze rodzaje sterowania to: 
 
-falowe, 
-pełnokrokowe, 
-półkrokowe , 
-mikrokrokowe. 
 
W sterowaniu falowym inaczej zwanym jednofazowym w danym momencie zasilana jest 
jedna faza. 
 

GND

Silnik krokowy

ULN2003

P3 
P2 
P1 
P0 

V

IN

 (+12V) 

V

SS

 

Mikrokontroler 

L0

L1

L2

L3

background image

 

Sekwencje kroków 

 

 

1 2 3 4 5 

L0 

0 0 0 

L1 0 

0 0 0 

L2 0 0 

0 0 

Uzw

ojenie 

L3 0 0 0 

 
 
 
W sterowaniu dwufazowym inaczej pełnokrokowym w każdej chwili czasu zasilane są dwie 
fazy 
 

Sekwencje kroków 

 

 

1 2 3 4 5 

L0 

0 0 

L1 0 

0 0 

L2 0 0 

Uzw

ojenie 

L3 

0 0 

 
Wynikiem tego rodzaju sterowania są takie same ruchy jak przy sterowaniu jednofazowym z 
tym, że pozycja wirnika jest przesunięta o pół kroku. 
 
Sterowanie półkrokowe jest kombinacją sterowania dwufazowego i jednofazowego. Co drugi 
krok jest zasilana tylko jedna faza, a w pozostałych krokach dwie fazy. 
 
 
 

Sekwencje kroków 

 

 

1 2 3 4 5 6 7 8 9 

L0 

0 0 0 0 0 

L1 0 

0 0 0 0 0 

L2 0 0 0 

0 0 0 

Uzw

ojenie 

L3 0 0 0 0 0 

 
 

W naszym przykładzie posłużymy się  sterowaniem falowym, a zatem zasialniu w danym 
momencie tylko 1 fazy uzwojenia. 

 
Listing programu : 
 

void wejscie (void); 
void silnikprawa (int czas,int ile); 
void silniklewa (int czas,int ile); 
void czekaj (int czas);