Obsah:

Arduino: Precision Lib pro krokový motor: 19 kroků
Arduino: Precision Lib pro krokový motor: 19 kroků

Video: Arduino: Precision Lib pro krokový motor: 19 kroků

Video: Arduino: Precision Lib pro krokový motor: 19 kroků
Video: Stepper Motors and Arduino - The Ultimate Guide 2024, Červenec
Anonim
Image
Image
Globální proměnné
Globální proměnné

Dnes vám ukážu knihovnu pro plně krokový ovladač motoru s koncovými spínači a pohyb motoru se zrychlením a mikrokrokem. Tato Lib, která funguje jak na Arduino Uno, tak na Arduino Mega, vám umožňuje přesouvat motory nejen podle počtu kroků, ale také podle milimetrů. A je to také docela přesné.

Důležitou vlastností této knihovny je, že vám umožňuje postavit si vlastní CNC stroj, který nemusí být nutně jen X, Y, ale například také sekčním přepínačem, protože to není hotový GRBL, ale spíše programování, které vám umožní vytvořit pro vás ideální stroj.

Následující prohlášení je však důležitým detailem! Toto video je pouze pro ty, kteří jsou již zvyklí na programování. Pokud nejste obeznámeni s programováním Arduino, měli byste se nejprve podívat na další úvodní videa na mém kanálu. Důvodem je, že v tomto konkrétním videu diskutuji o pokročilém tématu a podrobněji vysvětluji Lib, který byl ve videu použit: Krokový motor se zrychlením a Konec zdvihu.

Krok 1: Knihovna StepDriver

Tato knihovna pokrývá tři nejběžnější typy ovladačů na trhu: A4988, DRV8825 a TB6600. Konfiguruje piny ovladačů, což jim umožňuje provést reset a přepnutí do režimu spánku, jakož i aktivovat a deaktivovat výstupy motoru působící na kolík Enable. Rovněž nastavuje vstupy mikrokrokových kolíků ovladače a omezuje spínače a úroveň jejich aktivace (vysoká nebo nízká). Má také kód pohybu motoru s plynulou akcelerací v mm / s², maximální rychlostí v mm / s a minimální rychlostí v mm / s.

Pro ty, kteří sledovali části 1 a 2 videa Krokový motor s akcelerací a Koncem zdvihu, si stáhněte tuto novou knihovnu, která je dnes k dispozici, protože jsem v prvním souboru provedl nějaké změny, abych usnadnil její používání.

Krok 2: Globální proměnné

Ukazuji přesně, k čemu každá z globálních proměnných slouží.

Krok 3: Funkce - Nastavení pinů ovladače

Funkce - Nastavení pinů ovladače
Funkce - Nastavení pinů ovladače

Zde popisuji některé metody.

Nastavil jsem nastavení Pinout a piny Arduino jako výstup.

Krok 4: Funkce - základní funkce ovladače

Funkce - základní funkce ovladače
Funkce - základní funkce ovladače

V této části pracujeme s konfigurací ovladače a jeho základními funkcemi.

Krok 5: Funkce - Nastavení kroku motoru

Funkce - Nastavení kroku motoru
Funkce - Nastavení kroku motoru
Funkce - Nastavení kroku motoru
Funkce - Nastavení kroku motoru

V tomto kroku kódu konfigurujeme počet kroků na milimetr, které musí motor provést.

Krok 6: Funkce - Nastavení režimu motoru

Funkce - Nastavení krokového režimu motoru
Funkce - Nastavení krokového režimu motoru
Funkce - Nastavení krokového režimu motoru
Funkce - Nastavení krokového režimu motoru
Funkce - Nastavení krokového režimu motoru
Funkce - Nastavení krokového režimu motoru

Tato tabulka ukazuje nastavení pro krokový režim motoru. Zde jsou nějaké příklady.

Krok 7: Funkce - Nastavení koncových spínačů

Funkce - Nastavení koncových spínačů
Funkce - Nastavení koncových spínačů

Zde musím přečíst celé a booleovské hodnoty. Je nutné nastavit, zda je aktivní klíč nahoru nebo dolů, přičemž nastavíte maximální a minimální limitní pin.

Krok 8: Funkce - čtení koncových spínačů

Funkce - čtení koncových spínačů
Funkce - čtení koncových spínačů
Funkce - čtení koncových spínačů
Funkce - čtení koncových spínačů
Funkce - čtení koncových spínačů
Funkce - čtení koncových spínačů

Tato část se liší od té v Lib, kterou jsem minulý týden zpřístupnil. Proč jsem to změnil? Vytvořil jsem eRead, abych nahradil některé další. Zde čtečka přečte LVL, digitalRead (pin) a vrátí hodnotu TRUE. To vše je třeba provést na maximum. Následující práce s aktivním klíčem bude na nízké úrovni. Tady to použiji, abych vám ukázal tabulku „Pravda“.

Na obrázek kódu jsem umístil diagram, který pomůže pochopit, že v této části zdrojového kódu se pohybuji směrem Vzestupně a ještě jsem nenarazil na konec kurzu.

Nyní na tomto obrázku os code bool DRV8825 ukazuji motor, který se stále pohybuje vzrůstajícím směrem. Aktivoval se však spínač maximálního limitu. Mechanismus tedy musí pohyb zastavit.

Nakonec ukazuji stejný pohyb, ale v opačném směru.

Zde již máte aktivovaný přepínač konce kurzu.

Krok 9: Funkce - Nastavení pohybu

Funkce - Nastavení pohybu
Funkce - Nastavení pohybu

Hlavní užitečností metody motionConfig je převádět milimetry za sekundu (měření používané v CNC strojích) na kroky, aby byl splněn ovladač krokového motoru. Právě v této části tedy instancuji proměnné, abych porozuměl krokům, a ne milimetrům.

Krok 10: Funkce - funkce pohybu

Funkce - funkce pohybu
Funkce - funkce pohybu

V tomto kroku zacházíme s příkazem, který se pohybuje o krok v požadovaném směru v období v mikrosekundách. Nastavili jsme také kolík směru řidiče, dobu zpoždění a směr koncových spínačů.

Krok 11: Funkce - Funkce pohybu - Proměnné

Funkce - Funkce pohybu - Proměnné
Funkce - Funkce pohybu - Proměnné

V této části konfigurujeme mimo jiné všechny proměnné, které zahrnují období maximální a minimální rychlosti, vzdálenost trajektorie a kroky nutné k přerušení trajektorie.

Krok 12: Funkce - Funkce pohybu - Zrychlení

Funkce - Funkce pohybu - Zrychlení
Funkce - Funkce pohybu - Zrychlení
Funkce - Funkce pohybu - Zrychlení
Funkce - Funkce pohybu - Zrychlení

Zde uvádím několik podrobností o tom, jak jsme dospěli k údajům o zrychlení, které byly vypočítány pomocí Torricelliho rovnice, protože to bere v úvahu mezery pro práci se zrychlením a ne čas. Zde je však důležité pochopit, že celá tato rovnice je pouze o jednom řádku kódu.

Na obrázku výše jsme identifikovali trapéz, protože počáteční otáčky jsou špatné pro většinu krokových motorů. Totéž se děje se zpomalením. Z tohoto důvodu vizualizujeme lichoběžník v období mezi zrychlením a zpomalením.

Krok 13: Funkce - Funkce pohybu - Plynulá rychlost

Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost

Zde ponecháme počet kroků použitých při akceleraci, pokračujeme souvislou rychlostí a držíme se maximální rychlosti, což je vidět na obrázku níže.

Krok 14: Funkce - Funkce pohybu - Zpomalení

Funkce - Funkce pohybu - Zpomalení
Funkce - Funkce pohybu - Zpomalení
Funkce - Funkce pohybu - Zpomalení
Funkce - Funkce pohybu - Zpomalení

Tady máme další rovnici, tentokrát s negativní hodnotou zrychlení. Je také zobrazen v řádku kódu, který představuje na obrázku níže obdélník označený Deceleration.

Krok 15: Funkce - Funkce pohybu - Plynulá rychlost

Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost
Funkce - Funkce pohybu - Plynulá rychlost

Vracíme se k nepřetržité rychlosti, abychom pracovali v druhé polovině trajektorie, jak je vidět níže.

Krok 16: Funkce - Funkce Move - Move Turn

Funkce - Funkce Move - Move Turn
Funkce - Funkce Move - Move Turn

V této části pohybujeme motorem o určitý počet otáček v požadovaném směru, přičemž počet otáček převádíme na milimetry. Nakonec přesuneme motor požadovaným směrem.

Krok 17: Graf pohybu - rychlost polohy

Pohybový graf - rychlost polohy
Pohybový graf - rychlost polohy

V tomto grafu mám data, která byla extrahována z rovnice, kterou jsme použili v části Zrychlení. Vzal jsem hodnoty a hrál na seriálu Arduino a šel jsem z toho do Excelu, což vedlo k této tabulce. Tato tabulka ukazuje průběh kroku.

Krok 18: Graf pohybu - pozice vs. Pozice

Pohybový graf - pozice vs. Pozice
Pohybový graf - pozice vs. Pozice

Zde vezmeme polohu v krocích a rychlost a převedeme ji na tečku v mikrosekundách. V tomto kroku si všimneme, že období je nepřímo úměrné rychlosti.

Krok 19: Graf pohybu - rychlost vs. Okamžik

Motion Chart - Velocity vs. Okamžik
Motion Chart - Velocity vs. Okamžik

Nakonec máme rychlost jako funkci okamžiku, a proto máme přímku, protože je to rychlost jako funkce času.

Doporučuje: