- Silnik krokowy:
- Sterownik silnika krokowego ULN2003:
- Wymagane komponenty
- Schemat obwodu i wyjaśnienie
- Objaśnienie kodu
Silnik krokowy to specjalnie zaprojektowany silnik, który obraca się stopniowo. Prędkość silnika krokowego zależy od szybkości doprowadzanego do niego sygnału elektrycznego. Różne wzory mogą sterować kierunkiem i rodzajem obrotów silnika krokowego. Dostępne są głównie dwa typy silników krokowych, jednobiegunowy i bipolarny. Unipolar jest łatwiejszy w obsłudze, kontroli, a także łatwiejszy do zdobycia. Tutaj, w tym samouczku, łączymy silnik krokowy z mikrokontrolerem PIC PIC16F877A.
W tym projekcie używamy silnika krokowego 28BYJ-48, który jest tani i łatwo dostępny. Jest to jednobiegunowy silnik krokowy 5V DC. Używamy również modułu dostępnego z tym silnikiem, który zawiera układ scalony sterownika silnika krokowego ULN2003. ULN2003 to macierz par Darlingtona, która jest przydatna do napędzania tego silnika, ponieważ mikrokontroler PIC nie mógł zapewnić wystarczającej ilości prądu do sterowania. ULN2003A jest zdolny do kierowania 500mA obciążenia z 600mA prądu szczytowego.
Silnik krokowy:
Zobaczmy specyfikację silnika krokowego 28BYJ-48 z arkusza danych.
Jak obrócić silnik krokowy:
Jeśli zobaczymy arkusz danych, zobaczymy pinezkę.
Wewnątrz silnika dostępne są dwie cewki z gwintem centralnym. Czerwony przewód jest wspólny dla obu, które zostaną połączone w VCC lub 5V.
Pozostałe 4 przewody, różowy, czerwony, żółty i niebieski, będą sterować obrotami w zależności od sygnału elektrycznego. Ponadto, w zależności od ruchu, tym silnikiem można sterować w 3 krokach. Tryb pełny napęd, tryb Half napędu i tryb jazdy Wave.
Trzy tryby jazdy silnika krokowego:
Pełny napęd: Jeśli jednocześnie zasilane są dwa elektromagnesy stojana, silnik będzie pracował z pełnym momentem obrotowym, określanym jako tryb pełnej sekwencji napędu.
Krok |
niebieski |
Różowy |
Żółty |
Pomarańczowy |
1 |
1 |
1 |
0 |
0 |
2 |
0 |
1 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
1 |
0 |
0 |
1 |
Half-Drive: Kiedy naprzemiennie jedna i dwie fazy są zasilane, silnik będzie pracował w trybie połowicznej jazdy. Służy do zwiększenia rozdzielczości kątowej. Wadą jest mniejszy moment obrotowy wytwarzany w tym ruchu.
Krok |
niebieski |
Różowy |
Żółty |
Pomarańczowy |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
3 |
0 |
1 |
0 |
0 |
4 |
0 |
1 |
1 |
0 |
5 |
0 |
0 |
1 |
1 |
6 |
0 |
0 |
0 |
1 |
7 |
1 |
0 |
0 |
1 |
8 |
1 |
0 |
0 |
0 |
Napęd falowy: W tym trybie jeden elektromagnes stojana jest włączony. Jego następują 4 kroki takie same jak w trybie pełnego napędu. Zużywa małą moc przy niskim momencie obrotowym.
Krok |
niebieski |
Różowy |
Żółty |
Pomarańczowy |
1 |
1 |
0 |
0 |
0 |
2 |
0 |
1 |
0 |
0 |
3 |
0 |
0 |
1 |
0 |
4 |
0 |
0 |
0 |
1 |
Wcześniej połączyliśmy silnik krokowy z innymi mikrokontrolerami:
Silnik krokowy może być również sterowany bez mikrokontrolera, patrz ten obwód sterownika silnika krokowego.
Sterownik silnika krokowego ULN2003:
Rozumiemy płytkę wyłamywaną, która składa się z układu scalonego ULN2003. Ważne jest, aby zrozumieć pinezkę.
Żółty część służy do podłączenia silnika The Red część jest pokazanie zworkę, ważne jest, aby umieścić zworkę ponieważ umożliwi ochronę dioda gasząca silnika . Wejście różowy jest dla podłączenia mikrokontrolera.
Będziemy obracać silnik w trybie pełnego napędu w kierunku zgodnym z ruchem wskazówek zegara i ponownie obracać go w trybie falowania w kierunku przeciwnym do ruchu wskazówek zegara. Sprawdź film demonstracyjny na końcu.
Wymagane komponenty
- Pic16F877A
- Zestaw do programowania
- Płytka prototypowa
- Kryształ 20 Mhz
- Kondensator dyskowy 33pF - 2szt
- Rezystor 4,7 k
- Berg druty i szpilki
- Płytka łamana ULN2003A wraz z silnikiem krokowym 28BYJ-48.
- Dodatkowe przewody do podłączenia
- Zasilacz 5 V lub adapter ścienny o wartości 500 mA
Schemat obwodu i wyjaśnienie
Na schemacie obwodu, po lewej stronie pokazano PIC16F877A, a po prawej stronie pokazano połączenie ULN2003A. ULN2003 i część silnika krokowego znajdują się wewnątrz tablicy rozdzielczej.
Połączenie z tablicy Breakout do jednostki mikrokontrolera będzie:
A. IN1 => Pin33
B. IN2 => Pin34
C. IN3 => Pin35
D. IN4 => Pin36
Podłączyłem wszystkie komponenty i twój sprzęt do obracania Silnik krokowy z mikrokontrolerem PIC jest gotowy.
Jeśli dopiero zaczynasz korzystać z mikrokontrolera PIC, postępuj zgodnie z naszymi samouczkami dotyczącymi mikrokontrolera PIC, które zawierają informacje o rozpoczęciu pracy z mikrokontrolerem PIC.
Objaśnienie kodu
Pełny kod tego sterownika silnika krokowego opartego na PIC jest podany na końcu tego samouczka wraz z filmem demonstracyjnym. Jak zawsze najpierw musimy ustawić bity konfiguracyjne w mikrokontrolerze pic, a następnie zacząć od void main function.
Są to makra dla bitów konfiguracyjnych jednostki mikrokontrolera i plików nagłówkowych biblioteki.
# zdefiniować _XTAL_FREQ 200000000 // Częstotliwość kryształu, używana w opóźnieniu # zdefiniować prędkość 1 // Zakres prędkości 10 do 1 10 = najniższy, 1 = najwyższy # zdefiniować kroki 250 // jaki krok zajmie # zdefiniować zgodnie z ruchem wskazówek zegara 0 // zgodnie z ruchem wskazówek zegara makro #define anti_clockwise 1 // makro w kierunku przeciwnym do ruchu wskazówek zegara
W pierwszej linii zdefiniowaliśmy częstotliwość kryształu, która jest potrzebna w procedurze opóźnienia. Inne makra służą do definiowania opcji związanych z użytkownikiem.
Jeśli widzisz kod, są zdefiniowane trzy funkcje do sterowania silnikiem w trzech trybach z kierunkiem zgodnym z ruchem wskazówek zegara i przeciwnym. Oto trzy funkcje:
1. void full_drive (kierunek znaku)
2. void half_drive (kierunek znaków)
3. void wave_drive (kierunek znaku)
Sprawdź definicje tych funkcji w pełnym kodzie podanym poniżej:
Teraz w pustej funkcji głównej , napędzamy silnik zgodnie z ruchem wskazówek zegara, używając trybu pełnego napędu w zależności od kroków i po kilku sekundach opóźnienia ponownie obracamy silnik w kierunku przeciwnym do ruchu wskazówek zegara, używając trybu napędu falowego.
void main (void) { system_init (); while (1) { / * Steruj silnikiem w trybie pełnego napędu zgodnie z ruchem wskazówek zegara * / for (int i = 0; i
W ten sposób możemy obracać silnik krokowy za pomocą mikrokontrolera PIC. Silniki krokowe są bardzo przydatne w maszynach CNC, robotyce i innych wbudowanych aplikacjach.