28BYJ-48: Silniki krokowe są poręczne narzędzia w różnych urządzeń, ponieważ ich właściwości kontroli pozycji. Ta cecha oznacza, że silniki bezszczotkowe mogą podzielić swoje pełne cykle obrotowe na równe części lub kroki. Używają one koła zębatego i kilku elektromagnesów do obracania koła krok po kroku. Jednym z takich silników jest 28BYJ-48. Jest to jeden z najtańszych i najłatwiejszych w użyciu stepperów do nauki o rotacji krokowej. Przyjrzymy się szczegółowo temu silnikowi, a także temu, jak sterować nim za pomocą sterownika ULN2003 i płytki Arduino.
Czym jest silnik krokowy 28BYJ-48?
28BYJ-48 jest 4-fazowym, 5-przewodowym unipolarnym silnikiem krokowym. Jego zadaniem jest konwersja sygnałów elektrycznych do obrotu mechanicznego dyskretnie. Silnik obraca się w precyzyjnych, stałych krokach z kątem kroku 5,625° na krok, gdy jest zasilany impulsem elektrycznym. W trybie półkrokowym jego kąt skoku wynosi 5,625°/64, co oznacza, że do wykonania jednego obrotu potrzeba 64 kroków.
360°/5.625° = 64
W trybie pełnokrokowym liczba ta zmniejsza się o połowę do 32.
Silnik posiada cztery cewki umieszczone równomiernie wokół wirnika, tworzą one statyczny, nieruchomy stojan. Każda z nich ma napięcie znamionowe +5V, co ułatwia sterowanie za pomocą dowolnego mikrokontrolera tolerującego napięcie 5V, takiego jak Arduino.
Silnik krokowy 28BYJ-48 Specyfikacja techniczna
Napięcie znamionowe 5V DC
Cztery fazy
300 gf. cm ciągnąć w momencie obrotowym
600VAC/1mA/1s moc izolowana
5.625°/64 kąt skoku
Unipolarna cewka pięcioprzewodowa
Płyta sterownika ULN2003
Silniki 28BYJ-48 pobierają dużą ilość prądu, dlatego potrzebują sterownika takiego jak ULN2003 jako interfejsu pomiędzy nimi a Arduino. Składa się on z matrycy siedmiu par tranzystorów Darlingtona, gdzie drugi wzmacnia wyjście pierwszego.
Każdy tranzystor może napędzić obciążenie do 500mA i 50V.
Jeśli zasilasz cokolwiek, co zużywa więcej niż 80mA przy 5V, użyj płytki ze sterownikiem. Jednak przy zasilaniu silnika krokowego dowolnej wielkości, zawsze używaj płytki sterownika ULN2003. Dlaczego. Krokowiec może wywołać szum elektryczny w liniach zasilających, a ten szum może uszkodzić mikrokontroler Arduino.
Sterowanie silnikiem krokowym 28BYJ-48 za pomocą sterownika ULN2003 i Arduino
Potrzebujesz następujących elementów:
Silnik krokowy 28BYJ-48
Płytka sterownika ULN2003
Arduino UNO R3
Zworki męsko-żeńskie
Zasilacz 5V (adapter)
kabel USB
Arduino IDE
Okablowanie
Wykonaj te połączenia pomiędzy Arduino a sterownikiem.


Schemat układu Arduino UNO, ULN2003, silnik krokowy
Podepnij również adapter 5V do płytki sterownika i mikrokontrolera, jak pokazano na schemacie powyżej.
Kod
Po ustawieniu otwórz Arduino IDE i użyj biblioteki Arduino stepper do obsługi sekwencji krokowej. Biblioteka sterowania jest dołączona do IDE i ułatwia sterowanie unipolarnymi i bipolarnymi silnikami krokowymi.
Napisz następujący kod i załaduj go na płytkę Arduino, aby obrócić silnik powoli w prawo, a następnie w lewo.

Objaśnienia
Pierwsza linia zawiera bibliotekę Arduino stepper. Po niej definiujemy stałą, która określa liczbę kroków, jakie zajmie silnikowi wykonanie jednego obrotu.
Następnie utwórz obiekt klasy stepper, aby dopasować go do sekwencji kroków IN1, IN3, IN2, IN4 (sekwencja pinów 8, 10, 9, 11). Możesz utworzyć wiele obiektów, aby sterować kilkoma silnikami jednocześnie, ale pamiętaj o prawidłowej sekwencji kroków.
Biblioteka ustawia wewnętrznie cztery piny I/O jako wyjścia, więc nie ma potrzeby umieszczania żadnego kodu w funkcji setup. Na koniec funkcja loop obraca silnik zgodnie z ruchem wskazówek zegara i przeciwnie do ruchu wskazówek zegara w sposób ciągły. Ustawia ona prędkość, liczbę kroków oraz opóźnienie przed zmianą obrotów. Przekazanie ujemnego parametru do funkcji step odwraca kierunek wirowania.
28BYJ-48: Korzystanie z biblioteki AccelStepper
Chociaż można użyć biblioteki stepper do sterowania wieloma silnikami, biblioteka AccelStepper jest lepsza do tego zadania. Dodatkowo, obsługuje ona półkroki, przyspieszanie i zwalnianie oraz niezależne, współbieżne krokowanie na każdym krokowcu.
Musisz jednak najpierw zainstalować tę bibliotekę, ponieważ nie jest ona częścią IDE. Przejdź do Sketch > Dołącz bibliotekę > Zarządzaj bibliotekami. Wyszukaj bibliotekę AccelStepper i zainstaluj ją.
Następnie napisz poniższy kod w IDE i prześlij go do Arduino.

28BYJ-48: Objaśnienia
Zacznij od włączenia biblioteki, następnie zdefiniuj stałą dla metody półkrokowej lub pełnokrokowej (odpowiednio osiem i cztery). Następnie utwórz obiekt/instancję steppera z biblioteki i ustaw sekwencję pinów na 8, 10, 9, 11.
Po tym ustaw maksymalną prędkość na 1000 i współczynnik przyspieszenia 50, aby uwzględnić ruchy przyspieszające i zwalniające. Następnie ogranicz regularną szybkość do 200 i kroki na obrót do 2038.
Funkcja loop zaokrągla kod i zmienia kierunek wirowania, odczytując odległość do posesji, aż dojdzie do 2038 kroków. Gdy kierunek się zmieni, funkcja if sprawdza to samo i przełącza wirowanie po ujemnych 2038 krokach. Funkcja run jest kluczowa, ponieważ instruuje sterownik, aby uruchomić stepper.
28BYJ-48: Sterowanie dwoma silnikami krokowymi 28-BYJ48
Okablowanie dla pierwszego krokowca nie ulegnie zmianie. Będziesz jednak potrzebował dodatkowego sterownika i przewodów ze zworkami, aby połączyć silnik z Arduino i zasilaczem 5V.

Schemat Arduino UNO, dwa ULN2003, dwa silniki krokowe
Podłączamy je w następujący sposób.
Nadal korzystając z biblioteki AccelStepper, możesz użyć poniższego kodu, aby napędzić jeden silnik w połowie kroków, a drugi w pełnych stopniach.


Po włączeniu biblioteki, zdefiniuj stałe pełnego kroku i pół kroku, a następnie utwórz dwa obiekty silnika krokowego. Pamiętaj, aby użyć prawidłowej kolejności pinów, jak wyjaśniono wcześniej.
Funkcja setup służy do ustawienia maksymalnej prędkości, przyspieszenia, prędkości regularnej oraz liczby kroków na obrót dla każdego krokowca.
Zakończ funkcją loop, aby utrzymać silniki w ruchu, a następnie przełączyć ich kierunek wirowania po przesunięciu 2038 kroków w ich odpowiednich kierunkach.
Jaka jest różnica między silnikami krokowymi a standardowymi silnikami DC?
Jeśli nie jesteś pewien, którego silnika użyć do swojego projektu, tutaj znajdziesz szczegółowe porównanie między standardowymi silnikami DC i silnikami krokowymi.

28BYJ-48: Jaka jest różnica między silnikami krokowymi a serwomotorami?
Oto jak silnik krokowy układa się przed serwomotorem.

Kiedy chciałbym wybrać silnik krokowy nad innymi typami
Silnik krokowy 28BYJ-48 ma następujące zalety w stosunku do standardowych silników DC i serwomotorów.
: Jedną z najlepszych zalet silników krokowych jest ich precyzyjne pozycjonowanie, ponieważ obracają się one w krokach.
: Kontrolowany ruch krokowy daje precyzyjną kontrolę prędkości, co czyni silnik idealnym dla robotyki, automatyzacji procesów, itp.
: Silnik jest idealny dla wolnych prędkości (mniej niż 2000 RPM), ponieważ ma wysoki moment obrotowy na tych poziomach.
: Sterowanie silnikami krokowymi za pomocą Arduino lub innego mikrokontrolera jest stosunkowo proste, co jest jednym z podstawowych powodów ich ciągłego stosowania
: Silniki te są mniej kosztowne i mogą pomóc Ci zrealizować lepsze oszczędności w Twoim projekcie
: Jak silniki DC, ten typ jest szeroko dostępny i pochodzi w wielu stylach i rozmiarach
28BYJ-48: Zastosowania silnika krokowego
Frezarki CNC
Precyzyjne maszyny sterujące
Odtwarzacze DVD
Drukarki 3D

Drukarka 3D z silnikiem krokowym
Przechylanie lusterka bocznego w samochodzie
Kamery bezpieczeństwa
Automaty sprzedające
Drukarki biurkowe
Podsumowanie
Podsumowując, silnik krokowy 28BYJ-48 jest jednym z najtańszych silników krokowych i ma liczne zastosowania w pojazdach, urządzeniach elektrycznych i kilku maszynach. Możesz go kontrolować za pomocą Arduino (co zostało szczegółowo wyjaśnione wcześniej), a jeśli napotkasz jakieś trudności, sięgnij po dalsze wyjaśnienia.