Spis treści

Dawno, dawno temu ... :) zanim zacząłem jeszcze na poważnie zgłębiać tajniki elektroniki zdarzyło mi się kilkukrotnie zetknąć z silnikiem krokowym. Pierwszy raz było to jeszcze w podstawówce kiedy to rozebrałem gigantycznych rozmiarów (jak na dzisiejsze czasy) napęd dyskietek. Wtedy myślałem, że to zwykły silnik, hm ... tylko dlaczego wystawało z niego aż tyle przewodów ?

Fot: Trzy silniki krokowe, które wymontowałem na złomie ze starej kserokopiarki.

Próbowałem oczywiście zasilać z baterii ten silnik podłączając napięcie w różnych kombinacjach do przewodów ale niestety silnik ani myślał wykonać choć pół obrotu. Dopiero jakiś czas później dowiedziałem się, że wszystkie wystające z silnika przewody są potrzebne do prawidłowej jego pracy.
Silniki krokowe to miłe i wdzięczne "stworzonka", które można sterować z wykorzystaniem bardzo prostych sposobów. Jedynie osoby, które chcą "wycisnąć" z tych silników absolutnie wszystko, co się tylko da, powinny wgłębić się w temat, poznać zaawansowane zagadnienia sterowania mikrokrokowego, złożone sterowniki i specyficzne sposoby sterowania. Tych sposobów jest oczywiście wiele, można wykorzystywać kombinacje układów analogowych, specjalistyczne dedykowane sterowniki lub mikrokontrolery a skoro projekt ten znajduje się w dziale o takim właśnie tytule dowiecie się jak sterować silnikiem z zastosowaniem mikrokontrolera i oczywiście do czego można taki silnik zastosować, ale o ciekawym zastosowaniu, o którym mówi tytuł będzie nieco dalej.

Zacznę oczywiście od samego początku czyli od budowy takiego silnika. Na cele pokazowe rozebrałem silnik, który porusza głowicą drukującą w drukarkach igłowych OKI (takie wielkie i strasznie brzęczące, które często słychać w urzędach). Silnik krokowy (impulsowy, skokowy) przekształca impulsy elektryczne na obrót mechaniczny wirnika. Jak widzimy na zdjęciu powyżej składa się on (podobnie jak silniki indukcyjne) ze statora, na który składa się wiele cewek oraz rotatora, który wykonany jest w postaci wielu magnesów trwałych.

Jeśli będziemy podawać sekwencję impulsów elektrycznych kolejno na cewki statora spowodujemy obrót rotora, którego prędkość będzie ściśle zależna od częstotliwości impulsów. Oczywiście jeśli zmienimy kolejność podawania impulsów na cewki zmienimy kierunek obracania się wirnika - to już kolejna, wspaniała zaleta tego typu silnika ale na szczęście nie ostatnia. Jeden impuls podany na którąś z cewek silnika powoduje jego obrót o zaledwie 0,72 do 3,6 stopnia - sprawia to wspaniałe możliwości napędu wszędzie tam gdzie potrzebny jest kontrolowany ruch. Wystarczy po prostu podać odpowiednią ilość impulsów by przesunąć wirnik o żądany kąt. Oczywiście silnik nie jest pozbawiony wad, jedną z nich jest mała prędkość obrotowa sięgająca w porywach kilkunastu obrotów na sekundę, jednak w urządzeniach typu drukarki, skanery, plotery, kserokopiarki duża prędkość nie jest wcale potrzebna. Wręcz przeciwnie potrzeba małych prędkości obrotowych i informacji o położeniu. Silnik krokowy spełnia te wymagania i ponadto przy tych małych prędkościach zachowuje swój pełny moment obrotowy.

Najpopularniejsze silniki mają cztery uzwojenia w statorze a właściwie dwie pary uzwojeń. I najczęściej dlatego mają różną liczbę wyprowadzeń bo te uzwojenia są różnie połączone.
Ja w tym artykule zajmę się silnikami z sześcioma wyprowadzeniami bo takie występują najczęściej w starych drukarkach skanerach itp. czyli w miejscach skąd amatorzy tacy jak ja je pozyskują. Nowe silniki skokowe są naprawdę bardzo drogie, a te z demobilu możemy mieć za darmo i są w pełni sprawne nawet po wielu latach pracy.
Niestety silniki pozyskane ze starej, śmietnikowej jak to ja nazywam, drukarki najczęściej nie mają nalepek z jakimkolwiek symbolem, a nawet jeśli już mają to nota katalogowa jest niedostępna. Jak w takim wypadku sprawdzić który kolor przewodu odpowiada któremu uzwojeniu ?. Nieocenioną rolę odegra tu omomierz, którym sprawdzamy rezystancję pomiędzy wszystkimi przewodami i notujemy je na kartce. Na początku rozdzielany przewody na dwie wiązki, które nie mają elektrycznego połączenia (omomierz nie reaguje), tym sposobem oddzieliliśmy dwie cewki. Następnie badamy każdą wiązkę z osobna, znajdujemy parę o największej rezystancji, będą to na pewno przewody A+, A- lub dla drugiej B+ i B-. Ostatni przewód, który został nam w wiązce, a który ma rezystancję o wartości połowy tego co ma A+ i A- względem właśnie A+ i A- jest przewodem COM A lub dla drugiej COM B. Jedyne czego nie sprawdzimy od razu to kolejność cewek w parze, ale nie jest to problemem, bo po podłączeniu do generatora impulsów (o którym za chwilę), jeśli silnik nie pracuje poprawnie, wystarczy zamieniać kolejność A+ z A- i B+ z B- do czasu osiągnięcia efektu.

Rozbierając stare urządzenia napotykałem też często silniki o pięciu wyprowadzeniach. Ich budowa jest identyczna z tą różnicą, że połączone są wyjścia COM cewek wg. rysunku A powyżej. Bardzo rzadko trafiają się silniki z rozdzielonymi wszystkimi cewkami (rysunek B), układ taki pozwala na bardzo zmyślne sposoby sterowania ale o tym będzie w innym projekcie. Zapraszam do przejścia na następną stronę przyciskiem poniżej, wyjaśnię jak taki silnik zmusić do pracy.

 


 

Zagadnienia sterowania silnikiem krokowym.

Na poprzedniej stronie starałem się wyjaśnić jak zbudowany jest silnik krokowy i to, że z powodzeniem nazwać go można silnikiem cyfrowym bo prędkość obrotowa i kierunek wirowania nie zależą w żaden sposób od wartości napięcia i prądu zasilającego tylko od sekwencji impulsów podawanych na cewki.

Oddalamy się powoli od silnika w stronę układu sterującego. Na zdjęciu powyżej widzimy cztery tranzystory MOSFET, które posłużą jako przełączniki włączające i wyłaczające dopływ prądu do danej cewki, gdy na ich bramce pojawi się określony stan. Ja w swoim sterowniku zastosowałem tranzystory BUZ 11. Są to tranzystory z kanałem typu N, ich maksymalny prąd drenu to 30 A a maksymalne napięcie 50 V. Tranzystor z kanałem typu N wymaga podania stanu wysokiego na bramkę by mógł zostać "otwarty" i by przez cewkę zaczął płynąć prąd. Teraz mamy już bardzo prostą sytuację bo za pomocą mikrokontrolera należy wygenerować na jego wyjściach odpowiednią sekwencję impulsów i podać je bezpośrednio na bramki tranzystorów.

Na zdjęciu powyżej można zobaczyć moje "środowisko testowe". Na płytce prototypowej połączyłem tranzystory MOSFET z silnikiem krokowym, mikrokontrolerem na płytce uruchomieniowej i diodami LED sygnalizującymi stan każdej z czterech linii sterujących.

Drukarkowy silnik krokowy ze zdjęcia zasilam napięciem 5V i przy takim właśnie pracuje moim zdaniem optymalnie. Wielu pewnie zapyta dlaczego przy tak małym napięciu zastosowałem tranzystory przełączające o parametrach 50 V, 30 A. Odpowiedź jest prosta: prądy samoindukcji, które powstają zawsze gry wyłączamy przepływ prądu przez cewkę, a które są na tyle wysokie by uszkodzić słabsze tranzystory. Oczywiście można zastosować mniejsze tranzystory ale w takim przypadku koniecznym jest zastosowanie szybkich diod, które będą "wygaszać" te prądy i ochronią tranzystory.

Teraz o tym jak podać sekwencję impulsów na bramki MOSFET-ów tak, by spowodować obrót wirnika. I tu też pojawia się kilka możliwości, na początek sposób najprostszy: jednofazowy-pełnokrokowy. Na zdjęciu powyżej widzimy płytkę z mikrokontrolerem ATtiny 2313, połączoną złączem programującym z komputerem oraz przewodem, który łączy cztery wyjścia mikrokontrolera z bramkami tranzystorów.

W takim układzie mogę na bieżąco zmieniać program, wgrywać go do mikrokontrolera i obserwować jak każda zmiana wpływa na zachowanie silnika. Jak podać odpowiednią sekwencję impulsów ? nic prostszego. Niech porty mikrokontrolera od Pb.4 do Pb.7 będą połączone z bramkami tranzystorów MOSFET odpowiednio: Pb.4 - A+, Pb.5 - B+, Pb.6 - A-, Pb.7 - B-;.
Jeśli mamy połączony układ w takiej właśnie kolejności: A+, B+, A-, B- to wystarczy na te linie portu kolejno podawać impuls rozdzielając je pewnymi odstępami czasu. Te odstępy czasu odpowiedzialne będą za prędkość obrotu.

Jedna sekwencja to cztery takty, spowoduje ona obrót silnika w jedną stronę o zaledwie cztery malutkie kroki i by silnik obrócił się o 360 stopni sekwencję trzeba powtórzyć przynajmniej kilkadziesiąt razy.

 


 

Sterowanie pełno krokowe i pół krokowe.

By spowodować obrót w drugą stronę trzeba tylko zamienić kolejność podawania stanów wysokich na cewki. Jak już powiedziałem wcześniej jedna zmiana stanu powoduje przesunięcie silnika o jeden pełny krok. A czy da się przesunąć silnik tylko o pół kroku ?. Oczywiście, że się da, jeśli włączymy w pewnym momencie dwie cewki na raz wirnik zatrzyma się w połowie kroku pomiędzy dwiema cewkami. Jest tylko jedna generalna zasada: nigdy nie możemy jednocześnie zasilać dwóch cewek jednej pary. My mamy połączone cewki na przemian więc musimy ustawiać w stanie wysokim sąsiednie linie portu.

I udało nam się zwiększyć rozdzielczość silnika, teraz jedna sekwencja trwa aż 8 taktów a silnik możemy ustawić jeszcze dokładniej w konkretnej pozycji. Kolejną zaletą tego typu sterowania jest fakt, że przy małych prędkościach silnik "nie szarpie" przeskakując na kolejny krok. Na marginesie dodam tylko, że są sposoby sterowania pozwalające podzielić jeden krok silnika nawet na 8 części i zwiększyć tym samym rozdzielczość aż 8 razy.

Dobrym pomysłem jest połączenie bramek tranzystorów przez rezystor ok. 320 omów z diodami LED względem masy układu. Przy małych prędkościach obrotowych widzimy dokładnie w jaki sposób włączane są cewki silnika.
Na poprzednich schematach przedstawiłem fragmenty programu ukazujące najprostszy sposób sterowania, a raczej fragment programu realizujący samo przełączanie cewek. W praktyce musimy zadbać także o wejścia mikrokontrolera na podstawie których mikrokontroler będzie obracał silnik w prawo lub w lewo, będzie go zatrzymywał na tzw. hamulcu, czy zmieniał prędkość obrotową. Program realizujący wszystkie te założenia po wielu próbach udało mi się doprowadzić do optimum. Możecie pobrać go poniżej. W jego treści zawarłem wydaje mi się dość komentarzy by go zrozumieć.

Sterownik_silnika_krokowego.bas

Teraz, gdy wszystko już działa, pora przenieść układ z płytki prototypowej na wytrawioną płytkę PCB, niestety trzeba ją wcześniej zaprojektować.

Na projekcie płytki widzicie złącze wyjściowe na silnik krokowy i dwa złącza wejściowe, których stan bada mikrokontroler (polecenia IF ... Then w programie) na podstawie tego w jakim stanie (0 czy 1)są wejścia obraca silnik w prawo lub lewo z odpowiednią prędkością. Te diody LED w tym wypadku może już nie są potrzebne ale bardzo ładnie migają więc przeniosłem je też na płytkę sterownika.

A tak wygląda gotowa, wytrawiona płytka PCB sterownika. Zrezygnowałem z lutowanych złącz tak by można było w dowolnej chwili podłączać i odłączać wszystkie przewody. Powiem szczerze, że w tej chwili nie wiem jak nazywają się te złączki ale są w praktycznie każdym sklepie elektronicznym.

By włączyć obroty silnika w jedną ze stron wystarczy zewrzeć w złączce Kierunek odpowiedni pin do masy, by zmienić prędkość analogicznie zwieramy odpowiedni pin w złączce obroty. Dzięki takiemu rozwiązaniu sterowanie takim silnikiem jest bardzo proste. Oczywiście jeśli chcemy obracać silnik o dokładny kąt musimy zastosować całkowicie inny rodzaj sterowania ale o tym innym razem.

Po wykonaniu takiego sterownika zacząłem się zastanawiać do czego by go tu na dobry początek zastosować. Miałem w pudełku sporo różnych kółek zębatych i pasków od rozebranych drukarek itp i wpadłem na pomysł by zbudować mały samochodzik, który będę sterował takimi krokowymi silniczkami. Dodatkowo postanowiłem zastosować w nim przekładnię jak na zdjęciu powyżej. To już oczywiście przerost formy nad treścią ale będzie bardzo ładnie obrazować obroty silniczka. Zapraszam na kolejną stronę.

 


 

Budujemy samochodzik.

Sterowany samochodzik można by zrobić w bardzo prosty sposób przykręcając kółka bezpośrednio do osi silnika a ten do podwozia przeszłego pojazdu. Ja postanowiłem trochę skomplikować sobie życie i zastosować przekładnię na kółkach i paskach zębatych. Zawsze lubiłem obserwować takie przekładnie w skomplikowanych układach np. kserokopiarkach więc postanowiłem zrobić swój pierwszy.

Na zdjęciu widać dwa kółka napędowe zakupione w sklepie OBI, dwie aluminiowe osie z już założonymi kółkami zębatymi do przeniesienia napędu, dwa silniki krokowe, paski oraz drewniane łapy z łożyskami.

W wystruganą z kawałka deski łapę wcisnąłem łożysko a w nie wałek z kółkiem zębatym i napędowym. Taki zespół napędowy przykręcę do podwozia pojazdu i za pomocą paska zębatego przeniosę napęd z silnika.

I mamy gotowy napęd jednej strony pojazdu. Silnik krokowy zamontowałem na małym kątowniku aluminiowym również ze sklepu OBI, trzeba w nim z jednej strony poszerzyć otwory tak by możliwa była regulacja naciągu paska.

I to samo po drugiej stronie. Sterowanie pojazdem będzie polegało na zmianie parametrów pracy silników i jeśli np. oba będą obracać się z tą samą prędkością w tym samym kierunku pojazd będzie jechał na wprost. Jeśli np. oba będą obracać się w przeciwnych kierunkach pojazd będzie obracał się.

I wreszcie na zdjęciu powyżej zmontowany samochodzik gotowy do pracy. Już można podłączyć baterię i ustawiając stany niskie na pinach sterowników kierować nim - efekt jest naprawdę niesamowity :), niedługo zamieszczę filmik. W tym miejscu zakończę część pierwszą projektu, w części drugiej zamontuję akumulator, czujniki optyczne albo ultradźwiękowe oraz sterownik, który interpretując sygnały z czujników będzie sterował pojazdem.

Nagrałem pierwszy film z testu układu napędowego, na razie zmieniam stany na wejściach sterowników zwykłymi przełącznikami dwustanowymi. Nie łatwo jest tak kierować więc proszę się nie śmiać.