- Krokové motory:
- Výpočet kroků na otáčku krokového motoru:
- Proč tedy potřebujeme Driver moduly pro krokové motory?
- Schéma zapojení rotačního krokového motoru pomocí potenciometru:
- Kód pro desku Arduino:
- Pracovní:
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í. V této lekci se budeme učit o nejčastěji / levně dostupné krokovým motorem 28 BYJ48 a jak jej propojit s Arduino pomocí ULN2003 krokový modul.
V posledním projektu jsme jednoduše propojili krokový motor s Arduino, kde můžete otáčet krokovým motorem zadáním úhlu otáčení v Serial Monitoru Arduino. Tady v tomto projektu budeme otáčet krokový motor pomocí potenciometru a Arduina, jako když otočíte potenciometr ve směru hodinových ručiček, krokový motor se bude otáčet ve směru hodinových ručiček a pokud otočíte potenciometr proti směru hodinových ručiček, bude se otáčet proti směru hodinových ručiček.
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.
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í rotačního krokového motoru pomocí potenciometru:
Schéma zapojení řídicího krokového motoru pomocí potenciometru a Arduina je uvedeno 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. K A0 je připojen potenciometr, na jehož základě budeme otáčet krokový motor.
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. Kompletní ukázkové video najdete na konci tohoto tutoriálu.
V tomto tutoriálu budeme programovat Arduino tak, abychom mohli otočit potenciometr připojený ke kolíku A0 a řídit směr krokového motoru. 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 ve směru hodinových ručiček, můžeme použít následující řádek.
stepper.step (1);
Aby se motor pohnul o jeden krok proti směru hodinových ručiček, můžeme použít následující řádek.
stepper.step (-1);
V našem programu načteme hodnotu analogového pinu A0 a porovnáme ji s předchozí hodnotou (Pval). Pokud se zvýšil, posuneme se o 5 kroků ve směru hodinových ručiček a pokud se sníží, přesuneme se o 5 kroků proti směru hodinových ručiček.
potVal = mapa (analogRead (A0), 0,1024,0 500); if (potVal> Pval) stepper.step (5); if (potVal
Pracovní:
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 řečeno, musíte otáčet potenciometrem, abyste mohli ovládat otáčení krokového motoru. Otáčením ve směru hodinových ručiček se krokový motor otočí ve směru hodinových ručiček a naopak.
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, zveřejněte je v sekci komentářů níže nebo na našem fóru.