Satura rādītājs:

Arduino: Precizitāte pakāpju motoram: 19 soļi
Arduino: Precizitāte pakāpju motoram: 19 soļi

Video: Arduino: Precizitāte pakāpju motoram: 19 soļi

Video: Arduino: Precizitāte pakāpju motoram: 19 soļi
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Jūlijs
Anonim
Image
Image
Globālie mainīgie
Globālie mainīgie

Šodien es jums parādīšu bibliotēku pilna soļa motora vadītājam ar ierobežojuma slēdžiem un motora kustību ar paātrinājumu un mikro soli. Šis Lib, kas darbojas gan Arduino Uno, gan Arduino Mega, ļauj pārvietot dzinējus, pamatojoties ne tikai uz soļu skaitu, bet arī uz milimetriem. Un tas ir arī diezgan precīzs.

Šīs bibliotēkas svarīga iezīme ir tā, ka tā ļauj jums izveidot savu CNC mašīnu, kas ne vienmēr ir tikai X, Y, bet arī, piemēram, sadaļas slēdzis, jo tā nav gatava GRBL, bet gan programmēšana, kas ļauj jums izveidot ideālu mašīnu.

Tomēr šāds apgalvojums ir svarīga detaļa! Šis video ir paredzēts tikai tiem, kuri jau ir pieraduši pie programmēšanas. Ja neesat pazīstams ar Arduino programmēšanu, vispirms manā kanālā vajadzētu noskatīties citus iepazīstinošus videoklipus. Tas ir tāpēc, ka šajā konkrētajā videoklipā es apspriedu padziļinātu tēmu un sīkāk paskaidroju videoklipā izmantoto Lib: Step Motor with Acceleration and End of Stroke.

1. darbība: StepDriver bibliotēka

Šī bibliotēka aptver trīs tirgū visbiežāk sastopamos draiveru veidus: A4988, DRV8825 un TB6600. Tas konfigurē draiveru tapas, ļaujot tiem veikt atiestatīšanu un ievietošanu miega režīmā, kā arī aktivizēt un deaktivizēt motora izejas, kas iedarbojas uz iespējošanas tapu. Tas arī nosaka vadītāja mikropakāpju tapu ievadi un ierobežo slēdžus un to aktivizācijas līmeni (augsts vai zems). Tam ir arī motora kustības kods ar nepārtrauktu paātrinājumu mm / s², maksimālo ātrumu mm / s un minimālo ātrumu mm / s.

Tiem, kuri skatījās video Step Motor ar paātrinājumu un insulta beigām 1. un 2. daļu, lejupielādējiet šo jauno šodien pieejamo bibliotēku, jo veicu dažas izmaiņas šajā pirmajā failā, lai atvieglotu tā lietošanu.

2. darbība. Globālie mainīgie

Es precīzi parādīju, kam paredzēts katrs no globālajiem mainīgajiem.

3. darbība. Funkcijas - vadītāja tapas

Funkcijas - Vadītāja tapu iestatīšana
Funkcijas - Vadītāja tapu iestatīšana

Šeit es aprakstīšu dažas metodes.

Es iestatīju Pinout iestatījumu un Arduino tapas kā izeju.

4. darbība. Funkcijas - vadītāja pamatfunkcijas

Funkcijas - vadītāja pamatfunkcijas
Funkcijas - vadītāja pamatfunkcijas

Šajā daļā mēs strādājam ar draivera konfigurāciju un tā pamatfunkcijām.

5. darbība: funkcijas - motora soļa iestatīšana

Funkcijas - motora soļu iestatīšana
Funkcijas - motora soļu iestatīšana
Funkcijas - motora soļu iestatīšana
Funkcijas - motora soļu iestatīšana

Šajā koda solī mēs konfigurējam soļu skaitu milimetrā, kas motoram jāizpilda.

6. darbība: funkcijas - motora darbības režīma iestatīšana

Funkcijas - motora soļa režīma iestatīšana
Funkcijas - motora soļa režīma iestatīšana
Funkcijas - motora soļa režīma iestatīšana
Funkcijas - motora soļa režīma iestatīšana
Funkcijas - motora soļa režīma iestatīšana
Funkcijas - motora soļa režīma iestatīšana

Šajā tabulā parādīti motora soļa režīma iestatījumi. Šeit ir daži piemēri.

7. solis: Funkcijas - Ierobežojošo slēdžu iestatīšana

Funkcijas - Ierobežojošo slēdžu iestatīšana
Funkcijas - Ierobežojošo slēdžu iestatīšana

Šeit man ir jālasa visas un Būla vērtības. Ir jāiestata, vai aktīvā atslēga ir uz augšu vai uz leju, vienlaikus nosakot maksimālo un minimālo ierobežojumu.

8. solis: Funkcijas - Ierobežojošo slēdžu nolasīšana

Funkcijas - Ierobežojošo slēdžu nolasīšana
Funkcijas - Ierobežojošo slēdžu nolasīšana
Funkcijas - Ierobežojošo slēdžu nolasīšana
Funkcijas - Ierobežojošo slēdžu nolasīšana
Funkcijas - Ierobežojošo slēdžu nolasīšana
Funkcijas - Ierobežojošo slēdžu nolasīšana

Šī daļa atšķiras no Libā esošās daļas, kuru es padarīju pieejamu pagājušajā nedēļā. Kāpēc es to mainīju? Nu, es izveidoju eRead, lai aizstātu dažus citus. Šeit eRead lasīs LVL, digitalRead (pin) un atgriezīs TRUE. Tas viss ir jāveic augstā līmenī. Turpmākais darbs ar aktīvo taustiņu būs zemā līmenī. Es to izmantošu šeit, lai parādītu tabulu "Patiesība".

Koda attēlā es ievietoju diagrammu, kas palīdzēs saprast, ka šajā avota koda daļā es virzos uz augšupejošu un vēl neesmu nospiedis kursa beigu taustiņu.

Tagad šajā attēlā os kodu bool DRV8825 es parādīju dzinēju, kas joprojām virzās augšanas virzienā. Tomēr maksimālās robežas slēdzis ir aktivizēts. Tad mehānismam ir jāpārtrauc kustība.

Visbeidzot, es rādu to pašu kustību, bet pretējā virzienā.

Šeit jums jau ir aktivizēts kursa beigu slēdzis.

9. solis: Funkcijas - kustības iestatīšana

Funkcijas - kustības iestatīšana
Funkcijas - kustības iestatīšana

MotionConfig metodes galvenā lietderība ir milimetru sekundē (mērījums, ko izmanto CNC mašīnās) pārvērst pakāpēs, lai atbilstu pakāpju motora kontrolierim. Tāpēc šajā daļā es parādīju mainīgos, lai saprastu soļus, nevis milimetrus.

10. solis: Funkcijas - kustību funkcija

Funkcijas - kustību funkcija
Funkcijas - kustību funkcija

Šajā solī mēs apstrādājam komandu, kas pārvieto soli vēlamajā virzienā mikrosekundēs. Mēs arī iestatījām vadītāja virziena tapu, aiztures laiku un ierobežojošo slēdžu virzienu.

11. solis: funkcijas - kustību funkcija - mainīgie

Funkcijas - kustību funkcija - mainīgie
Funkcijas - kustību funkcija - mainīgie

Šajā daļā mēs konfigurējam visus mainīgos, kas ietver maksimālā un minimālā ātruma periodus, trajektorijas attālumu un citas darbības, kas nepieciešamas, lai pārtrauktu trajektoriju.

12. solis: funkcijas - kustību funkcija - paātrinājums

Funkcijas - kustību funkcija - paātrinājums
Funkcijas - kustību funkcija - paātrinājums
Funkcijas - kustību funkcija - paātrinājums
Funkcijas - kustību funkcija - paātrinājums

Šeit es sniedzu sīkāku informāciju par to, kā mēs nonācām pie paātrinājuma datiem, kas tika aprēķināti, izmantojot Toričelli vienādojumu, jo tas ņem vērā atstarpes, lai veiktu paātrinājumu, nevis laiku. Bet šeit ir svarīgi saprast, ka viss šis vienādojums attiecas tikai uz vienu koda rindu.

Augšējā attēlā mēs identificējām trapeci, jo sākotnējie apgriezieni ir slikti lielākajai daļai soļu motoru. Tas pats notiek ar palēninājumu. Šī iemesla dēļ mēs vizualizējam trapeci laika posmā starp paātrinājumu un palēnināšanos.

13. darbība: funkcijas - kustības funkcija - nepārtraukts ātrums

Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums

Šeit mēs saglabājam paātrinājumā izmantoto soļu skaitu, mēs turpinām nepārtrauktā ātrumā un saglabājam maksimālo ātrumu, kas redzams zemāk esošajā attēlā.

14. darbība. Funkcijas - kustību funkcija - palēninājums

Funkcijas - kustību funkcija - palēninājums
Funkcijas - kustību funkcija - palēninājums
Funkcijas - kustību funkcija - palēninājums
Funkcijas - kustību funkcija - palēninājums

Šeit mums ir vēl viens vienādojums, šoreiz ar negatīvu paātrinājuma vērtību. Tas tiek parādīts arī koda rindiņā, kas attēlā zemāk attēlo taisnstūri ar nosaukumu Palēninājums.

15. solis: Funkcijas - Kustības funkcija - Nepārtraukts ātrums

Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums
Funkcijas - kustības funkcija - nepārtraukts ātrums

Mēs atgriežamies pie nepārtraukta ātruma, lai strādātu trajektorijas otrajā pusē, kā redzams zemāk.

16. darbība: funkcijas - pārvietošanas funkcija - pagriezienu pārvietošana

Funkcijas - Pārvietot funkciju - Pārvietot pagriezienus
Funkcijas - Pārvietot funkciju - Pārvietot pagriezienus

Šajā daļā mēs pārvietojam motoru noteiktā apgriezienu skaitā vēlamajā virzienā, pārvēršot pagriezienu skaitu milimetros. Visbeidzot, mēs pārvietojam motoru vajadzīgajā virzienā.

17. solis: kustību diagramma - pozīcijas ātrums

Kustības diagramma - pozīcijas ātrums
Kustības diagramma - pozīcijas ātrums

Šajā grafikā man ir dati, kas iegūti no vienādojuma, ko izmantojām paātrinājuma daļā. Es paņēmu vērtības un spēlēju Arduino sērijā, un es pārgāju no šī uz Excel, kā rezultātā tika izveidota šī tabula. Šī tabula parāda soļa gaitu.

18. solis: kustību diagramma - pozīcija vs. Pozīcija

Kustības diagramma - Pozīcija vs. Pozīcija
Kustības diagramma - Pozīcija vs. Pozīcija

Šeit mēs paņemam pozīciju, soli un ātrumu un pārvēršam to par periodu mikrosekundēs. Šajā posmā mēs atzīmējam, ka periods ir apgriezti proporcionāls ātrumam.

19. solis: kustību diagramma - ātrums salīdzinājumā ar ātrumu Mirklis

Kustību diagramma - Velocity vs. Mirklis
Kustību diagramma - Velocity vs. Mirklis

Visbeidzot, mums ir ātrums kā mirkļa funkcija, un tāpēc mums ir taisna līnija, jo tas ir ātrums kā laika funkcija.

Ieteicams: