- Krokové motory:
- Výpočet kroků na otáčku krokového motoru:
- Proč tedy potřebujeme Driver moduly pro krokové motory?
- Schéma zapojení a vysvětlení polohy krokového motoru Arduino:
- Kód pro desku Arduino:
- Práce krokového motoru s Arduinem:
Krokové motory se ve světě elektroniky stále více prosazují. Počínaje normální kontrolní kamerou až po komplikované CNC stroje / roboty se tyto krokové motory používají všude jako akční členy, protože poskytují přesné ovládání. Krokový motor je střídavý synchronní motor, který dokončí celou rotaci do několika kroků. V tomto výukovém programu krokového motoru Arduino se dozvíte o nejčastěji dostupném krokovém motoru 28-BYJ48 a o tom, jak jej propojit s Arduino pomocí modulu krokového motoru ULN2003.
Krokové motory:
Podívejme se na tento krokový motor 28-BYJ48.
Dobře, takže na rozdíl od běžného stejnosměrného motoru z něj vychází pět vodičů všech efektních barev a proč je to tak? Abychom tomu porozuměli, měli bychom nejprve vědět, jak stepper funguje a co je jeho specialitou. Nejprve se krokové motory neotáčejí, krokují, a proto jsou známé také jako krokové motory. To znamená, že se budou pohybovat pouze po jednom kroku. Tyto motory mají v sobě sled cívek a tyto cívky musí být napájeny zvláštním způsobem, aby se motor otáčel. Když je každá cívka napájena, motor udělá krok a sekvence napájení způsobí, že motor bude dělat nepřetržité kroky, čímž se otáčí. Podívejme se na cívky uvnitř motoru, abychom věděli přesně, odkud tyto vodiče pocházejí.
Jak vidíte, motor má unipolární uspořádání 5pólových cívek. Existují čtyři cívky, které musí být napájeny v určitém pořadí. Červené vodiče budou napájeny + 5 V a zbývající čtyři vodiče budou staženy k zemi pro spuštění příslušné cívky. Používáme mikrokontrolér, jako je Arduino, který napájí tyto cívky v určitém pořadí a zajišťuje, aby motor provedl požadovaný počet kroků.
Proč se tedy tento motor nazývá 28-BYJ48 ? Vážně!!! Nevím. Neexistuje žádný technický důvod pro to, aby byl tento motor pojmenován; možná bychom se do toho měli ponořit mnohem hlouběji. Podívejme se na některá důležitá technická data získaná z datového listu tohoto motoru na obrázku níže.
To je hlava plná informací, ale musíme se podívat na několik důležitých, abychom věděli, jaký typ stepperu používáme, abychom jej mohli efektivně programovat. Nejprve víme, že se jedná o 5V krokový motor, protože napájíme červený vodič 5V. Potom také víme, že se jedná o čtyřfázový krokový motor, protože měl v sobě čtyři cívky. Nyní je převodový poměr uveden na 1:64. To znamená, že hřídel, kterou vidíte venku, provede jedno úplné otočení, pouze pokud se motor uvnitř otáčí 64krát. Je to proto, že ozubená kola, která jsou spojena mezi motorem a výstupním hřídelem, pomáhají při zvyšování točivého momentu.
Dalším důležitým údajem je Stride Angle: 5,625 ° / 64. To znamená, že motor, který pracuje v 8krokové sekvenci, se bude pohybovat o 5 625 stupňů pro každý krok a bude trvat 64 kroků (5 625 * 64 = 360) k dokončení jedné plné rotace. Dozvíte se více o práci krokových motorů s ARM LPC2148, ATMega16 Microcontroller, MSP430.
Výpočet kroků na otáčku krokového motoru:
Je důležité vědět, jak vypočítat kroky na otáčku pro váš krokový motor, protože pouze tehdy je můžete efektivně programovat.
V Arduinu budeme motor provozovat ve 4krokové sekvenci, takže úhel kroku bude 11,25 °, protože to je 5,625 ° (uvedené v datovém listu), pro 8krokovou sekvenci to bude 11,25 ° (5,625 * 2 = 11,25).
Kroky na otáčku = 360 / úhel kroku
Zde 360 / 11,25 = 32 kroků na otáčku.
Proč tedy potřebujeme Driver moduly pro krokové motory?
Většina krokových motorů bude fungovat pouze pomocí modulu ovladače. Je to proto, že řídicí modul (v našem případě Arduino) nebude schopen poskytnout dostatek proudu ze svých I / O pinů pro provoz motoru. Jako ovladač krokového motoru tedy použijeme externí modul, jako je modul ULN2003. Existuje mnoho typů modulů ovladače a hodnocení jednoho se bude měnit podle typu použitého motoru. Primárním principem pro všechny budicí moduly bude zdroj / odběr dostatečného proudu pro provoz motoru.
Schéma zapojení a vysvětlení polohy krokového motoru Arduino:
Schéma zapojení pro projekt řízení krokových motorů arduino je zobrazeno výše. Použili jsme krokový motor 28BYJ-48 a modul ovladače ULN2003. K napájení čtyř cívek krokového motoru používáme digitální piny 8,9,10 a 11. Řídicí modul je napájen 5V kolíkem desky Arduino.
Pokud však připojujete zátěž k stepnímu motoru, napájejte ovladač externím zdrojem napájení. Jelikož motor používám pouze k demonstračním účelům, použil jsem lištu + 5V desky Arduino. Nezapomeňte také propojit uzemnění Arduina se zemí uzemňovacího modulu.
Kód pro desku Arduino:
Než začneme programovat pomocí našeho Arduina, pochopme, co by se vlastně mělo uvnitř programu stát. Jak již bylo řečeno dříve, budeme používat metodu sekvence se čtyřmi kroky, takže budeme muset provést čtyři kroky pro provedení jedné úplné rotace.
Krok |
Pin pod napětím |
Cívky pod napětím |
Krok 1 |
8 a 9 |
A a B |
Krok 2 |
9 a 10 |
B a C. |
Krok 3 |
10 a 11 |
C a D |
Krok 4 |
11 a 8 |
D a A |
Driver modul bude mít čtyři LED, pomocí kterých můžeme zkontrolovat, která cívka je v daném okamžiku napájena. Video, které ukazuje sekvenci napájení, najdete na konci tohoto tutoriálu.
V tomto tutoriálu budeme psát kód krokového motoru arduino a za tímto účelem naprogramujeme Arduino takovým způsobem, abychom mohli zadat počet kroků, které má krokový motor provést, přes sériový monitor Arduina. Kompletní program najdete na konci tutoriálu, níže je vysvětleno několik důležitých řádků.
Počet kroků na otáčku pro náš krokový motor byl vypočítán na 32; proto to zadáme, jak je znázorněno na řádku níže
#define KROKY 32
Dále musíte vytvořit instance, ve kterých určíme piny, ke kterým jsme připojili krokový motor.
Stepper stepper (STEPS, 8, 10, 9, 11);
Poznámka: Počet pinů je záměrně narušen jako 8,10,9,11. Stejným způsobem musíte postupovat, i když měníte kolíky, ke kterým je váš motor připojen.
Protože používáme krokovou knihovnu Arduino, můžeme nastavit rychlost motoru pomocí níže uvedeného řádku. Rychlost se může pohybovat od 0 do 200 pro krokové motory 28-BYJ48.
stepper.setSpeed (200);
Nyní, aby se motor pohnul o jeden krok, můžeme použít následující řádek.
stepper.step (val);
Počet kroků, které mají být přesunuty, poskytne proměnná „val“. Protože máme 32 kroků a 64 jako převodový poměr, musíme přesunout 2048 (32 * 64 = 2048), abychom provedli jednu úplnou rotaci.
Hodnotu proměnné „val“ může uživatel zadat pomocí sériového monitoru.
Práce krokového motoru s Arduinem:
Jakmile je připojení provedeno, měl by hardware na následujícím obrázku vypadat nějak takto.
Nyní nahrajte níže uvedený program do svého Arduino UNO a otevřete sériový monitor. Jak již bylo zmíněno dříve, budeme muset udělat 2048 kroků, abychom provedli jednu úplnou rotaci, takže když zadáme 2048, motor provede jednu úplnou rotaci ve směru hodinových ručiček provedením 2048 kroků. Chcete-li otáčet proti směru hodinových ručiček, zadejte číslo se záporným znaménkem „-“. Zadání -1024 způsobí, že se motor bude otáčet o polovinu proti směru hodinových ručiček. Můžete zadat libovolné požadované hodnoty, například zadání 1, aby motor udělal pouze jeden krok.
Doufám, že jste pochopili projekt a užili jste si jeho stavbu. Kompletní fungování projektu je uvedeno ve videu níže. Máte-li jakékoli pochybnosti, pošlete je do sekce komentářů níže na našem fóru.