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
Sekwencje kroków
1 2 3 4 5
L0
1
0 0 0
1
L1 0
1
0 0 0
L2 0 0
1
0 0
Uzw
ojenie
L3 0 0 0
1
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
1
1
0 0
1
L1 0
1
1
0 0
L2 0 0
1
1
0
Uzw
ojenie
L3
1
0 0
1
1
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
1
1
0 0 0 0 0
1
1
L1 0
1
1
1
0 0 0 0 0
L2 0 0 0
1
1
1
0 0 0
Uzw
ojenie
L3 0 0 0 0 0
1
1
1
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);