- Silniki krokowe:
- Obliczanie liczby kroków na obrót dla silnika krokowego:
- Dlaczego potrzebujemy modułów sterowników do silników krokowych?
- Schemat obwodu sterowania pozycją silnika krokowego Arduino i objaśnienie:
- Kod dla płytki Arduino:
- Praca silnika krokowego z Arduino:
Silniki krokowe coraz częściej zajmują swoją pozycję w świecie elektroniki. Począwszy od zwykłej kamery monitorującej po skomplikowane maszyny CNC / robota, te silniki krokowe są używane wszędzie jako siłowniki, ponieważ zapewniają dokładne sterowanie. Silnik krokowy to bezszczotkowy silnik synchroniczny, który wykonuje pełny obrót w kilku krokach. W tym samouczku dotyczącym silnika krokowego Arduino dowiemy się o najczęściej dostępnym silniku krokowym 28-BYJ48 i jak połączyć go z Arduino za pomocą modułu silnika krokowego ULN2003.
Silniki krokowe:
Rzućmy okiem na ten silnik krokowy 28-BYJ48.
Ok, więc w przeciwieństwie do normalnego silnika prądu stałego ten ma pięć przewodów we wszystkich fantazyjnych kolorach i dlaczego tak jest? Aby to zrozumieć, musimy najpierw wiedzieć, jak działa stepper i jaka jest jego specjalność. Przede wszystkim silniki krokowe nie obracają się, ale kroczą, dlatego nazywane są silnikami krokowymi. Oznacza to, że będą poruszać się tylko o jeden krok na raz. Silniki te mają sekwencję cewek obecnych w nich i te cewki muszą być zasilane w określony sposób, aby silnik mógł się obracać. Kiedy każda cewka jest zasilana, silnik wykonuje krok, a sekwencja zasilania sprawi, że silnik będzie wykonywał ciągłe kroki, powodując tym samym obrót. Przyjrzyjmy się cewkom znajdującym się wewnątrz silnika, aby dokładnie wiedzieć, skąd pochodzą te przewody.
Jak widać, silnik ma jednobiegunową 5-przewodową cewkę. Istnieją cztery cewki, które muszą być zasilane w określonej kolejności. Czerwone przewody będą zasilane napięciem + 5 V, a pozostałe cztery przewody zostaną podciągnięte do masy w celu wyzwolenia odpowiedniej cewki. Używamy mikrokontrolera, takiego jak Arduino, zasilamy te cewki w określonej kolejności i sprawiamy, że silnik wykonuje wymaganą liczbę kroków.
Dlaczego więc ten silnik nazywa się 28-BYJ48 ? Poważnie!!! Nie wiem Nie ma żadnego technicznego powodu, aby ten silnik został nazwany tak; może powinniśmy zagłębić się w to znacznie głębiej. Przyjrzyjmy się niektórym z ważnych danych technicznych uzyskanych z arkusza danych tego silnika na poniższym obrazku.
To głowa pełna informacji, ale musimy przyjrzeć się kilku ważnym, aby wiedzieć, jakiego typu steppera używamy, abyśmy mogli go efektywnie zaprogramować. Najpierw wiemy, że jest to silnik krokowy 5 V, ponieważ zasilamy czerwony przewód napięciem 5 V. Wtedy też wiemy, że jest to czterofazowy silnik krokowy, ponieważ miał w nim cztery cewki. Teraz przełożenie wynosi 1:64. Oznacza to, że wał, który widzisz na zewnątrz, wykona jeden pełny obrót tylko wtedy, gdy silnik wewnątrz obróci się 64 razy. Dzieje się tak z powodu kół zębatych, które są połączone między silnikiem a wałem wyjściowym, te koła zębate pomagają w zwiększaniu momentu obrotowego.
Kolejną ważną informacją, na którą należy zwrócić uwagę, jest kąt kroku: 5,625 ° / 64. Oznacza to, że silnik pracujący w 8-stopniowej sekwencji przesunie się o 5,625 stopnia na każdy krok i będzie wymagał 64 kroków (5,625 * 64 = 360), aby wykonać jeden pełny obrót. Możesz dowiedzieć się więcej o pracy silników krokowych z ARM LPC2148, mikrokontrolerem ATMega16, MSP430.
Obliczanie liczby kroków na obrót dla silnika krokowego:
Ważne jest, aby wiedzieć, jak obliczyć liczbę kroków na obrót silnika krokowego, ponieważ tylko wtedy można go skutecznie zaprogramować.
W Arduino będziemy obsługiwać silnik w sekwencji 4-stopniowej, więc kąt kroku będzie wynosił 11,25 °, ponieważ wynosi 5,625 ° (podane w arkuszu danych) dla sekwencji 8-stopniowej będzie to 11,25 ° (5,625 * 2 = 11,25).
Kroki na obrót = 360 / kąt kroku
Tutaj 360 / 11,25 = 32 kroki na obrót.
Dlaczego potrzebujemy modułów sterowników do silników krokowych?
Większość silników krokowych będzie działać tylko z pomocą modułu sterownika. Dzieje się tak, ponieważ moduł kontrolera (w naszym przypadku Arduino) nie będzie w stanie dostarczyć wystarczającej ilości prądu ze swoich pinów I / O do pracy silnika. Więc użyjemy zewnętrznego modułu, takiego jak moduł ULN2003, jako sterownika silnika krokowego. Istnieje wiele typów modułów sterownika, a wartość jednego z nich zmienia się w zależności od typu używanego silnika. Podstawową zasadą dla wszystkich modułów sterownika będzie dostarczanie / odprowadzanie prądu wystarczającego do działania silnika.
Schemat obwodu sterowania pozycją silnika krokowego Arduino i objaśnienie:
Schemat obwodu dla projektu sterowania silnikiem krokowym arduino pokazano powyżej. Użyliśmy silnika krokowego 28BYJ-48 i modułu sterownika ULN2003. Do zasilania czterech cewek silnika krokowego używamy pinów cyfrowych 8,9,10 i 11. Moduł sterownika jest zasilany przez pin 5V płytki Arduino.
Ale zasilaj sterownik zewnętrznym źródłem zasilania, gdy podłączasz trochę obciążenia do silnika krokowego. Ponieważ używam silnika tylko do celów demonstracyjnych, użyłem szyny + 5V płytki Arduino. Pamiętaj również o połączeniu masy Arduino z masą modułu Diver.
Kod dla płytki Arduino:
Zanim zaczniemy programować z naszym Arduino, zrozumiemy, co właściwie powinno się wydarzyć w programie. Jak wspomniano wcześniej, będziemy używać 4-krokowej metody sekwencji, więc będziemy mieć do wykonania cztery kroki, aby wykonać jeden pełny obrót.
Krok |
Pin Pod napięciem |
Cewki pod napięciem |
Krok 1 |
8 i 9 |
A i B |
Krok 2 |
9 i 10 |
B i C |
Krok 3 |
10 i 11 |
C i D. |
Krok 4 |
11 i 8 |
D i A. |
Moduł Driver będzie miał cztery diody LED, za pomocą których możemy sprawdzić, która cewka jest w danym momencie zasilana. Film przedstawiający sekwencję zasilania można znaleźć na końcu tego samouczka.
W tym samouczku napiszemy kod silnika krokowego arduino iw tym celu zaprogramujemy Arduino w taki sposób, abyśmy mogli wprowadzić liczbę kroków, które ma wykonać silnik krokowy poprzez szeregowy monitor Arduino. Cały program można znaleźć na końcu samouczka. Kilka ważnych wierszy zostało wyjaśnionych poniżej.
Obliczono, że liczba kroków na obrót naszego silnika krokowego wynosi 32; dlatego wpisujemy to, jak pokazano w linii poniżej
# zdefiniować KROKI 32
Następnie musisz stworzyć instancje, w których określimy piny, do których podłączyliśmy silnik krokowy.
Stepper stepper (STEPS, 8, 10, 9, 11);
Uwaga: liczba pinów jest celowo nieuporządkowana jako 8,10,9,11. Musisz postępować zgodnie z tym samym wzorem, nawet jeśli zmienisz styki, do których podłączony jest twój silnik.
Ponieważ korzystamy z biblioteki stepperów Arduino, możemy ustawić prędkość silnika za pomocą poniższej linii. Prędkość może wynosić od 0 do 200 dla silników krokowych 28-BYJ48.
stepper.setSpeed (200);
Teraz, aby silnik poruszył się o jeden krok, możemy użyć następującego wiersza.
stepper.step (val);
Liczba stopni do przeniesienia będzie podana przez zmienną „val”. Ponieważ mamy 32 kroki i 64 jako przełożenie, musimy przesunąć 2048 (32 * 64 = 2048), aby wykonać jeden pełny obrót.
Wartość zmiennej „val” może być wprowadzona przez użytkownika za pomocą monitora szeregowego.
Praca silnika krokowego z Arduino:
Po nawiązaniu połączenia sprzęt powinien wyglądać mniej więcej tak, jak na poniższym obrazku.
Teraz prześlij poniższy program do swojego Arduino UNO i otwórz monitor szeregowy. Jak wspomniano wcześniej, będziemy musieli wykonać 2048 kroków, aby wykonać jeden pełny obrót, więc kiedy wprowadzimy 2048, silnik wykona jeden pełny obrót w kierunku zgodnym z ruchem wskazówek zegara, wykonując 2048 kroków. Aby obrócić przeciwnie do ruchu wskazówek zegara, po prostu wprowadź liczbę ze znakiem minus „-”. Zatem wpisanie -1024 spowoduje, że silnik obróci się o połowę w kierunku przeciwnym do ruchu wskazówek zegara. Możesz wprowadzić dowolne żądane wartości, np. Wprowadzenie 1 spowoduje, że silnik wykona tylko jeden krok.
Mam nadzieję, że rozumiesz projekt i cieszysz się jego budowaniem. Pełne działanie projektu pokazano na poniższym filmie. Jeśli masz jakiekolwiek wątpliwości, opublikuj je w sekcji komentarzy poniżej naszego na naszych forach.