Spisu treści:
- Krok 1: Lista części
- Krok 2: Główne części
- Krok 3: Niech to działa
- Krok 4: Kontrola prędkości
- Krok 5: Start / Stop
- Krok 6: Kontrola kierunku
- Krok 7: Wnioski
Wideo: Prowadzenie silnika krokowego bez mikrokontrolera: 7 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
W tym Instruktażu będę jeździł silnikiem krokowym 28-BYJ-48, z płytą tablicy darlington UNL2003, czasami nazywaną x113647, bez mikrokontrolera.
Będzie miał start/stop, przód/tył i kontrolę prędkości.
Silnik jest jednobiegunowym silnikiem krokowym z 2048 krokami na obrót w trybie pełnego kroku. Arkusz danych silnika znajduje się pod adresem
Oba urządzenia można kupić razem od kilku sprzedawców. Mam swoją z kjell.com
Bing lub google, aby znaleźć dostawcę w pobliżu.
Najpierw przejdę przez kilka kroków i części potrzebnych do uruchomienia, a następnie dodam kilka kroków i części, aby uzyskać większą kontrolę.
Powinieneś być ostrzeżony, że części, których używam, to te, które przypadkiem mam w mojej skrzyni skarbów, a niekoniecznie części najlepiej nadające się do tego celu.
Powinieneś również zostać ostrzeżony, że to jest mój pierwszy Instruktaż i że jestem całkiem nowy w elektronice.
Proszę o komentarze, jeśli uważasz, że zrobiłem coś, czego nie powinienem lub jeśli masz sugestie dotyczące ulepszeń lub sugestie dotyczące lepiej dopasowanych części.
Krok 1: Lista części
Części użyte do tego projektu to
- Deska do krojenia chleba
- Silnik krokowy 28byj-48
- Tablica tranzystorowa Darlington ULN2003 (x113647)
- 74HC595 rejestr przesuwny
- 74HC393 binarny licznik tętnień
- Potencjometr cyfrowy Dallastat DS1809-100
- 74HC241 ósemkowy bufor
- 3 × przyciski dotykowe
- Rezystory 3 × 10kΩ
- Kondensatory ceramiczne 2 × 0,1 µF
- Kondensator ceramiczny 1 × 0,01 µF
- Przewody połączeniowe
- Zasilanie 5V
Krok 2: Główne części
Rejestr przesuwny 74HC595
Silnik jest poruszany poprzez wielokrotne nadawanie czterem pinom wejściowym płyty UNL2003 następującej sekwencji:
1100-0110-0011-1001
Spowoduje to napęd silnika w tak zwanym trybie pełnego kroku. Wzór 1100 jest wielokrotnie przesuwany w prawo. Sugeruje to rejestr przesuwny. Sposób działania rejestru przesuwnego polega na tym, że w każdym cyklu zegara bity w rejestrze przesuwają się o jedno miejsce w prawo, zastępując skrajny lewy bit wartością pinu wejściowego w tym czasie. Dlatego powinien być zasilany dwoma cyklami zegarowymi o wartości 1, a następnie dwoma cyklami zegarowymi o wartości 0, aby wygenerować wzór do nurkowania z silnikiem.
Do generowania sygnałów zegarowych potrzebny jest oscylator, który generuje stałą serię impulsów, najlepiej czystą falę prostokątną. Stworzy to podstawę przesuwania się ścieżki sygnałów do silnika.
Aby wygenerować „dwa cykle jednego, a następnie dwa cykle 0”, używane są przerzutniki.
Mam rejestr przesuwny 74HC595. Jest to bardzo popularny chip, opisany w wielu instrukcjach i filmach na Youtube.
Arkusz danych można znaleźć na stronie
Fajny Instructable to 74HC595-Shift-Register-Demistified by bweaver6, Rejestr przesuwny 74HC595 działa tak, że w każdym cyklu zegara dane w jego 8-bitowym rejestrze są przesuwane w prawo, a także przesuwając wartość pinu wejściowego w skrajnej lewej pozycji. Dlatego powinien być zasilany dwoma cyklami zegara po 1, a następnie dwoma cyklami zegara po 0.
Dane są przesuwane na zboczu narastającym impulsu zegarowego. Zatem przerzutnik powinien przełączać się przy opadającej krawędzi zegara, więc 74HC595 będzie miał stabilne dane wejściowe przy wznoszącej się krawędzi zegara.
74HC595 w można podłączyć w następujący sposób:
Pin 8 (GND) -> GND
Pin 16 (VCC) -> 5V Pin 14 (SER) -> Dane w Pin 12 (RCLK) -> Wejście zegara Pin 11 (SRCLK) -> Wejście zegara Pin 13 (OE) -> GND Pin 10 (SRCRL) -> 5 V Piny 15 i 1-3 wyprowadzą wzór do napędzania silnika.
Połączenie RCLK i SRCLK zapewnia, że rejestr danych chipa jest zawsze zsynchronizowany z rejestrem wyjściowym. Umieszczenie pinu 13 na ziemi sprawia, że zawartość rejestru wyjściowego jest natychmiast widoczna dla pinów wyjściowych (Q0 - Q7).
Zegar 555
Do wygenerowania impulsu zegarowego można użyć układu czasowego 555. Jest to również bardzo popularny układ scalony i jest jeszcze bardziej opisany i omówiony niż rejestr przesuwny. Wikipedia ma fajny artykuł na
Arkusz danych znajduje się tutaj:
Układ ten może, między innymi, generować impuls zegarowy o fali prostokątnej. Zewnętrzne rezystory i kondensatory służą do sterowania częstotliwością i cyklem pracy (na ułamek).
Po ustawieniu na wielokrotne generowanie impulsów, układ 555 mówi się, że jest w trybie astabilnym. Odbywa się to poprzez okablowanie jak na powyższym obrazku. (zdjęcie jjbeard [domena publiczna], za pośrednictwem Wikimedia Commons):
Pin 1 -> GND
Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 to wyjście Pin 4 (reset) -> 5 V Pin 5 -> 0,01 µF -> GND Pin 6 -> 0,1 µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V
Wyjście Pin 3 zostanie podłączone do pinów zegara wejściowego (Pin 11 i Pin 12) rejestru przesuwnego 74HC595.
Częstotliwość sygnału wyjściowego (a tym samym prędkość silnika krokowego) jest określona przez wartości rezystorów R1 i R2 oraz wartość kondensatora C.
Czas cyklu T będzie wynosił ln(2) C (R1 + 2 R2) lub około 0,7 C (R1 + 2 R2). Częstotliwość wynosi 1/T.
Współczynnik wypełnienia, ułamek czasu cyklu, w którym sygnał jest wysoki, wynosi (R1 + R2) / (R1 + 2R2). Współczynnik wypełnienia nie jest bardzo ważny dla tego projektu.
Używam 10kΩ, zarówno dla R1 i R2 oraz C = 0,1µF.
Daje to częstotliwość około 480 Hz i jest blisko maksymalnej częstotliwości, którą odkryłem, że silnik krokowy może poradzić sobie bez gaśnięcia.
Aby wygenerować przesunięty, powtarzający się wzór 1100 z 74HC595, pin 14 (SER) powinien być utrzymywany na wysokim poziomie przez dwa cykle zegara, a następnie na niskim poziomie przez dwa cykle zegara wielokrotnie. Oznacza to, że pin powinien oscylować z połową częstotliwości zegara.
Podwójny binarny licznik tętnień 74HC393
74HC393 zliczają binarnie, co oznacza również, że można go wykorzystać do dzielenia częstotliwości impulsów przez potęgi dwójki, Jego karta katalogowa znajduje się tutaj:
74HC393 jest podwójny, ma jeden 4-bitowy licznik z każdej strony.
Na opadającym zboczu impulsu zegarowego pierwszy pin wyjściowy włącza się i wyłącza. Stąd pierwszy pin wyjściowy będzie oscylował z połową częstotliwości zegara wejściowego. Na opadającej krawędzi pierwszego pinu wyjściowego pin wyjściowy dwa włącza się i wyłącza. I tak dalej dla wszystkich czterech pinów wyjściowych. Za każdym razem, gdy pin n się wyłączy, pin n+1 przełącza.
Pin n+1 zmienia się o połowę rzadziej niż pin n. To jest liczenie binarne. Licznik może liczyć do 15 (wszystkie cztery bity 1), zanim ponownie zacznie od zera. Jeśli ostatni pin wyjściowy licznika 1 jest podłączony jako zegar do licznika 2, może on liczyć do 255 (8 bitów).
Aby wytworzyć impuls o połowie częstotliwości zegara wejściowego, potrzebny jest tylko pin wyjściowy 1. Oznacza to, że liczy się tylko od zera do jednego.
Tak więc, jeśli zliczanie odbywa się za pomocą impulsu zegarowego z 555, pin licznika 74HC393 reprezentujący bit 2 będzie oscylował z połową częstotliwości zegara. W związku z tym można go podłączyć do pinu SER rejestru przesuwnego 74HC595, aby wygenerować pożądany wzór.
Okablowanie licznika binarnego 74HC393 powinno być:
Pin 1 (1CLK) -> 74HC595 Pin 11, 12 i 555 Pin 3
Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (nie używany) Pin 12 (2CLR)) -> 5V (nieużywane)
Krok 3: Niech to działa
Teraz możemy uruchomić silnik, jeśli piny 0-3 74HC595 są podłączone odpowiednio do pinów 1-4 płyty ULN2003.
Na razie zamień kondensator 0,1 µF na styku 6 timera 555 na 10 µF. To sprawi, że cykl zegara będzie sto razy dłuższy i będzie można zobaczyć, co się dzieje.
Można do tego wykorzystać diody LED na płytkach ULN2003. Odłącz silnik od płyty ULN2003. Połącz styki 1 do 4 płyty z wyjściem QA-QD (styki 7, 9, 10 i 11) 74HC595. Podłącz - i + płyty ULN2003 do masy i 5V. Jeśli zasilanie jest włączone, powinieneś zobaczyć pożądany wzór na diodach LED.
Jeśli chcesz zobaczyć, co się dzieje w liczniku binarnym 74HC393, podłącz zamiast tego piny 3-6 tego licznika.
Jeśli wzór wydaje się prawidłowy, wyłącz zasilanie, ponownie wymień kondensator na 0,1 µF, podłącz styki wejściowe 1 - 4 płyty ULN2003 do styków wyjściowych QA - QD 74HC595 i ponownie podłącz silnik.
Przy włączonym zasilaniu silnik powinien teraz pracować.
Krok 4: Kontrola prędkości
Prędkość silnika krokowego jest regulowana przez częstotliwość wyjścia timera 555. To znowu jest regulowane przez wartości rezystorów R1 i R2 oraz podłączonego do niego kondensatora C1. Po podłączeniu potencjometru 100kΩ szeregowo z R2 częstotliwość może mieścić się w zakresie od 480Hz do 63Hz. Kroki pr. sekunda silnika będzie równa połowie częstotliwości timera 555.
Użyłem potencjometru cyfrowego DS1809-100, który jest przeznaczony do użycia z przyciskiem. Przyciski łączące pin 2 (UC) i pin 7 (DC) z napięciem 5V powodują wzrost/zmniejszenie rezystancji między zaciskami RH (Pin 1) lub RL (Pin 4), a pinem 6 (RW) wycieraczki. Przytrzymanie przycisku dłużej niż sekundę powoduje automatyczne powtórzenie przycisku.
Arkusz danych można znaleźć tutaj:
Okablowanie wygląda tak:
Pin 1 (RH) nieużywany
styk 2 (UC) -> przycisk dotykowy 1 styk 3 (STR) -> masa styk 4 (RL) -> 555 styk 2 styk 5 -> masa styk 6 (RW) -> 10 kΩ -> 555 styk 7 styk 7 (DC) -> przycisk dotykowy 2 pin 8 -> 5V
Okablowanie przycisku dotykowego 1:
Pin 1/2 -> DS1809 Pin 2
Pin 3/4 -> 5V
Okablowanie przycisku dotykowego 2:
Pin 1/2 -> DS1809 Pin 7
Pin 3/4 -> 5V
Teraz prędkość można regulować.
Krok 5: Start / Stop
Aby uruchomić i zatrzymać silnik krokowy, można wykorzystać pin 4 (styk resetowania) timera 555. Jeśli to jest niskie, nie będzie impulsów wyjściowych z pinu 3.
Dotykowy przycisk będzie używany do przełączania uruchamiania i zatrzymywania. Jednokrotne naciśnięcie przycisku powinno uruchomić silnik, a ponowne naciśnięcie powinno go zatrzymać. Aby uzyskać takie zachowanie, potrzebny jest flip-flop. Ale 74HC393, który już tam jest, również może być użyty. 74HC393 składa się z dwóch części, a tylko jedna połowa jest używana jako dzielnik częstotliwości dla impulsu zegarowego.
Ponieważ licznik binarny jest w rzeczywistości tylko zestawem przełączających przerzutników w serii, można użyć pierwszego przerzutnika drugiej części. Podłączając przycisk dotykowy tak, że Pin 13 (2CLK) jest niski, gdy przycisk jest wciśnięty, a wysoki, jeśli nie, Pin 12 przełącza się na każdym niskim. Połączenie pinu 12 z pinem 4 555 uruchomi i zatrzyma jego wyjście, a tym samym silnik.
Przyciski dotykowe są nieco skomplikowane, ponieważ są mechaniczne. Mogą „odbić”, to znaczy mogą wysyłać wiele sygnałów przy każdym naciśnięciu. Podłączenie kondensatora 0,1 µF do przycisku pomaga tego uniknąć.
Tak więc przycisk dotykowy (przycisk 3 został dodany, a połączenie z pinem 4 555 zostało zmienione.
Okablowanie przycisku:
Pin 1/2 -> 10kΩ -> 5V
Pin 1/2 -> 0.1µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)
W 555 wprowadzono następujące zmiany:
Pin 4 (Reset) -> 74HC393 Pin 11 (2QA)
Przycisk 3 powinien teraz działać jako przełącznik start/stop.
Zauważ, że silnik zatrzymany w ten sposób nadal będzie zużywał energię.
Krok 6: Kontrola kierunku
Aby sterować kierunkiem silnika, potrzebny jest kolejny przycisk, a następnie kolejny flip-flop. Jednak oszukam, używając następnego flip-flopa 74HC393, po przerzuceniu on/off flip i przycisku on/off.
Gdy pin kierunkowy (Pin 2QA) przechodzi w stan niski, przełączany jest następny pin (Pin 2QB). Dlatego wielokrotne naciskanie przycisku spowoduje WYŁĄCZENIE - WŁĄCZENIE DO PRZODU - WYŁĄCZENIE - WŁĄCZENIE DO TYŁU - WYŁĄCZENIE - WŁĄCZENIE DO PRZODU itp.
Aby silnik pracował do tyłu, wzorzec podawany do ULN2003 powinien zostać odwrócony. Można to zrobić za pomocą dwukierunkowego rejestru przesuwnego, ale nie mam takiego. 74HC595 nie jest dwukierunkowy.
Jednak odkryłem, że mogę użyć mojego bufora ósemkowego 74HC241. Ten bufor ma dwie 4-bitowe części, z oddzielnymi pinami OE (aktywacja wyjścia). Pierwszy pin OE steruje czterema pierwszymi pinami wyjściowymi, a drugi ostatnimi czterema pinami wyjściowymi. Gdy OE jest włączone, styki wyjściowe mają taką samą wartość jak odpowiednie styki wejściowe, a gdy jest wyłączone, styki wyjściowe będą w stanie wysokiej impedancji, tak jakby nie były podłączone. Co więcej, jeden z pinów OE jest aktywny w stanie niskim, a drugi w stanie wysokim, więc przy łączeniu ich ze sobą w danym momencie aktywna będzie tylko połowa bufora.
Tak więc dla tego samego wejścia jedna połowa bufora może napędzać silnik do przodu, a druga połowa do tyłu. Która połowa jest aktywna, zależy od wartości pinów OE.
Arkusz danych dla 74HC241 można znaleźć na stronie
Okablowanie może wyglądać tak:
Pin 1 (1OE) -> 74HC293 Pin 10 (2QB)
Pin 2 (1A1) -> 74HC595 Pin 15 Pin 3 (1Y4) -> ULN2003 Pin 1 Pin 4 (1A2) -> 74HC595 Pin 1 Pin 5 (1Y3) -> ULN2003 Pin 2 Pin 6 (1A3) -> 74HC595 Pin 2 Pin 7 (1Y2) -> ULN2003 Pin 3 Pin 8 (1A4) -> 74HC595 Pin 3 Pin 9 (1Y1) -> ULN2003 Pin 4 Pin 10 (GND) -> Uziemienie Pin 11 (2A1) -> Pin 2 (1A1) Pin 12 (1Y4) -> Pin 9 (2Y1) Pin 13 (2A2) -> Pin 4 (1A2) Pin 14 (1Y3) -> Pin 7 (2Y2) Pin 15 (2A3) -> Pin 6 (1A3) Pin 16 (1Y2) -> Pin 5 (2Y3) Pin 17 (2A3) -> Pin 8 (1A4) Pin 18 (1Y2) -> Pin 3 (2Y4) Pin 19 (2OE) -> Pin 1 (1OE) Pin 20 (VCC) -> 5V
Teraz okablowanie powinno być ukończone poprzez włączenie zasilania 5 V. Upewnij się, że zasilacz może dostarczyć wystarczający prąd do napędzania zarówno silnika, jak i obwodów.
Krok 7: Wnioski
Silnik krokowy może być sterowany bez mikrokontrolera.
Użyte tutaj układy scalone były tymi, które miałem wcześniej. Większość z nich nie jest do tego optymalna i można zastosować kilka alternatyw.
- Aby wygenerować impulsy, chip zegarowy 555 jest dobrym wyborem, ale istnieje kilka alternatyw, np. ta opisana w tej instrukcji.
- Do regulacji prędkości można użyć dowolnego potencjometru, nie tylko cyfrowego. Jeśli masz potencjometr 10kΩ zamiast 100kΩ, rezystory 10kΩ można zastąpić 1KΩ, a kondensator 0,1 µF kondensatorem 1µF (podziel wszystkie rezystory i pomnóż kondensator o tej samej liczbie, aby zachować taktowanie).
- Za pomocą dwukierunkowego rejestru przesuwnego, np. 74HC194 ułatwiłby kontrolę kierunku.
- Do sterowania przyciskami 74HC393 można było zastąpić flip-flopem, np. 74HC73. 555 może być również podłączony do działania jako przełącznik.
Zalecana:
Podnoszenie silnika krokowego sterowanego podczerwienią: 15 kroków
Sterowany na podczerwień podnośnik silnika krokowego: Musiałem zautomatyzować podnoszenie dużego obrazu, który ukrywa telewizor zamontowany nad kominkiem. Obraz jest zamontowany na niestandardowej przesuwnej stalowej ramie, która wykorzystuje liny, krążki i przeciwwagi, dzięki czemu można go podnieść ręcznie. W teorii brzmi to dobrze, ale w tym
Raspberry Pi, Python i sterownik silnika krokowego TB6600: 9 kroków
Raspberry Pi, Python i sterownik silnika krokowego TB6600: Ten Instruktaż postępuje zgodnie z krokami, które podjąłem, aby podłączyć Raspberry Pi 3b do sterownika silnika krokowego TB6600, zasilacza 24 VDC i 6-przewodowego silnika krokowego. Prawdopodobnie jestem jak wielu z was i przypadkiem mam „torbę do chwytania”; pozostałego par
Jak korzystać z silnika krokowego 28BYJ-48 z 3 przyciskami: 5 kroków
Jak używać silnika krokowego 28BYJ-48 z 3 przyciskami: Czy chcesz sterować silnikiem krokowym za pomocą przycisków? Co może zrobić zgodnie z ruchem wskazówek zegara, przeciwnie do ruchu wskazówek zegara, a następnie zatrzymać funkcję? W takim razie ten film jest dla Ciebie
Użyj silnika krokowego jako enkodera obrotowego: 9 kroków (ze zdjęciami)
Użyj silnika krokowego jako enkodera obrotowego: Enkodery obrotowe doskonale nadają się do stosowania w projektach mikrokontrolerów jako urządzenie wejściowe, ale ich wydajność nie jest zbyt płynna i zadowalająca. Poza tym, mając dużo zapasowych silników krokowych, postanowiłem nadać im cel. Więc jeśli masz trochę steppera
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: 6 kroków
Jak używać silnika krokowego jako enkodera obrotowego i wyświetlacza OLED dla kroków: W tym samouczku dowiemy się, jak śledzić kroki silnika krokowego na wyświetlaczu OLED. Obejrzyj film demonstracyjny.Kredyt samouczka oryginalnego trafia do użytkownika YouTube „sky4fly”