- sterowanie jednym bipolarnym silnikiem krokowym,
- pięć funkcji: praca od krańcówki do krańcówki, od krańcówki do krańcówki i z powrotem, praca cykliczna w jedną i drugą stronę, ręczne sterowanie w jedną stronę, ręczne sterowanie w drugą stronę,
- płynna regulacja szybkości obrotowej potencjometrem,
- możliwość czterokrotnego spowolnienia szybkości obrotowej silnika,
- pięć rodzajów sterowania ruchem: pełne kroki, 1/2 kroku, 1/4 kroku, 1/8 kroku lub 1/16 kroku,
- częstotliwość impulsów taktujących pracę silnika 7,6...3900 Hz lub 1,9...975 Hz w trybie spowolnionym,
- sygnalizacja kierunku obracania się wału silnika,
- współpraca z dwoma wyłącznikami krańcowymi typu NO (normalnie otwarte),
- zasilanie napięciem 9...32 V,
- pobór prądu od 10 mA (w stanie spoczynku),
- prąd uzwojeń ustalany potencjometrem.
Silniki krokowe są niezwykle użyteczne pod tym względem, że ich szybkość obrotową da się regulować w szerokim zakresie, co więcej – cały czas utrzymują stały moment obrotowy oraz moment trzymania. Ich użycie jednak nie jest tak proste, jak ma to miejsce w przypadku silników prądu stałego, bowiem wymagają zarówno nadzorowania prądu płynącego przez ich cewki, jak też cyklicznej zmiany jego kierunku. Na szczęście mamy na rynku gotowe (i niedrogie!) moduły, które potrafią wykonać za nas większość owej niewygodnej pracy.
Sęk w tym, że wspomniane moduły również wymagają sterowania, co z kolei wymusza użycie mikrokontrolera… Zaprezentowane w niniejszym artykule urządzenie ma właśnie charakter układu sterującego, umożliwiającego wysterowanie bipolarnego silnika krokowego silnika tak, by wykonywał proste ruchy: w jedną stronę, w jedną i drugą stronę, naprzemienny ruch od końca do końca lub sterowanie w trybie ręcznym – to wszystko potrafi niniejszy układ. Zapraszam do lektury!
Budowa
Głównym podzespołem zawiadującym jego pracą jest mikrokontroler typu ATmega8A-PU z 8-bitowym rdzeniem AVR (taktowanym sygnałem o częstotliwości 4 MHz, dla którego wzorcem jest zewnętrzny rezonator kwarcowy). Wbudowany w mikrokontroler generator wzbudza drgania kryształu kwarcu Q1, przez co układ może generować sygnał taktujący silnikiem z wysoką stabilnością w dziedzinie częstotliwości. Pamięć Flash mikrokontrolera można zaprogramować po wyjęciu go z podstawki lub poprzez złącze J6.
Drugi podzespół, nie mniej istotny, jest podłączany do płytki poprzez wciśnięcie go w zaciski złączy J1 i J2. To gotowy moduł typu stepstick z układem A4988 od Allegro MicroSystems. Na niewielkiej płytce, znajduje się sam układ scalony oraz niezbędne elementy bierne. Wśród nich wspomnieć należy również o potencjometrze ustalającym średni prąd cewek silnika, który to parametr ma wpływ zarówno na pobór prądu przez cały układ, jak i na moment trzymający silnika.
Do niewielkiej płytki trzeba doprowadzić zasilanie części cyfrowej (VDD: 3...5,5 V), zasilanie silnika (VMOT: 8...35 V) oraz sygnały sterujące, takie jak:
- aktywowanie niskim stanem logicznym (ENABLE),
- rodzaj pracy silnika: pełnokrokowa, półkrokowa itd. (MS1, MS2, MS3),
- zerowanie niskim stanem logicznym (RESET),
- uśpienie modułu niskim stanem logicznym (SLEEP),
- taktowanie kolejnych kroków napędu (STEP),
- ustalenie kierunku ruchu wału silnika (DIR).
Sam silnik podłącza się do wyprowadzeń 1A i 1B (pierwsza cewka) oraz 2A i 2B (druga cewka). Nie trzeba przy tym pamiętać o zewnętrznych diodach zabezpieczających albo o elementach kontrolujących prąd uzwojeń, ponieważ wszystkie te podzespoły są już zawarte na płytce modułu oraz w samym układzie A4988. Z tego powodu jego zastosowanie bardzo upraszcza realizację urządzenia. Również wbudowane w strukturę A4988 zabezpieczenia – takie jak ochrona przed zwarciem do masy lub przegrzaniem – podnoszą walory użytkowe modułu stepstick. Sam silnik można podłączyć do złącza J3 (typu goldpin) lub do złączy J4 i J5, które są śrubowymi listwami zaciskowymi.
W tym układzie mikrokontroler generuje trzy sygnały sterujące: ENABLE, STEP i DIR. Linii SLEEP i RESET nie używa się – zostały połączone razem, ponieważ ich stan logiczny powinien być w tym wypadku wysoki. Warto jednak zauważyć, że RESET nie ma wbudowanego rezystora podciągającego, natomiast SLEEP już ma, więc jeden rezystor podciąga oba wejścia – ot, cała zagadka dotycząca opisywanego połączenia.
Do regulacji szybkości obrotowej silnika służy zewnętrzny potencjometr liniowy, którego wyprowadzenia należy podłączyć do zacisków złącza J7. Ten element pracuje jako dzielnik napięcia zasilającego część cyfrową układu, toteż mikrokontroler – przy użyciu wbudowanego weń przetwornika analogowo-cyfrowego, którego napięciem referencyjnym również jest napięcie zasilające – mierzy sygnał wyjściowy pojawiający się na ślizgaczu potencjometru. Aby jednak odfiltrować znaczną część zakłóceń oraz zawęzić pasmo szumowe do minimum, do projektu włączono po drodze dwuczłonowy pasywny filtr dolnoprzepustowy typu RCRC. Dzięki temu napięcie trafiające na wejście przetwornika ma zdecydowanie mniejszą zawartość niepożądanej składowej zmiennej. Ponadto filtr taki stanowi również ochronę przed wyładowaniami elektrostatycznymi, ponieważ zwiększa czas narastania napięcia na diodach zabezpieczających wyprowadzenie mikrokontrolera, dając im czas na otwarcie się, jak również zmniejsza natężenie płynącego przez nie prądu.
Do zacisków złącza J8 należy podłączyć wyłączniki krańcowe, których sygnały wyjściowe będą ograniczały zakres ruchu osi sterowanego silnika krokowego. Powinny to być wyłączniki o stykach typu NO – normalnie otwarte. Rezystory R3 i R4 wymuszają wysoki stan logiczny na wejściach mikrokontrolera poprzez podciąganie rozwartego zestyku do potencjału +5 V. Relatywnie niewielka rezystancja tychże rezystorów wymusza przepływ prądu o stosunkowo wysokim natężeniu (około 5 mA) przez zwarte styki wyłączników krańcowych, lecz jest to zabieg celowy. W ten sposób układ staje się mniej wrażliwy na zaburzenia indukujące się nawet w długich przewodach połączeniowych pomiędzy zaciskami złącza J8 a wyłącznikami, ponieważ rezystancja obciążająca te przewody jest niska. Aby jednak opisane zakłócenia nie uszkodziły mikrokontrolera, w projekcie uwzględniono rezystory R5 i R6, które – podobnie jak opisany w poprzednim akapicie filtr RC – zwiększają czas narastania napięcia na diodach zabezpieczających wejścia oraz limitują natężenie prądu przez nie płynącego. Nie ma tutaj jednak intencjonalnie wprowadzonych filtrów RC, ponieważ wprowadzałyby one opóźnienie w reakcji układu na zwarcie styków wyłączników krańcowych, a ta powinna być jak najszybsza. Jedyne opóźnienie, które ma pomijalną wartość, wprowadzają pojemności pasożytnicze.
Układ A4988, znajdujący się w module sterującym silnikiem krokowym, ma możliwość wyboru jednego z pięciu rodzajów sterowania silnika – a dokładniej liczby kroków, wykonywanych przez silnik na każdy takt sygnału sterującego. Do ustalenia pożądanej wartości służy przełącznik typu DIP-Switch. Rezystory R7…R9 ustalają domyślnie niskie stany logiczne na omówionych wcześniej wejściach MS1…MS3, zaś załączenie sekcji przełącznika powoduje wymuszenie wysokiego stanu logicznego.
Użytkownik steruje układem poprzez sześć przycisków monostabilnych S1…S6. Do ustalenia wysokiego stanu logicznego na ich stykach w stanie rozwarcia służą nie tylko rezystory wbudowane w mikrokontroler, lecz również zewnętrzne, zawarte w drabince rezystorowej RN1.
Rozwiązanie tego typu redukuje wrażliwość układu na zewnętrzne zakłócenia elektromagnetyczne poprzez zmniejszenie rezystancji obciążającej każdy ze styków. Układ może zatem działać poprawnie, nawet gdyby przyciski sterujące były dołączone do płytki na przewodach.
Diody LED1…LED8 obrazują użytkownikowi, co w danej chwili dzieje się z układem. Prąd każdej z nich jest ograniczony przez indywidualny rezystor do wartości około 10 mA, co zapewnia wyraźne świecenie przy relatywnie niewielkim poborze prądu. Napięcia 5 V do części cyfrowej wspomnianego układu dostarcza zwykły stabilizator liniowy typu 7805. Pobór prądu przez układ jest niewielki, więc nawet przy wysokim napięciu zasilającym moc strat w nim nie będzie uzasadniała zastąpienia go przetwornicą impulsową. Dioda D1 zabezpiecza układ przed zniszczeniem w razie pomyłkowej zamiany biegunów napięcia zasilającego. Kondensator C13, który ma znaczną pojemność, chroni część cyfrową układu przed chwilowymi zanikami napięcia, jakie mogą mieć miejsce w momencie przełączania uzwojeń silnika, czyli kiedy pobór prądu przez sterownik jest wyższy niż w stanie ustalonym.