Obsah:

Řízení krokového motoru bez mikrokontroléru: 7 kroků
Řízení krokového motoru bez mikrokontroléru: 7 kroků

Video: Řízení krokového motoru bez mikrokontroléru: 7 kroků

Video: Řízení krokového motoru bez mikrokontroléru: 7 kroků
Video: Krokový motor se zpětnou vazbou Ezi Servo - rotační stůl 2024, Listopad
Anonim
Image
Image

V tomto Instructable budu řídit krokový motor 28-BYJ-48 s deskou pole UNL2003 darlington, někdy nazývanou x113647, bez mikrořadiče.

Bude mít start/stop, dopředu/dozadu a ovládání rychlosti.

Motor je unipolární krokový motor s 2048 kroky na otáčku v režimu plného kroku. Datový list motoru je k dispozici na adrese

Obě zařízení lze zakoupit společně od několika prodejců. Svůj jsem dostal z kjell.com

Bing nebo google to najít dodavatele ve vašem okolí.

Nejprve si projdu některé kroky a části potřebné k jeho spuštění a poté přidám několik kroků a částí pro větší kontrolu.

Měli byste být upozorněni, že části, které používám, jsou ty, které mám náhodou ve své pokladnici, a ne nutně části, které jsou pro tento účel nejvhodnější.

Také byste měli být varováni, že toto je můj první Instructable a že jsem v elektronice docela nový.

Přidejte komentáře, pokud si myslíte, že jsem udělal něco, co bych neměl, nebo pokud máte návrhy na vylepšení nebo návrhy na lépe vyhovující díly.

Krok 1: Seznam dílů

Hlavní části
Hlavní části

Díly použité pro tento projekt jsou

  • Prkénko
  • Krokový motor 28byj-48
  • Deska Darlingtonova tranzistorového pole ULN2003 (x113647)
  • Posuvný registr 74HC595
  • 74HC393 binární čítač zvlnění
  • DS1809-100 Digitální potenciometr Dallastat
  • Octal buffer 74HC241
  • 3 × hmatová tlačítka
  • Rezistory 3 × 10 kΩ
  • 2 × 0,1 µF keramické kondenzátory
  • 1 × 0,01 µF keramický kondenzátor
  • Připojovací vodiče
  • Napájení 5V

Krok 2: Hlavní části

Hlavní části
Hlavní části

Posuvný registr 74HC595

Motor se pohybuje opakovaným dáváním čtyř vstupních pinů desky UNL2003 této posloupnosti:

1100-0110-0011-1001

To bude pohánět motor v takzvaném režimu plného kroku. Vzor 1100 je opakovaně posunut doprava. To naznačuje posuvný registr. Způsob, jakým funguje posuvný registr, je v každém hodinovém cyklu, že bity v registru se posunou o jedno místo doprava a nahradí bit úplně vlevo hodnotou vstupního pinu v daném okamžiku. Proto by měl být napájen dvěma hodinovými cykly 1 a poté dvěma hodinovými cykly 0, aby se vytvořil vzor pro potápění motoru.

Ke generování hodinových signálů je zapotřebí oscilátor, který generuje ustálenou sérii pulzů, nejlépe čistou čtvercovou vlnu. To bude tvořit základnu řadicí patky signálů do motoru.

Ke generování „dvou cyklů jednoho a poté dvou cyklů 0“se používají žabky.

Mám posuvný registr 74HC595. Jedná se o velmi populární čip, který je popsán v mnoha videích s pokyny a na YouTube.

Datový list lze nalézt na adrese

Pěkný instruktáž je 74HC595-Shift-Register-Demistified od bweaver6, Posuvný registr 74HC595 funguje tak, že v každém hodinovém cyklu jsou data v jeho 8bitovém registru posunuta doprava a posunutí hodnoty vstupního kolíku v poloze úplně vlevo. Proto by měl být napájen dvěma hodinovými cykly 1 a pak dvěma hodinovými cykly 0.

Data jsou posunuta na stoupající hraně hodinového impulsu. Klopný obvod Henc by měl přepínat na sestupné hraně hodin, takže 74HC595 bude mít stabilní vstup dat na stoupající hraně hodin.

74HC595 in lze zapojit takto:

Pin 8 (GND) -> GND

Pin 16 (VCC) -> 5V Pin 14 (SER) -> Data na Pin 12 (RCLK) -> Hodinový vstup Pin 11 (SRCLK) -> Hodinový vstup Pin 13 (OE) -> GND Pin 10 (SRCRL) -> 5V piny 15 a 1-3 budou generovat vzor pro pohon motoru.

Propojení RCLK a SRCLK zajišťuje, že registr čipových dat je vždy synchronizován s výstupním registrem. Umístěním kolíku 13 na zem bude obsah výstupního registru okamžitě viditelný na výstupních pinech (Q0 - Q7).

Časovač 555

Pro generování hodinového impulsu lze použít časovací čip 555. Toto je také velmi populární čip a je ještě více popsán a diskutován než posuvný registr. Wikipedie má pěkný článek na

Datový list je zde:

Tento čip může mimo jiné generovat hodinový impuls čtvercové vlny. K řízení frekvence a pracovního cyklu (na zlomku) se používají externí odpory a kondenzátory.

Když je čip 555 nastaven tak, aby opakovaně generoval impulsy, je údajně v astabilním režimu. To se provádí zapojením jako na obrázku výše. (obrázek od jjbeard [Public domain], přes Wikimedia Commons):

Pin 1 -> GND

Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 je výstup Pin 4 (reset) -> 5V Pin 5 -> 0,01 µF -> GND Pin 6 -> 0,1 µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V

Výstup Pin 3 bude připojen ke vstupním hodinovým pinům (Pin 11 a Pin 12) posuvného registru 74HC595.

Frekvence výstupního signálu (a tedy rychlost krokového motoru) je určena hodnotami odporu R1 a R2 a hodnotou kondenzátoru C.

Doba cyklu T bude ln (2) C (R1 + 2 R2) nebo přibližně 0,7 C (R1 + 2 R2). Frekvence je 1/T.

Pracovní cyklus, zlomek doby cyklu, kdy je signál vysoký, je (R1 + R2) / (R1 + 2R2). Pracovní cyklus není pro tento projekt příliš důležitý.

Používám 10 kΩ, pro R1 i R2, a C = 0,1 µF.

To dává frekvenci asi 480 Hz a je blízko maximální frekvence, kterou jsem zjistil, že krokový motor zvládne, aniž by se zastavil.

Pro generování posunutého 1100 opakovaného vzoru z 74HC595 by měl být pin 14 (SER) udržován vysoko pro dva cykly hodin a poté nízko pro dva cykly hodin opakovaně. To znamená, že pin by měl oscilovat s poloviční frekvencí hodin.

Duální binární čítač zvlnění 74HC393

74HC393 počítá binárně, a to také znamená, že může být použit k rozdělení pulzních frekvencí mocninami dvou, Jeho datový list je zde:

74HC393 je duální, má na každé straně jeden 4bitový čítač.

Na sestupné hraně hodinového impulsu se zapíná a vypíná první výstupní kolík. Proto bude výstupní pin jeden oscilovat s poloviční frekvencí vstupních hodin. Na sestupné hraně výstupního pinu jeden, výstupní kolík dva se zapíná a vypíná. A tak dále pro všechny čtyři výstupní piny. Kdykoli se pin n vypne, pin n+1 se přepne.

Pin n+1 se mění o polovinu častěji než pin n. Toto je binární počítání. Počítadlo může počítat do 15 (všechny čtyři bity 1), než začne znovu na nule. Pokud je poslední výstupní pin čítače 1 připojen jako hodiny k čítači 2, může být počítán do 255 (8 bitů).

K vytvoření pulsu s poloviční frekvencí vstupních hodin je zapotřebí pouze výstupní pin 1. To znamená, že se počítá pouze od nuly do jedné.

Pokud je tedy počítání prováděno hodinovým impulzem z 555, kolík na čítači 74HC393, který představuje bit 2, bude oscilovat s poloviční frekvencí hodin. Proto může být toto připojeno k kolíku SER posuvného registru 74HC595, aby to generovalo požadovaný vzor.

Zapojení binárního čítače 74HC393 by mělo být:

Pin 1 (1CLK) -> 74HC595 Pin 11, 12 a 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 (not used) Pin 12 (2CLR) -> 5V (nepoužívá se)

Krok 3: Spusťte jej

Nechte to běžet
Nechte to běžet
Nechte to běžet
Nechte to běžet

Nyní můžeme nechat motor běžet, pokud jsou piny 0-3 na 74HC595 připojeny k pinům 1-4 desky ULN2003.

Prozatím vyměňte kondenzátor 0,1 µF na pinu 6 časovače 555 za 10 µF. Tím se hodinový cyklus stokrát prodlouží a člověk bude moci vidět, co se děje.

K tomu lze použít LED diody na deskách ULN2003. Odpojte motor od desky ULN2003. Připojte piny 1 až 4 desky k výstupu QA-QD (piny 7, 9, 10 a 11) 74HC595. Připojte - a + desku ULN2003 k zemi a 5V. Pokud je napájení zapnuto, měli byste na LED diodách vidět požadovaný vzor.

Pokud chcete vidět, co se děje v binárním čítači 74HC393, místo toho se připojte k pinům 3-6 tohoto.

Pokud se vzor zdá správný, vypněte napájení, vyměňte kondenzátor za 0,1 µF znovu, připojte vstupní piny 1 - 4 desky ULN2003 k výstupním pinům QA - QD 74HC595 a znovu zapojte motor.

Při zapnutém napájení by měl nyní motor běžet.

Krok 4: Řízení rychlosti

Kontrola rychlosti
Kontrola rychlosti

Rychlost krokového motoru se řídí frekvencí výstupu časovače 555. To se opět řídí hodnotami rezistorů R1 a R2 a kondenzátoru C1 k němu připojeného. Připojením 100kΩ potenciometru v sérii s R2 může být frekvence mezi 480 Hz a 63 Hz. Kroky pr. sekunda motoru, bude polovina frekvence časovače 555.

Použil jsem digitální potenciometr DS1809-100, který je vyroben pro použití tlačítkem. Tlačítka spojující pin 2 (UC) a Pin 7 (DC) na 5V zvyšují/snižují odpor mezi svorkami RH (Pin 1) nebo RL (Pin 4) a pinem stěrače 6 (RW). Podržením tlačítka déle než sekundu se tlačítko automaticky opakuje.

Datasheet najdete zde:

Zapojení je následující:

Pin 1 (RH) nepoužíván

Pin 2 (UC) -> hmatové tlačítko 1 Pin 3 (STR) -> GND Pin 4 (RL) -> 555 Pin 2 Pin 5 -> GND Pin 6 (RW) -> 10kΩ -> 555 pin 7 Pin 7 (DC) -> hmatové tlačítko 2 Pin 8 -> 5V

Zapojení hmatového tlačítka 1:

Pin 1/2 -> DS1809 Pin 2

Pin 3/4 -> 5V

Zapojení hmatového tlačítka 2:

Pin 1/2 -> DS1809 Pin 7

Pin 3/4 -> 5V

Nyní lze rychlost regulovat.

Krok 5: Start / Stop

Začátek Konec
Začátek Konec

Ke spuštění a zastavení krokového motoru lze použít pin 4 (resetovací kolík) časovače 555. Pokud je tato hodnota stažena nízko, nebudou z Pin 3 žádné výstupní impulsy.

K přepínání mezi startem a zastavením bude použito hmatové tlačítko. Jedním stisknutím tlačítka byste měli spustit motor, znovu jej stisknout a zastavit. K získání tohoto chování je potřeba klopný obvod. Lze však také použít 74HC393, který již existuje. 74HC393 má dvě části a pouze jedna polovina je použita jako dělič frekvence pro hodinový impuls.

Protože binární čítač je ve skutečnosti jen sadou přepínacích žabek v sérii, lze použít první klopný obvod druhé části. Připojením hmatového tlačítka tak, aby Pin 13 (2CLK) byl při stisknutí tlačítka nízký, a vysoký, pokud není, Pin 12 bude přepínat na každém low. Připojením kolíku 12 k pinu 4 555 se spustí a zastaví jeho výstup, a tím i motor.

Hmatová tlačítka jsou trochu ošidná, protože jsou mechanická. Mohou se 'odrazit', to znamená, že mohou při každém stisknutí vyslat více signálů. Připojení kondenzátoru 0,1 µF přes tlačítko tomu pomůže vyhnout se.

Takže hmatové tlačítko (tlačítko 3 je přidáno a připojení ke kolíku 4 na 555 je změněno.

Zapojení tlačítka:

Pin 1/2 -> 10kΩ -> 5V

Pin 1/2 -> 0,1 µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)

Na 555 jsou provedeny následující změny:

Pin 4 (Reset) -> 74HC393 Pin 11 (2QA)

Tlačítko 3 by nyní mělo fungovat jako přepínač start/stop.

Pamatujte, že takto zastavený motor bude stále spotřebovávat energii.

Krok 6: Řízení směru

Řízení směru
Řízení směru

K ovládání směru motoru je potřeba další tlačítko a pak další klopný obvod. Budu však podvádět pomocí dalšího klopného obvodu 74HC393, po klopném obvodu zapnuto/vypnuto a tlačítka pro zapnutí/vypnutí.

Když se směrový kolík (Pin 2QA) sníží, další kolík (Pin 2QB) se přepne. Opakované stisknutí tlačítka tedy způsobí VYPNUTÍ - ZAPNUTO VPŘED - VYPNUTO - ZPĚT NA ZPĚT - VYPNUTO - ZAPNUTO PŘED atd.

Aby motor běžel pozpátku, měl by být obrazec podávaný do ULN2003 obrácen. To lze provést pomocí obousměrného posuvného registru, ale nemám ho. 74HC595 není obousměrný.

Zjistil jsem však, že mohu použít svůj osmičkový vyrovnávací paměť 74HC241. Tato vyrovnávací paměť má dvě 4bitové části se samostatnými piny OE (umožňující výstup). První OE pin ovládá čtyři první výstupní piny a druhý poslední čtyři výstupní piny. Když je OE na výstupních pinech, mají stejnou hodnotu jako odpovídající vstupní piny a když jsou vypnuté, výstupní piny budou ve stavu vysoké impedance, jako by nebyly připojeny. Dále je jeden z OE pinů aktivní nízko a druhý aktivně vysoko, takže když je spojíte dohromady, bude v danou chvíli aktivní pouze polovina vyrovnávací paměti.

Takže pro stejný vstup může jedna polovina vyrovnávací paměti pohánět motor dopředu a druhá polovina dozadu. Která polovina je aktivní, závisí na hodnotě pinů OE.

Datový list pro 74HC241 najdete na adrese

Zapojení může vypadat takto:

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) -> Ground 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

Nyní by mělo být zapojení dokončeno pouhým napájením 5 V. Ujistěte se, že napájecí zdroj může dodávat dostatek proudu pro pohon motoru i obvodů.

Krok 7: Závěry

Závěry
Závěry

Krokový motor lze ovládat bez mikrokontroléru.

Zde použité integrované obvody byly některé, které jsem měl dříve. Většina z nich na to není optimální a dalo by se použít několik alternativ.

  • Pro generování impulsů je čip 555 s časovačem dobrou volbou, ale existuje několik alternativ, například ta popsaná v tomto Instructable.
  • Pro regulaci otáček lze použít jakýkoli potenciometr, nejen digitální. Pokud máte potenciometr 10 kΩ, nikoli 100 kΩ, odpory 10 kΩ lze nahradit 1 kΩ a kondenzátor 0,1 µF kondenzátorem 1 µF (rozdělte všechny odpory a znásobte kondenzátor stejným číslem, aby se zachovalo načasování).
  • Pomocí obousměrného posuvného registru, např. 74HC194 by usnadnilo řízení směru.
  • Pro ovládání tlačítky by mohl být 74HC393 nahrazen klopným obvodem, např. 74HC73. 555 může být také zapojen tak, aby fungoval jako přepínač.

Doporučuje: