Obsah:

Riadenie krokového motora bez mikrokontroléra: 7 krokov
Riadenie krokového motora bez mikrokontroléra: 7 krokov

Video: Riadenie krokového motora bez mikrokontroléra: 7 krokov

Video: Riadenie krokového motora bez mikrokontroléra: 7 krokov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image

V tomto návode budem poháňať krokový motor 28-BYJ-48 s doskou darlingtonského poľa UNL2003, niekedy nazývanou x113647, bez mikroovládača.

Bude mať štart/stop, dopredu/dozadu a ovládanie rýchlosti.

Motor je unipolárny krokový motor s 2 048 krokmi na otáčku v režime plného kroku. List s údajmi o motore nájdete na adrese

Tieto dve zariadenia je možné kúpiť spoločne od niekoľkých predajcov. Svoje mám z kjell.com

Vytvorte si ho alebo ho vygooglite, aby našiel predajcu vo vašom okolí.

Najprv prejdem niekoľkými krokmi a časťami potrebnými na jeho spustenie a potom pridám niekoľko krokov a častí, aby som mal väčšiu kontrolu.

Mali by ste byť upozornení, že diely, ktoré používam, sú tie, ktoré mám náhodou vo svojej pokladnici, a nie nevyhnutne diely, ktoré sú na tento účel najvhodnejšie.

Tiež by ste mali byť varovaní, že toto je môj prvý Instruktabilný a že som v elektronike celkom nový.

Pridajte komentár, ak si myslíte, že som urobil niečo, čo by som nemal, alebo ak máte návrhy na vylepšenia alebo návrhy na lepšie prispôsobené diely.

Krok 1: Zoznam súčiastok

Hlavné časti
Hlavné časti

Časti použité v tomto projekte sú

  • Breadboard
  • Krokový motor 28byj-48
  • Doska Darlingtonovho tranzistorového poľa ULN2003 (x113647)
  • Posuvný register 74HC595
  • Binárne počítadlo zvlnenia 74HC393
  • DS1809-100 Digitálny potenciometer Dallastat
  • 74HC241, osmičkový pufer
  • 3 × hmatové tlačidlá
  • Rezistory 3 × 10 kΩ
  • 2 × 0,1 µF keramické kondenzátory
  • 1 × 0,01 µF keramický kondenzátor
  • Pripojovacie vodiče
  • Napájanie 5V

Krok 2: Hlavné časti

Hlavné časti
Hlavné časti

Posuvný register 74HC595

Motor sa pohybuje opakovaným zadávaním štyroch vstupných pinov dosky UNL2003 v tomto poradí:

1100-0110-0011-1001

To bude poháňať motor v takzvanom úplnom kroku. Vzor 1100 sa opakovane posúva doprava. To naznačuje posuvný register. Spôsob, akým funguje posuvný register, je v každom hodinovom cykle, že sa bity v registri posunú o jedno miesto doprava, pričom nahradí bit úplne vľavo hodnotou vstupného kolíka v danom čase. Preto by sa mal napájať dvoma hodinovými cyklami 1 a potom dvoma hodinovými cyklami 0, aby sa vygeneroval vzor na potápanie motora.

Na generovanie hodinových signálov je potrebný oscilátor, ktorý generuje stabilnú sériu impulzov, najlepšie čistú štvorcovú vlnu. To bude tvoriť základňu radiacej páky signálov k motoru.

Na vygenerovanie „dvoch cyklov jedného a potom dvoch cyklov 0“sa používajú žabky.

Mám posuvný register 74HC595. Jedná sa o veľmi populárny čip, ktorý je popísaný v mnohých inštrukciách a videách na YouTube.

Dátový list nájdete na

Pekný inštrukcia je 74HC595-posuvný register-demistikovaný bweaver6, Posuvný register 74HC595 funguje tak, že v každom hodinovom cykle sa údaje v jeho 8 -bitovom registri posunú doprava a posunutie hodnoty vstupného kolíka v polohe úplne vľavo. Preto by sa mal napájať dvoma hodinovými cyklami 1 a potom dvoma hodinovými cyklami 0.

Údaje sú posunuté na stúpajúcej hrane hodinového impulzu. Klopný obvod Henc by sa mal prepínať na klesajúcej hrane hodín, takže 74HC595 bude mať stabilný vstup údajov na stúpajúcej hrane hodín.

74HC595 in môže byť zapojený nasledovne:

Pin 8 (GND) -> GND

Pin 16 (VCC) -> 5V Pin 14 (SER) -> Údaje na Pin 12 (RCLK) -> Hodinový vstup Pin 11 (SRCLK) -> Hodinový vstup Pin 13 (OE) -> GND Pin 10 (SRCRL) -> 5V kolíky 15 a 1-3 budú generovať vzor na pohon motora.

Pripojenie RCLK a SRCLK zaisťuje, že register čipových údajov je vždy synchronizovaný s výstupným registrom. Umiestnením kolíka 13 na uzemnenie je obsah výstupného registra okamžite viditeľný pre výstupné kolíky (Q0 - Q7).

Časovač 555

Na generovanie hodinového impulzu je možné použiť časovací čip 555. Toto je tiež veľmi populárny čip a je ešte viac popísaný a diskutovaný ako posuvný register. Wikipedia má pekný článok na

Dátový list je tu:

Tento čip môže okrem iného generovať hodinový impulz štvorcovej vlny. Na ovládanie frekvencie a pracovného cyklu (na zlomku) sa používajú externé odpory a kondenzátory.

Keď je čip 555 nastavený na opakované generovanie impulzov, údajne je v astabilnom režime. To sa vykonáva zapojením ako na obrázku vyššie. (obrázok od jjbeard [verejná doména], prostredníctvom 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 pripojený k vstupným hodinovým pinom (Pin 11 a Pin 12) posuvného registra 74HC595.

Frekvencia výstupného signálu (a teda aj rýchlosť krokového motora) je určená hodnotami rezistora R1 a R2 a hodnotou kondenzátora C.

Čas cyklu T bude ln (2) C (R1 + 2 R2) alebo približne 0,7 C (R1 + 2 R2). Frekvencia je 1/T.

Pracovný cyklus, zlomok doby cyklu, kedy je signál vysoký, je (R1 + R2) / (R1 + 2R2). Pracovný cyklus nie je pre tento projekt veľmi dôležitý.

Používam 10 kΩ, pre R1 aj R2, a C = 0,1 µF.

To dáva frekvenciu asi 480 Hz a je blízko maximálnej frekvencie, ktorú som zistil, že krokový motor zvládne bez zastavenia.

Aby sa generoval 1100 posunutý, opakovaný vzor z 74HC595, pin 14 (SER) by mal byť udržiavaný vysoko pre dva hodinové cykly a potom nízky pre dva hodinové cykly opakovane. To znamená, že kolík by mal oscilovať s polovičnou frekvenciou hodín.

Duálne binárne počítadlo zvlnenia 74HC393

74HC393 je binárny počet, čo znamená, že ho možno použiť aj na rozdelenie frekvencií impulzov na dve mocniny, Jeho dátový list je tu:

74HC393 je duálny, na každej strane má jeden 4 -bitový čítač.

Na klesajúcej hrane hodinového impulzu sa prvý výstupný kolík zapína a vypína. Preto bude výstupný kolík jeden oscilovať s polovičnou frekvenciou vstupných hodín. Na zostupnej hrane výstupného kolíka jeden sa výstupný kolík dva zapína a vypína. A tak ďalej pre všetky štyri výstupné piny. Kedykoľvek sa pin n vypne, prepne sa pin n+1.

Pin n+1 sa mení o polovicu častejšie ako pin n. Toto je binárne počítanie. Počítadlo môže napočítať do 15 (všetky štyri bity 1), než začne znova na nule. Ak je posledný výstupný kolík počítadla 1 pripojený ako hodiny k počítadlu 2, môže sa počítať do 255 (8 bitov).

Na vytvorenie impulzu s polovičnou frekvenciou vstupných hodín je potrebný iba výstupný kolík 1. To znamená, že sa počíta iba od nuly do jednej.

Ak je teda počítanie vykonávané hodinovým impulzom z 555, kolík na počítadle 74HC393, ktorý predstavuje bit 2, bude oscilovať s polovičnou frekvenciou hodín. Preto môže byť toto pripojené k kolíku SER posuvného registra 74HC595, aby sa generoval požadovaný vzor.

Zapojenie binárneho počítadla 74HC393 by malo byť:

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žíva sa)

Krok 3: Spustite ho

Nechajte to bežať
Nechajte to bežať
Nechajte to bežať
Nechajte to bežať

Teraz môžeme nechať motor bežať, ak sú piny 0-3 na 74HC595 pripojené k pinom 1-4 dosky ULN2003.

Zatiaľ nahraďte kondenzátor 0,1 µF na pine 6 časovača 555 za 10 µF. Vďaka tomu sa hodiny stokrát predĺžia a človek bude môcť vidieť, čo sa deje.

Na to je možné použiť LED diódy na doskách ULN2003. Odpojte motor od dosky ULN2003. Pripojte piny 1 až 4 dosky k výstupu QA-QD (piny 7, 9, 10 a 11) 74HC595. Pripojte - a + dosku ULN2003 k zemi a 5V. Ak je napájanie zapnuté, na diódach LED by ste mali vidieť požadovaný vzor.

Ak chcete vidieť, čo sa deje v binárnom počítadle 74HC393, pripojte ho postupne k pinom 3-6 tohto.

Ak sa vzor zdá byť v poriadku, vypnite napájanie, znova nahraďte kondenzátor 0,1 µF, pripojte vstupné kolíky 1 - 4 dosky ULN2003 k výstupným kolíkom QA - QD 74HC595 a znova zapojte motor.

Keď je zapnuté napájanie, motor by mal teraz bežať.

Krok 4: Ovládanie rýchlosti

Kontrola rýchlosti
Kontrola rýchlosti

Otáčky krokového motora sa riadia frekvenciou výstupu časovača 555. Toto sa opäť riadi hodnotami odporov R1 a R2 a kondenzátora C1, ktorý je k nemu pripojený. Po zapojení 100kΩ potenciometra do série s R2 môže byť frekvencia medzi 480 Hz a 63 Hz. Kroky pr. druhý motor, bude polovica frekvencie časovača 555.

Použil som digitálny potenciometer DS1809-100, ktorý je vyrobený na použitie pomocou tlačidiel. Stlačením tlačidiel spájajúcich kolíky 2 (UC) a 7 (DC) na 5 V sa zvyšuje/znižuje odpor medzi svorkami RH (Pin 1) alebo RL (Pin 4) a Pin 6 stierača (RW). Podržaním tlačidla viac ako sekundu sa tlačidlo automaticky opakuje.

List s technickými údajmi nájdete tu:

Zapojenie je nasledovné:

Pin 1 (RH) nepoužitý

Pin 2 (UC) -> hmatové tlačidlo 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čidlo 2 Pin 8 -> 5V

Zapojenie hmatového tlačidla 1:

Pin 1/2 -> DS1809 Pin 2

Kolík 3/4 -> 5V

Zapojenie hmatového tlačidla 2:

Pin 1/2 -> DS1809 Pin 7

Kolík 3/4 -> 5V

Teraz je možné rýchlosť regulovať.

Krok 5: Spustenie / zastavenie

Štart stop
Štart stop

Na spustenie a zastavenie krokového motora je možné použiť pin 4 (resetovací kolík) časovača 555. Ak je toto vytiahnuté nízko, z pinu 3 nebudú žiadne výstupné impulzy.

Na prepínanie štartu a zastavenia sa použije dotykové tlačidlo. Jedným stlačením tlačidla by sa mal motor naštartovať a opätovným stlačením by sa mal zastaviť. Na to, aby ste sa dostali k tomuto správaniu, je potrebný flip-flop. Dá sa však použiť aj 74HC393, ktorý už existuje. 74HC393 má dve časti a iba jedna polovica sa používa ako delič frekvencie pre hodinový impulz.

Pretože binárny čítač je v skutočnosti iba sadou prepínajúcich žabiek v sérii, je možné použiť prvý žabák druhej časti. Pripojením hmatového tlačidla tak, aby bol kolík 13 (2 CLK) pri stlačení tlačidla na nízkej úrovni, a v prípade, že nie je, bol na vysokej úrovni, kolík 12 sa prepne na každé nízke. Pripojením kolíka 12 k kolíku 4 na 555 sa spustí a zastaví jeho výstup, a teda aj motor.

Hmatové tlačidlá sú trochu ošemetné, pretože sú mechanické. Môžu sa „odraziť“, to znamená, že môžu pri každom stlačení vyslať viac signálov. Pripojením kondenzátora 0,1 µF cez tlačidlo sa tomu dá vyhnúť.

Takže hmatové tlačidlo (tlačidlo 3 sa pridá a pripojenie k kolíku 4 na 555 sa zmení.

Zapojenie tlačidla:

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

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

Na 555 sa vykonávajú nasledujúce zmeny:

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

Tlačidlo 3 by teraz malo fungovať ako prepínač štart/stop.

Motor, ktorý sa takto zastavil, bude stále spotrebovávať energiu.

Krok 6: Ovládanie smeru

Ovládanie smeru
Ovládanie smeru

Na ovládanie smeru motora je potrebné ďalšie tlačidlo a potom ďalšie žabky. Budem však podvádzať tým, že použijem ďalší klopný obvod 74HC393 po klopnom obvode zap/vyp a tlačidlo zapnutia/vypnutia.

Keď smerový kolík (kolík 2QA) klesne, nasledujúci kolík (kolík 2QB) sa prepne. Preto opakované stláčanie tlačidla spôsobí VYPNUTIE - ZAPNUTÉ VPRED - VYPNUTÉ - ZAPNUTÉ ZADNÉ STRÁNKY - VYPNUTÉ - ZAPNUTÉ dopredu

Aby motor bežal dozadu, vzor podávaný do ULN2003 by mal byť obrátený. To sa dá urobiť pomocou obojsmerného posuvného registra, ale nemám ho. 74HC595 nie je obojsmerný.

Zistil som však, že môžem použiť svoj osmičkový buffer 74HC241. Táto vyrovnávacia pamäť má dve 4 bitové časti so samostatnými kolíkmi OE (umožňujúcimi výstup). Prvý OE pin ovláda štyri prvé výstupné piny a druhý posledné štyri výstupné piny. Keď je OE na výstupe, majú kolíky rovnakú hodnotu ako zodpovedajúce vstupné piny a keď sú vypnuté, výstupné piny budú v stave s vysokou impedanciou, ako keby neboli pripojené. Ďalej je jeden z pinov OE aktívny nízko a druhý aktívny vysoko, takže pri ich vzájomnom prepojení bude v tom čase aktívna iba polovica vyrovnávacej pamäte.

Takže pri rovnakom vstupe môže jedna polovica vyrovnávacej pamäte poháňať motor dopredu a druhá polovica dozadu. Ktorá polovica je aktívna, závisí od hodnoty OE kolíkov.

Dátový list pre 74HC241 sa nachádza na adrese

Zapojenie môže byť nasledovné:

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

Teraz by malo byť zapojenie dokončené iba napájaním 5V. Uistite sa, že napájací zdroj môže dodávať dostatok prúdu na pohon motora aj obvodov.

Krok 7: Závery

Závery
Závery

Krokový motor je možné ovládať bez mikrokontroléra.

Tu použité integrované obvody boli niektoré z tých, ktoré som mal predtým. Väčšina z nich na to nie je optimálna a dalo by sa použiť niekoľko alternatív.

  • Na generovanie impulzov je čip 555 s časovačom dobrou voľbou, ale existuje niekoľko alternatív, napríklad tá, ktorá je popísaná v tomto návode.
  • Na ovládanie rýchlosti je možné použiť akýkoľvek potenciometer, nielen digitálny. Ak máte potenciometer 10 kΩ, nie 100 kΩ, odpory 10 kΩ je možné nahradiť 1 kΩ a kondenzátor 0,1 µF s kondenzátorom 1 µF (rozdeľte všetky odpory a kondenzátor znásobte rovnakým číslom, aby sa zachovalo načasovanie).
  • Použitie obojsmerného posuvného registra, napr. 74HC194 by uľahčilo ovládanie smeru.
  • Na ovládanie tlačidlom by mohol byť 74HC393 nahradený žabkou, napr. 74HC73. 555 môže byť tiež zapojený tak, aby slúžil ako prepínač.

Odporúča: