Kazalo:

Arduino: Precision Lib za koračni motor: 19 korakov
Arduino: Precision Lib za koračni motor: 19 korakov

Video: Arduino: Precision Lib za koračni motor: 19 korakov

Video: Arduino: Precision Lib za koračni motor: 19 korakov
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Image
Image
Globalne spremenljivke
Globalne spremenljivke

Danes vam bom pokazal knjižnico za voznika motorja s polnim korakom s končnimi stikali in premikanje motorja s pospeševanjem in mikro korakom. Ta Lib, ki deluje tako na Arduino Uno kot na Arduino Mega, vam omogoča premikanje motorjev ne le glede na število korakov, ampak tudi na milimetre. In tudi precej natančno.

Pomembna značilnost te knjižnice je, da vam omogoča izdelavo lastnega CNC stroja, ki ni nujno samo X, Y, ampak tudi stikalo za odseke, na primer, ker ne gre za pripravljen GRBL, ampak za programiranje, ki vam omogoča, da naredite idealen stroj za vas.

Naslednja izjava pa je pomembna podrobnost! Ta video je namenjen samo tistim, ki so že vajeni programiranja. Če niste seznanjeni s programiranjem Arduino, si najprej oglejte druge uvodne videoposnetke na mojem kanalu. To je zato, ker v tem posebnem videu razpravljam o napredni temi in podrobneje pojasnjujem Lib, uporabljen v videoposnetku: Koračni motor s pospeškom in koncem hoda.

Korak: Knjižnica StepDriver

Ta knjižnica zajema tri najpogostejše vrste gonilnikov na trgu: A4988, DRV8825 in TB6600. Konfigurira zatiče gonilnikov, ki jim omogočajo ponastavitev in preklop v način spanja ter aktiviranje in deaktiviranje izhodov motorja, ki delujejo na pin Enable. Prav tako nastavi vhode gonilnikov mikrokoračnih zatičev in omeji stikala ter njihovo stopnjo aktiviranja (visoko ali nizko). Ima tudi kodo gibanja motorja z neprekinjenim pospeševanjem v mm / s², največjo hitrost v mm / s in najmanjšo hitrost v mm / s.

Za tiste, ki ste gledali 1. in 2. del videoposnetka Step Motor with Acceleration and End of Stroke, prenesite to novo knjižnico, ki je na voljo danes, ker sem v tej prvi datoteki naredil nekaj sprememb, da bi olajšal njeno uporabo.

2. korak: Globalne spremenljivke

Pokažem natančno, čemu služi vsaka globalna spremenljivka.

3. korak: Funkcije - nastavitev gonilnikov

Funkcije - Nastavitev gonilnikov
Funkcije - Nastavitev gonilnikov

Tukaj opisujem nekaj metod.

Za izhod sem nastavil nastavitev Pinout in zatiči Arduino.

4. korak: Funkcije - osnovne funkcije gonilnika

Funkcije - osnovne funkcije gonilnika
Funkcije - osnovne funkcije gonilnika

V tem delu obravnavamo konfiguracijo gonilnika in njegove osnovne funkcije.

5. korak: Funkcije - nastavitev koraka motorja

Funkcije - Nastavitev koraka motorja
Funkcije - Nastavitev koraka motorja
Funkcije - Nastavitev koraka motorja
Funkcije - Nastavitev koraka motorja

V tem koraku kode konfiguriramo količino korakov na milimeter, ki jih mora motor izvesti.

6. korak: Funkcije - Nastavitev načina motornega koraka

Funkcije - Nastavitev načina motornega koraka
Funkcije - Nastavitev načina motornega koraka
Funkcije - Nastavitev načina motornega koraka
Funkcije - Nastavitev načina motornega koraka
Funkcije - Nastavitev načina motornega koraka
Funkcije - Nastavitev načina motornega koraka

Ta tabela prikazuje nastavitve za način koraka motorja. Tukaj je nekaj primerov.

7. korak: Funkcije - Nastavitev mejnih stikal

Funkcije - Nastavitev mejnih stikal
Funkcije - Nastavitev mejnih stikal

Tukaj moram prebrati celotne in logične vrednosti. Določiti je treba, ali je aktivna tipka gor ali dol, pri tem pa nastaviti največjo in najnižjo mejno konico.

8. korak: Funkcije - branje mejnih stikal

Funkcije - Odčitavanje mejnih stikal
Funkcije - Odčitavanje mejnih stikal
Funkcije - Odčitavanje mejnih stikal
Funkcije - Odčitavanje mejnih stikal
Funkcije - Odčitavanje mejnih stikal
Funkcije - Odčitavanje mejnih stikal

Ta del se razlikuje od tistega v Libu, ki sem ga dal na voljo prejšnji teden. Zakaj sem ga spremenil? No, ustvaril sem eRead, da bi nadomestil nekatere druge. Tukaj bo eRead prebral LVL, digitalRead (pin) in vrnil TRUE. Vse to je treba izvesti na visoki ravni. Naslednje delo z aktivnim ključem bo na nizki ravni. Tukaj bom uporabil za prikaz tabele "Resnica".

Na podobo kode sem postavil diagram, ki bo pomagal razumeti, da se v tem delu izvorne kode premikam proti naraščajočemu in še nisem pritisnil tipke za konec tečaja.

Zdaj na tej sliki os kod bool DRV8825 prikazujem, da se motor še vedno premika v smeri naraščanja. Aktivirano je maksimalno stikalo. Mehanizem mora torej ustaviti gibanje.

Za konec pokažem isto gibanje, vendar v nasprotni smeri.

Tukaj imate že aktivirano stikalo za konec tečaja.

9. korak: Funkcije - Nastavitev gibanja

Funkcije - Nastavitev gibanja
Funkcije - Nastavitev gibanja

Glavna uporabnost metode motionConfig je pretvorba milimetra na sekundo (meritev, ki se uporablja pri CNC strojih) v korake, da se zadovolji krmilnik koračnega motorja. V tem delu zato ustvarim spremenljivke za razumevanje korakov in ne milimetrov.

10. korak: Funkcije - Funkcija gibanja

Funkcije - Funkcija gibanja
Funkcije - Funkcija gibanja

V tem koraku obravnavamo ukaz, ki premakne korak v želeno smer v obdobju v mikrosekundah. Nastavili smo tudi voznikov smerni zatič, čas zakasnitve in smer končnih stikal.

11. korak: Funkcije - Gibanje - Spremenljivke

Funkcije - Funkcija gibanja - Spremenljivke
Funkcije - Funkcija gibanja - Spremenljivke

V tem delu konfiguriramo vse spremenljivke, ki med drugim vključujejo obdobja največje in najmanjše hitrosti, razdaljo poti in korake, potrebne za prekinitev poti.

12. korak: Funkcije - Gibanje - Pospešek

Funkcije - Funkcija gibanja - Pospešek
Funkcije - Funkcija gibanja - Pospešek
Funkcije - Funkcija gibanja - Pospešek
Funkcije - Funkcija gibanja - Pospešek

Tukaj predstavljam nekaj podrobnosti o tem, kako smo prišli do podatkov o pospešku, ki je bil izračunan po Torricellijevi enačbi, saj pri tem upoštevamo prostore za delo s pospeškom in ne časa. Pri tem pa je pomembno razumeti, da celotna enačba vključuje le eno vrstico kode.

Na zgornji sliki smo prepoznali trapez, ker so začetni vrtljaji slabi za večino koračnih motorjev. Enako se zgodi z zaviranjem. Zaradi tega si vizualiziramo trapez v obdobju med pospeševanjem in pojemkom.

Korak: Funkcije - Funkcija gibanja - Neprekinjena hitrost

Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost

Tu ohranimo število korakov, uporabljenih pri pospeševanju, nadaljujemo z neprekinjeno hitrostjo in se držimo največje hitrosti, kar je razvidno iz spodnje slike.

Korak 14: Funkcije - Gibanje - Zaviranje

Funkcije - Funkcija gibanja - Pojemanje
Funkcije - Funkcija gibanja - Pojemanje
Funkcije - Funkcija gibanja - Pojemanje
Funkcije - Funkcija gibanja - Pojemanje

Tu imamo še eno enačbo, tokrat z negativno vrednostjo pospeška. Prikazan je tudi v vrstici kode, ki na spodnji sliki predstavlja pravokotnik z oznako Pojemanje.

Korak 15: Funkcije - Funkcija gibanja - Neprekinjena hitrost

Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost
Funkcije - Funkcija gibanja - Neprekinjena hitrost

Vrnemo se k neprekinjeni hitrosti, da obdelamo drugo polovico poti, kot je prikazano spodaj.

Korak 16: Funkcije - Premik Funkcija - Premik Zavoji

Funkcije - Premik Funkcija - Premik Zavija
Funkcije - Premik Funkcija - Premik Zavija

V tem delu premaknemo motor v določenem številu zavojev v želeno smer, število obratov pretvorimo v milimetre. Končno premaknemo motor v zahtevano smer.

Korak 17: Diagram gibanja - hitrost položaja

Diagram gibanja - hitrost položaja
Diagram gibanja - hitrost položaja

V tem grafu imam podatke, ki so bili izvlečeni iz enačbe, ki smo jo uporabili v delu pospeška. Vzel sem vrednosti in igral na seriji Arduino in od tega prešel v Excel, kar je povzročilo to tabelo. Ta tabela prikazuje napredek koraka.

18. korak: Diagram gibanja - položaj vs. Položaj

Grafikon gibanja - položaj vs. Položaj
Grafikon gibanja - položaj vs. Položaj

Tu v korakih vzamemo položaj in hitrost ter jo pretvorimo v obdobje v mikrosekundah. V tem koraku ugotavljamo, da je obdobje obratno sorazmerno s hitrostjo.

Korak 19: Diagram gibanja - hitrost vs. Trenutek

Diagram gibanja - Velocity vs. Trenutek
Diagram gibanja - Velocity vs. Trenutek

Končno imamo hitrost kot funkcijo trenutka in zaradi tega imamo ravno črto, saj je to hitrost kot funkcija časa.

Priporočena: