Obsah:

Arduino: Precision Lib pre krokový motor: 19 krokov
Arduino: Precision Lib pre krokový motor: 19 krokov

Video: Arduino: Precision Lib pre krokový motor: 19 krokov

Video: Arduino: Precision Lib pre krokový motor: 19 krokov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Júl
Anonim
Image
Image
Globálne premenné
Globálne premenné

Dnes vám ukážem knižnicu kompletného krokového ovládača motora s koncovými spínačmi a pohybu motora so zrýchlením a mikrokrokom. Táto Lib, ktorá funguje na Arduino Uno aj na Arduino Mega, vám umožňuje presúvať motory nielen podľa počtu krokov, ale aj podľa milimetrov. A je to aj celkom presné.

Dôležitou vlastnosťou tejto knižnice je, že vám umožňuje postaviť si vlastný CNC stroj, ktorý nie je nevyhnutne len X, Y, ale napríklad aj prepínač sekcií, pretože to nie je hotový GRBL, ale skôr programovanie, ktoré vám umožní vytvoriť pre vás ideálny stroj.

Nasledujúce tvrdenie je však dôležitým detailom! Toto video je len pre tých, ktorí sú už zvyknutí na programovanie. Ak nie ste oboznámení s programovaním Arduino, mali by ste si najskôr pozrieť ďalšie úvodné videá na mojom kanáli. Dôvodom je, že v tomto konkrétnom videu diskutujem o pokročilej téme a podrobnejšie vysvetľujem Lib, ktorý bol vo videu použitý: Krokový motor so zrýchlením a koniec zdvihu.

Krok 1: Knižnica StepDriver

Táto knižnica pokrýva tri najbežnejšie typy ovládačov na trhu: A4988, DRV8825 a TB6600. Konfiguruje piny ovládačov, čo im umožňuje vykonať reset a umiestnenie do režimu spánku, ako aj aktivovať a deaktivovať výstupy motora pôsobiace na kolík Enable. Tiež nastavuje vstupy mikrokrokových kolíkov vodiča a obmedzuje spínače a úroveň ich aktivácie (vysoká alebo nízka). Má tiež kód pohybu motora s plynulým zrýchlením v mm / s², maximálnou rýchlosťou v mm / s a minimálnou rýchlosťou v mm / s.

Tí, ktorí sledovali časti 1 a 2 videa Krokový motor so zrýchlením a koncom zdvihu, stiahnite si túto novú knižnicu, ktorá je dnes k dispozícii, pretože som v prvom súbore vykonal niekoľko zmien, aby som uľahčil jeho používanie.

Krok 2: Globálne premenné

Ukazujem presne, na čo slúžia jednotlivé globálne premenné.

Krok 3: Funkcie - Nastavenie pinov ovládača

Funkcie - Nastavenie kolíkov ovládača
Funkcie - Nastavenie kolíkov ovládača

Tu popíšem niektoré metódy.

Ako výstup som nastavil Pinout a piny Arduino.

Krok 4: Funkcie - základné funkcie ovládača

Funkcie - základné funkcie ovládača
Funkcie - základné funkcie ovládača

V tejto časti pracujeme s konfiguráciou ovládača a jeho základnými funkciami.

Krok 5: Funkcie - Nastavenie kroku motora

Funkcie - Nastavenie kroku motora
Funkcie - Nastavenie kroku motora
Funkcie - Nastavenie kroku motora
Funkcie - Nastavenie kroku motora

V tomto kroku kódu nakonfigurujeme počet krokov na milimeter, ktoré musí motor vykonať.

Krok 6: Funkcie - Nastavenie kroku motora

Funkcie - Nastavenie režimu motora
Funkcie - Nastavenie režimu motora
Funkcie - Nastavenie režimu motora
Funkcie - Nastavenie režimu motora
Funkcie - Nastavenie kroku motora
Funkcie - Nastavenie kroku motora

Táto tabuľka ukazuje nastavenia pre krokový režim motora. Tu je niekoľko príkladov.

Krok 7: Funkcie - Nastavenie koncových spínačov

Funkcie - Nastavenie koncových spínačov
Funkcie - Nastavenie koncových spínačov

Tu musím prečítať celé a booleovské hodnoty. Pri nastavení maximálneho a minimálneho koncového špendlíka je potrebné nastaviť, či je aktívny kľúč hore alebo dole.

Krok 8: Funkcie - čítanie koncových spínačov

Funkcie - Čítanie koncových spínačov
Funkcie - Čítanie koncových spínačov
Funkcie - Čítanie koncových spínačov
Funkcie - Čítanie koncových spínačov
Funkcie - Čítanie koncových spínačov
Funkcie - Čítanie koncových spínačov

Táto časť sa líši od tej v Lib, ktorú som minulý týždeň sprístupnil. Prečo som to zmenil? Vytvoril som eRead, aby som nahradil niektoré ďalšie. Tu číta eRead LVL, digitalRead (pin) a vráti hodnotu TRUE. To všetko je potrebné vykonať na vysokej úrovni. Nasledujúca práca s aktívnym kľúčom bude na nízkej úrovni. Tu to použijem, aby som vám ukázal tabuľku „Pravda“.

Na obrázok kódu som umiestnil diagram, ktorý pomôže porozumieť tomu, že v tejto časti zdrojového kódu smerujem k Vzostupne a ešte som nenarazil na koniec kurzu.

Teraz na tomto obrázku os code bool DRV8825 ukazujem, ako sa motor stále pohybuje v rastúcom smere. Aktivoval sa však spínač maximálneho limitu. Mechanizmus teda musí zastaviť pohyb.

Napokon ukazujem rovnaký pohyb, ale v opačnom smere.

Tu už máte aktivovaný spínač konca kurzu.

Krok 9: Funkcie - Nastavenie pohybu

Funkcie - Nastavenie pohybu
Funkcie - Nastavenie pohybu

Hlavnou užitočnosťou metódy motionConfig je prevod milimetra za sekundu (meranie používané v CNC strojoch) na kroky, aby sa stretol s ovládačom krokového motora. V tejto časti preto inštancujem premenné, aby som porozumel krokom, a nie milimetrom.

Krok 10: Funkcie - pohybová funkcia

Funkcie - pohybová funkcia
Funkcie - pohybová funkcia

V tomto kroku ošetríme príkaz, ktorý posunie krok v požadovanom smere v období v mikrosekundách. Nastavili sme tiež smerový kolík vodiča, čas oneskorenia a smer koncových spínačov.

Krok 11: Funkcie - Pohybová funkcia - Premenné

Funkcie - Pohybová funkcia - Premenné
Funkcie - Pohybová funkcia - Premenné

V tejto časti konfigurujeme okrem iného všetky premenné, ktoré zahŕňajú obdobia maximálnej a minimálnej rýchlosti, vzdialenosť trajektórie a kroky potrebné na prerušenie trajektórie.

Krok 12: Funkcie - Pohybová funkcia - Zrýchlenie

Funkcie - Pohybová funkcia - Zrýchlenie
Funkcie - Pohybová funkcia - Zrýchlenie
Funkcie - Pohybová funkcia - Zrýchlenie
Funkcie - Pohybová funkcia - Zrýchlenie

Tu uvádzam niekoľko podrobností o tom, ako sme prišli k údajom o zrýchlení, ktoré boli vypočítané pomocou Torricelliho rovnice, pretože sa v ňom berú do úvahy priestory na zrýchlenie a nie čas. Tu je však dôležité pochopiť, že celá táto rovnica je len o jednom riadku kódu.

Na obrázku vyššie sme identifikovali trapéz, pretože počiatočné otáčky sú pre väčšinu krokových motorov zlé. To isté sa stane so spomalením. Z tohto dôvodu vizualizujeme lichobežník v období medzi zrýchlením a spomalením.

Krok 13: Funkcie - Pohybová funkcia - Nepretržitá rýchlosť

Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť

Tu ponecháme počet krokov použitých na zrýchlenie, pokračujeme v nepretržitej rýchlosti a držíme sa maximálnej rýchlosti, ktorú je možné vidieť na obrázku nižšie.

Krok 14: Funkcie - Pohybová funkcia - Spomalenie

Funkcie - Pohybová funkcia - Spomalenie
Funkcie - Pohybová funkcia - Spomalenie
Funkcie - Pohybová funkcia - Spomalenie
Funkcie - Pohybová funkcia - Spomalenie

Tu máme ďalšiu rovnicu, tentokrát s negatívnou hodnotou zrýchlenia. Je tiež zobrazený v riadku kódu, ktorý na obrázku nižšie zobrazuje obdĺžnik s názvom Spomalenie.

Krok 15: Funkcie - Pohybová funkcia - Nepretržitá rýchlosť

Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť
Funkcie - Pohybová funkcia - Súvislá rýchlosť

Vrátime sa k nepretržitej rýchlosti, aby sme pracovali v druhej polovici trajektórie, ako je vidieť nižšie.

Krok 16: Funkcie - Presunúť funkciu - Posunúť zákruty

Funkcie - Funkcia pohybu - Presunúť zákruty
Funkcie - Funkcia pohybu - Presunúť zákruty

V tejto časti posúvame motor o určitý počet závitov v požadovanom smere, pričom počet závitov prevádzame na milimetre. Nakoniec pohneme motorom v požadovanom smere.

Krok 17: Graf pohybu - rýchlosť polohy

Pohybová schéma - rýchlosť polohy
Pohybová schéma - rýchlosť polohy

V tomto grafe mám údaje, ktoré boli extrahované z rovnice, ktorú sme použili v časti Zrýchlenie. Vzal som hodnoty a hral som na seriáli Arduino a prešiel som z toho do Excelu, čo viedlo k tejto tabuľke. Táto tabuľka ukazuje priebeh kroku.

Krok 18: Graf pohybu - pozícia vs. Pozícia

Pohybová schéma - pozícia vs. Pozícia
Pohybová schéma - pozícia vs. Pozícia

Tu vezmeme pozíciu v krokoch a rýchlosť a prevedieme ju na bodku v mikrosekundách. V tomto kroku poznamenávame, že obdobie je nepriamo úmerné rýchlosti.

Krok 19: Graf pohybu - rýchlosť vs. Moment

Pohybová schéma - rýchlosť vs. Moment
Pohybová schéma - rýchlosť vs. Moment

Nakoniec máme rýchlosť ako funkciu momentu a kvôli tomu máme priamku, pretože je to rýchlosť ako funkcia času.

Odporúča: