Wstęp
Tym razem chcę wziąć na warsztat silniki krokowe.
Muszę przyznać szczerze, że nie mam praktycznie zielonego pojęcia na ten temat.
Ba, nawet nie wiem co mam kupić prócz samego silnika. Wiem, że muszę mieć do silnika specjalny sterownik. Ale tu kończy się moja wiedza.
Jaki sterownik należy dobrać?
Czy każdy sterownik będzie pasował, czy są różne dla różnych silników.
Dlaczego jedne silniki chodzą po mniej niż 20 cebulionów, a inne po ponad 400.
To samo ze sterownikami, dlaczego jedne są dużo tańsze, a inne dużo droższe.
Tak wiele pytań, a tak mało odpowiedzi. Zacznę więc od obejrzenia odcinka pt. “Arduino 16: DUŻE SILNIKI KROKOWE” na kanale Adama Śmiałka.
Już po pierwszych 60 sekundach dowiedziałem się, że oglądam poradnik od dupy strony, bo ten jak sam tytuł wskazuje opowiada o większych silnikach, a nie o samych silnikach krokowych.
Oglądając kolejne poradniki dowiedziałem się, że nazwa “NEMA17” nie jest taką nazwą z dupy, a określa rozmiary silnika. To by wyjaśniało, dlaczego jedne są znacznie droższe a drugie tańsze.
Silnik “NEMA17” ze względu na cenę będzie silnikiem jakiego użyję do tego projektu. Więc pora wejść na alledrogo I kupić jeden. Prócz samego silnika znalazłem poniższy zestaw ze sterownikiem:
Będzie to plan “B” w razie gdybym źle dobrał sterownik.
Właśnie o sterowniku mowa. Muszę teraz poszukać informacji jaki sterownik powinienem dobrać do silnika NEMA17.
Grzebiąc dalej dowiedziałem się, że istnieją silniki bipolarne oraz unipolarne. Różnią się one ilością uzwojeń oraz rodzajem sterowania.
Czyli do silnika unipolarnego oraz bipolarnego będzie potrzebny inny sterownik.
Są jeszcze silniki krokowe uniwersalne. Jak sama nazwa wskazuje mogą one być “ustawione” jako bipolarne albo unipolarne.
Oglądając kolejne tutoriale znalazłem w końcu odpowiedź na moje pytanie “Jaki sterownik dać do silnika NEMA17”. Idealnym rozwiązaniem dla tego silnika będzie sterownik “A4988”.
Skoro wszystko mam już ustalone to pora zamówić części.
Pierwsze przyszły silnik NEMA17 oraz sterownik A4988.
Jeszcze zanim zacząłem szukać w sieci informacji jak to podłączyć spróbowałem przylutować przewody do silnika NEMA17. Jakie było moje zdziwienie jak okazało się, że cyna nie za bardzo chce się trzymać pinów silnika.
Po rozwaleniu gniazda lutownicą postanowiłem, że jak człowiek kupię odpowiedni konektor.
Zamówiłem więc coś takiego.
I znowu czekanie…
Cóż, jak to mawiał pewien otyły pan: “człowiek najlepiej uczy się na błędach a nie na lekcjach”.
Czekając na kable dowiedziałem się, że sterownik A4988 posiada limiter prądu, co powoduje, że nadaje się świetnie do silnika NEMA17.
Po paru dniach czekania przekonałem się, że mój “geniusz” nie zna granic.
Montaż
Okazało się, że zamówiłem złą wtyczkę, która jest za mała.
Wydawałoby się, że krótki research w internecie wystarczy, byłem jednak w błędzie.
Mógłbym to poprawić, ale czas ucieka, nie mając innego wyjścia (bo nie mam, jak podpiąć silnika) pozostaje plan “B”. Do silnika NEMA17 na pewno jeszcze wrócę.
Podłączenie kolejnego sterownika jest dosyć łatwe, krótkie szukanie w grafikach Google, dało mi instrukcję jak to wszystko podłączyć.
Ponieważ zasilam tylko jeden silnik podepnę wszystko pod USB, I wykorzystam 5V z Arduino jako zasilanie.
Po zmontowaniu całość prezentuje się tak:
Skoro wszystko jest podłączone pora przejść do komputera I środowiska arduino IDE
Programowanie
Pierwszym krokiem będzie jak w ostatnim blogu, pobrać potrzebne biblioteki.
Do silników krokowych potrzebna jest biblioteka “stepper”
Biblioteka ta pozwala na łatwą komunikację ze sterownikiem ULN2003, bez rozkminiania w szczegółach jak to wszystko sterować.
Nie mam chwilowo lepszego pomysłu jak po prostu pokręcić silnikiem. Załaduję więc przykładowy program, który wysteruje silniki paręset kroków w jedną stronę I paręset kroków w drugą.
Biblioteka posiada przykładowy program, który załadowałem I wszystko mi zadziałało za pierwszym razem. Nie mogę tutaj wrzucać filmów, ale zapraszam do obejrzenia filmu na moim kanale by zobaczyć na żywo jak próbuję się zmagać z tym samym zestawem LINK.
Ponieważ osiągnąłem swój cel, warto by opisać program z jakiego skorzystałem
Program zaczyna się standardowo od definicji biblioteki oraz zdefiniowania ilości kroków na obrót (u mnie ta liczba jest totalnie z dupy, więc nie sugerować się tym XD )
Kolejnym krokiem jest definicja obiektu “Stepper”. Obiekt ten jest klasą, która definiuje nasz silnik. Przyjmuje ilość kroków na obrót, oraz definicję 4 pinów, które sterują kontrolerem ULN2003.
Następnie rozpoczyna się funkcja setup(), ustawiana jest prędkość silnika (ta wartość także jest z dupy 😛 ) oraz zaczyna się komunikacja po porcie szeregowym komputera (w moim przypadku nie używany, ale można sobie wejść w serial monitor I podpatrzeć co tam się dzieje)
Po funkcji setup(), jest wywoływana w nieskończoność funkcja loop()
Jej zadanie jest proste. Pokręcić silnikiem trochę w jedną stronę I trochę w drugą stronę.
I to w sumie wszystko. Chciałem pokręcić silnikiem I pokręciłem. Nie zapomnij zobaczyć filmu na moim kanale, w którym zmagam się z tym sterownikiem “na żywo”