Cuprins:

Arduino: Precision Lib pentru motorul pas cu pas: 19 pași
Arduino: Precision Lib pentru motorul pas cu pas: 19 pași

Video: Arduino: Precision Lib pentru motorul pas cu pas: 19 pași

Video: Arduino: Precision Lib pentru motorul pas cu pas: 19 pași
Video: Arduino Stepper Motor - 28byj-48 #steppermotor #arduino 2024, Iulie
Anonim
Image
Image
Variabile globale
Variabile globale

Astăzi, vă voi arăta o bibliotecă pentru un șofer de motor cu pas complet cu întrerupătoare de limită și mișcarea motorului cu accelerație și micro pas. Acest Lib, care funcționează atât pe Arduino Uno, cât și pe Arduino Mega, vă permite să mutați motoarele nu numai pe baza numărului de trepte, ci și pe milimetri. Și este destul de precisă.

O caracteristică importantă a acestei biblioteci este că vă permite să vă construiți propria mașină CNC, care nu este neapărat doar X, Y, ci și un comutator de secțiune, de exemplu, deoarece nu este un GRBL gata, ci mai degrabă programarea care vă permite să faceți mașina ideală pentru dvs.

Cu toate acestea, următoarea afirmație este un detaliu important! Acest videoclip este doar pentru cei care sunt deja obișnuiți cu programarea. Dacă nu sunteți familiarizați cu programarea Arduino, ar trebui să vizionați mai întâi alte videoclipuri introductive pe canalul meu. Acest lucru se datorează faptului că discut un subiect avansat în acest videoclip specific și explic în detaliu Lib-ul folosit în videoclip: Motor pas cu accelerare și sfârșit de cursă.

Pasul 1: Biblioteca StepDriver

Această bibliotecă acoperă cele mai comune trei tipuri de drivere de pe piață: A4988, DRV8825 și TB6600. Configurează pinii driverelor, permițându-le să efectueze resetarea și plasarea în modul Sleep, precum și să activeze și să dezactiveze ieșirile motorului care acționează pe pinul Enable. De asemenea, setează intrările pinilor micro-pas ai driverului și limitează comutatoarele și nivelul de activare al acestora (ridicat sau scăzut). De asemenea, are un cod de mișcare a motorului cu accelerație continuă în mm / s², viteză maximă în mm / s și viteză minimă în mm / s.

Pentru cei care au urmărit părțile 1 și 2 ale videoclipului Step Motor with Acceleration and End of Stroke, descărcați această nouă bibliotecă disponibilă astăzi, deoarece am făcut câteva modificări în acel prim fișier pentru a facilita utilizarea acestuia.

Pasul 2: Variabile globale

Arăt exact la ce servește fiecare dintre variabilele globale.

Pasul 3: Funcții - Setarea știfturilor șoferului

Funcții - Setarea știfturilor șoferului
Funcții - Setarea știfturilor șoferului

Aici, descriu câteva metode.

Am setat setarea Pinout și pinii Arduino ca ieșire.

Pasul 4: Funcții - Funcții de bază ale driverului

Funcții - Funcții de bază ale șoferului
Funcții - Funcții de bază ale șoferului

În această parte, lucrăm cu configurația driverului și funcțiile sale de bază.

Pasul 5: Funcții - Setare pas motor

Funcții - Setare pas motor
Funcții - Setare pas motor
Funcții - Setare pas motor
Funcții - Setare pas motor

În acest pas al codului, configurăm cantitatea de pași pe milimetru pe care trebuie să îi execute motorul.

Pasul 6: Funcții - Setarea modului pasului motorului

Funcții - Setarea modului pas cu motor
Funcții - Setarea modului pas cu motor
Funcții - Setarea modului pas motor
Funcții - Setarea modului pas motor
Funcții - Setarea modului pas cu motor
Funcții - Setarea modului pas cu motor

Acest tabel prezintă setările pentru modul pas cu motor. Aici sunt cateva exemple.

Pasul 7: Funcții - Setarea comutatoarelor de limită

Funcții - Setarea comutatoarelor de limită
Funcții - Setarea comutatoarelor de limită

Aici, trebuie să citesc valorile întregi și booleene. Este necesar să stabiliți dacă tasta activă este sus sau jos, în timp ce setați limita maximă și minimă.

Pasul 8: Funcții - Citirea comutatoarelor de limită

Funcții - Citirea comutatoarelor de limită
Funcții - Citirea comutatoarelor de limită
Funcții - Citirea comutatoarelor de limită
Funcții - Citirea comutatoarelor de limită
Funcții - Citirea comutatoarelor de limită
Funcții - Citirea comutatoarelor de limită

Această parte este diferită de cea din Lib pe care am pus-o la dispoziție săptămâna trecută. De ce l-am schimbat? Ei bine, am creat eRead pentru a înlocui altele. Aici, eRead va citi LVL, digitalRead (pin) și va reveni la TRUE. Toate acestea trebuie efectuate la maxim. Următoarea lucrare cu tasta activă va fi la nivelul scăzut. Îl voi folosi aici pentru a vă arăta tabelul „Adevărul”.

În imaginea codului, am plasat o diagramă care vă va ajuta să înțelegeți că, în această parte a codului sursă, mă îndrept spre Ascendent și nu am lovit încă tasta de sfârșit de curs.

Acum, în această imagine a codului bool DRV8825, arăt motorul încă în mișcare în direcția de creștere. Cu toate acestea, comutatorul de limită maxim activat. Prin urmare, mecanismul trebuie să oprească mișcarea.

În cele din urmă, arată aceeași mișcare, dar în direcția opusă.

Aici, aveți deja activat comutatorul de sfârșit de curs.

Pasul 9: Funcții - Configurare mișcare

Funcții - Configurare mișcare
Funcții - Configurare mișcare

Utilitatea principală a metodei motionConfig este de a converti milimetri pe secundă (o măsurătoare utilizată în mașinile CNC) în pași, pentru a îndeplini controlerul unui motor pas cu pas. Prin urmare, în această parte am instanțiat variabilele pentru a înțelege pașii și nu milimetrii.

Pasul 10: Funcții - Funcția de mișcare

Funcții - Funcția de mișcare
Funcții - Funcția de mișcare

În acest pas, tratăm comanda care mută un pas în direcția dorită într-o perioadă în microsecunde. De asemenea, setăm știftul de direcție al șoferului, timpul de întârziere și direcția comutatoarelor de cursă.

Pasul 11: Funcții - Funcție de mișcare - Variabile

Funcții - Funcție de mișcare - Variabile
Funcții - Funcție de mișcare - Variabile

În această parte, configurăm toate variabilele care implică perioade de viteză maximă și minimă, distanța traiectoriei și pașii necesari pentru a întrerupe traiectoria, printre altele.

Pasul 12: Funcții - Funcție de mișcare - Accelerare

Funcții - Funcție de mișcare - Accelerație
Funcții - Funcție de mișcare - Accelerație
Funcții - Funcție de mișcare - Accelerație
Funcții - Funcție de mișcare - Accelerație

Aici, vă prezint câteva detalii despre modul în care am ajuns la datele de accelerație, care au fost calculate prin ecuația lui Torricelli, deoarece acest lucru ia în considerare spațiile pentru a lucra accelerația și nu timpul. Dar, aici este important să înțelegem că această ecuație este doar despre o singură linie de cod.

Am identificat un trapez în imaginea de mai sus, deoarece RPM-urile inițiale sunt rele pentru majoritatea motoarelor pas cu pas. Același lucru se întâmplă și cu decelerarea. Din acest motiv, vizualizăm un trapez în perioada dintre accelerație și decelerare.

Pasul 13: Funcții - Funcție de mișcare - Viteză continuă

Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă

Aici păstrăm numărul de pași folosiți în accelerație, continuăm cu viteză continuă și păstrăm cu viteza maximă, care poate fi văzută în imaginea de mai jos.

Pasul 14: Funcții - Funcție de mișcare - Decelerare

Funcții - Funcție de mișcare - Decelerare
Funcții - Funcție de mișcare - Decelerare
Funcții - Funcție de mișcare - Decelerare
Funcții - Funcție de mișcare - Decelerare

Aici avem o altă ecuație, de data aceasta cu o valoare de accelerație negativă. De asemenea, este afișat într-o linie de cod, care reprezintă, în imaginea de mai jos, dreptunghiul etichetat Decelerare.

Pasul 15: Funcții - Funcție de mișcare - Viteză continuă

Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă
Funcții - Funcție de mișcare - Viteză continuă

Revenim la viteza continuă pentru a lucra a doua jumătate a traiectoriei, așa cum se vede mai jos.

Pasul 16: Funcții - Funcție Mutare - Mutare ture

Funcții - Mutare funcție - Mutare ture
Funcții - Mutare funcție - Mutare ture

În această parte, mutăm motorul într-un anumit număr de ture în direcția dorită, transformând numărul de ture în milimetri. În cele din urmă, mutăm motorul în direcția solicitată.

Pasul 17: Diagrama de mișcare - Viteza de poziție

Diagrama de mișcare - Viteza poziției
Diagrama de mișcare - Viteza poziției

În acest grafic, am date extrase din ecuația pe care am folosit-o în partea Acceleration. Am luat valorile și am jucat pe serialul Arduino și am trecut de la acesta la Excel, ceea ce a dus la acest tabel. Acest tabel arată progresul pasului.

Pasul 18: Diagrama de mișcare - Poziția vs. Poziţie

Diagrama de mișcare - Poziția vs. Poziţie
Diagrama de mișcare - Poziția vs. Poziţie

Aici, luăm poziția, în pași, și viteza și o convertim în perioadă, în microsecundă. Observăm în acest pas că perioada este invers proporțională cu viteza.

Pasul 19: Diagrama de mișcare - Velocity vs. Moment

Diagrama de mișcare - Velocity vs. Moment
Diagrama de mișcare - Velocity vs. Moment

În cele din urmă, avem viteza în funcție de moment și, din această cauză, avem o linie dreaptă, deoarece este viteza în funcție de timp.

Recomandat: