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.
|
|
Sekwencje kroków |
||||
|
|
1 |
2 |
3 |
4 |
5 |
Uzwojenie |
L0 |
1 |
0 |
0 |
0 |
1 |
|
L1 |
0 |
1 |
0 |
0 |
0 |
|
L2 |
0 |
0 |
1 |
0 |
0 |
|
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 |
Uzwojenie |
L0 |
1 |
1 |
0 |
0 |
1 |
|
L1 |
0 |
1 |
1 |
0 |
0 |
|
L2 |
0 |
0 |
1 |
1 |
0 |
|
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 |
Uzwojenie |
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 |
|
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);
Mikrokontroler
Silnik krokowy
ULN2003
VIN (+12V)
P0
P1
P2
P3
L3
L2
L1
L0
GND
VSS