Problem ze sterowaniem silnikami krokowymi
: 22 kwie 2015, 20:47
Cześć,
ostatnio kupiłem używane bipolarne silniki krokowe.
R = 1,6 Ohm;
I_max = 1,5 A;
U = 2,5V;
M = 0,43Nm;
L = 12,5mH;
200 kroków na obrót.
Ażeby nimi sterować, zrobiłem dwa mostki H na tranzystorach bipolarnych. Silniki zasilam napięciem +12V, jak pokazano na schemacie, nie ma na nim rezystora 1R, na którym spadek napięcia mierzę. Wykorzystałem sekwencję zasilania cewek silnika jak na grafice poniżej.
Wejścia A, B, C, D podłączyłem do mojego mikrokontrolera – ATmega 8. Próbuję zaimplementować swego rodzaju „chopper” prądu, a wygląda to następująco:
Efekt jest taki, że silnik albo przeraźliwie piszczy, albo drży. Czasami, odpowiednio dobierając odstęp pomiędzy krokami, udaje mi się go zmusić do ruchu, wtedy też jest niemiłosiernie głośny, do tego, pomija niektóre kroki.
Proszę o diagnozę tego zjawiska i pomoc w rozwiązaniu problemu. Jako kompletny laik w dziedzinie silników krokowych porwałem się na napisanie własnego sterownika i bez pomocy się nie obędę.
Z góry dziękuję za wszelkie rady i wskazówki.
Pozdrawiam.
A tu wspomniane grafiki:


ostatnio kupiłem używane bipolarne silniki krokowe.
R = 1,6 Ohm;
I_max = 1,5 A;
U = 2,5V;
M = 0,43Nm;
L = 12,5mH;
200 kroków na obrót.
Ażeby nimi sterować, zrobiłem dwa mostki H na tranzystorach bipolarnych. Silniki zasilam napięciem +12V, jak pokazano na schemacie, nie ma na nim rezystora 1R, na którym spadek napięcia mierzę. Wykorzystałem sekwencję zasilania cewek silnika jak na grafice poniżej.
Wejścia A, B, C, D podłączyłem do mojego mikrokontrolera – ATmega 8. Próbuję zaimplementować swego rodzaju „chopper” prądu, a wygląda to następująco:
Kod: Zaznacz cały
- licznik milisekund := 0;
- dopóki licznik milisekund < 200 ( krok silnika co każde 200ms )
-licznik mikrosekund := 0
- włącz zasilanie odpowiednich cewek
- dopóki licznik mikrosekund < 50us ( „chopper” 40kHz )
- jeżeli prąd płynący przez cewkę osiągnął ustaloną wartość ( obecnie 0,2A )
- wyłącz zasilanie cewek
- zakończ pętlę
- dopóki licznik mikrosekund < 50us
- nie rób nic
- wyłącz zasilanie cewek
- zwiększ indeks mówiący o sekwencji zasilania cewek
- przejdź do początku
Proszę o diagnozę tego zjawiska i pomoc w rozwiązaniu problemu. Jako kompletny laik w dziedzinie silników krokowych porwałem się na napisanie własnego sterownika i bez pomocy się nie obędę.
Z góry dziękuję za wszelkie rady i wskazówki.
Pozdrawiam.
A tu wspomniane grafiki:

