Turinys:

„Arduino“: „Precision Lib“žingsniniam varikliui: 19 žingsnių
„Arduino“: „Precision Lib“žingsniniam varikliui: 19 žingsnių

Video: „Arduino“: „Precision Lib“žingsniniam varikliui: 19 žingsnių

Video: „Arduino“: „Precision Lib“žingsniniam varikliui: 19 žingsnių
Video: How to use Mosfet Optocoupled HW-532 to control up to 30V DC Motor Speed or load using Arduino 2024, Gruodis
Anonim
Image
Image
Pasauliniai kintamieji
Pasauliniai kintamieji

Šiandien aš jums parodysiu viso žingsnio variklio vairuotojo biblioteką su ribiniais jungikliais ir variklio judėjimą pagreičiu ir mikro žingsniu. Šis „Lib“, veikiantis tiek „Arduino Uno“, tiek „Arduino Mega“, leidžia perkelti variklius, remiantis ne tik žingsnių skaičiumi, bet ir milimetrais. Ir jis yra gana tikslus.

Svarbi šios bibliotekos ypatybė yra ta, kad ji leidžia jums sukurti savo CNC mašiną, kuri nebūtinai yra tik X, Y, bet ir, pavyzdžiui, sekcijos jungiklis, nes tai nėra paruoštas GRBL, o programavimas, leidžia jums sukurti geriausią mašiną.

Tačiau šis teiginys yra svarbi detalė! Šis vaizdo įrašas skirtas tik tiems, kurie jau pripratę prie programavimo. Jei nesate susipažinę su „Arduino“programavimu, pirmiausia turėtumėte žiūrėti kitus įvadinius vaizdo įrašus mano kanale. Taip yra todėl, kad šiame konkrečiame vaizdo įraše aptariu išplėstinę temą ir išsamiau paaiškinu vaizdo įraše naudojamą „Lib“: „Step Motor with Acceleration and End of Stroke“.

1 žingsnis: „StepDriver“biblioteka

Ši biblioteka apima tris dažniausiai rinkoje esančius tvarkyklių tipus: A4988, DRV8825 ir TB6600. Jis sukonfigūruoja tvarkyklių kaiščius, leisdamas jiems iš naujo nustatyti ir perkelti į miego režimą, taip pat įjungti ir išjungti variklio išėjimus, veikiančius pagal įjungimo kaištį. Taip pat nustatomi vairuotojo mikropakopinių kaiščių įėjimai, ribojami jungikliai ir jų aktyvavimo lygis (aukštas arba žemas). Jis taip pat turi variklio judesio kodą su nuolatiniu pagreičiu mm / s², didžiausiu greičiu mm / s ir minimaliu greičiu mm / s.

Tie, kurie žiūrėjo vaizdo įrašo „Step Motor with Acceleration and Stroke“1 ir 2 dalis, atsisiųskite šią naują šiandien prieinamą biblioteką, nes padariau keletą pakeitimų tame pirmajame faile, kad būtų lengviau jį naudoti.

2 žingsnis: visuotiniai kintamieji

Aš tiksliai parodau, kam skirtas kiekvienas iš pasaulinių kintamųjų.

3 žingsnis: Funkcijos - vairuotojo kaiščių nustatymas

Funkcijos - vairuotojo kaiščių nustatymas
Funkcijos - vairuotojo kaiščių nustatymas

Čia aprašysiu kai kuriuos metodus.

Aš nustatiau „Pinout“nustatymą ir „Arduino“kaiščius kaip išvestį.

4 žingsnis: Funkcijos - pagrindinės vairuotojo funkcijos

Funkcijos - pagrindinės vairuotojo funkcijos
Funkcijos - pagrindinės vairuotojo funkcijos

Šioje dalyje mes dirbame su tvarkyklės konfigūracija ir pagrindinėmis jos funkcijomis.

5 žingsnis: Funkcijos - variklio žingsnio nustatymas

Funkcijos - variklio žingsnio nustatymas
Funkcijos - variklio žingsnio nustatymas
Funkcijos - variklio žingsnių nustatymas
Funkcijos - variklio žingsnių nustatymas

Šiame kodo žingsnyje mes sukonfigūruojame žingsnių skaičių milimetre, kurį variklis turi atlikti.

6 žingsnis: Funkcijos - variklio žingsnio režimo nustatymas

Funkcijos - variklio žingsnio režimo nustatymas
Funkcijos - variklio žingsnio režimo nustatymas
Funkcijos - variklio žingsnio režimo nustatymas
Funkcijos - variklio žingsnio režimo nustatymas
Funkcijos - variklio žingsnio režimo nustatymas
Funkcijos - variklio žingsnio režimo nustatymas

Šioje lentelėje pateikiami variklio žingsnio režimo nustatymai. Štai keletas pavyzdžių.

7 žingsnis: Funkcijos - Ribinių jungiklių nustatymas

Funkcijos - Ribinių jungiklių nustatymas
Funkcijos - Ribinių jungiklių nustatymas

Čia aš turiu perskaityti visas ir logines vertybes. Būtina nustatyti, ar aktyvusis klavišas yra aukštyn, ar žemyn, tuo pačiu nustatant didžiausią ir mažiausią galinę atramą.

8 žingsnis: Funkcijos - ribinių jungiklių nuskaitymas

Funkcijos - Ribinių jungiklių nuskaitymas
Funkcijos - Ribinių jungiklių nuskaitymas
Funkcijos - Ribinių jungiklių nuskaitymas
Funkcijos - Ribinių jungiklių nuskaitymas
Funkcijos - Ribinių jungiklių nuskaitymas
Funkcijos - Ribinių jungiklių nuskaitymas

Ši dalis skiriasi nuo tos, kurią Liboje pateikiau praėjusią savaitę. Kodėl aš jį pakeičiau? Na, aš sukūriau „eRead“, kad pakeisčiau kai kuriuos kitus. Čia „eRead“perskaitys LVL, „digitalRead“(kaištį) ir grąžins „TRUE“. Visa tai reikia atlikti aukštai. Tolesnis darbas su aktyviu klavišu bus žemo lygio. Čia panaudosiu, kad parodyčiau „Tiesos“lentelę.

Kodo paveikslėlyje įdėjau diagramą, kuri padės suprasti, kad šioje šaltinio kodo dalyje aš judu link didėjimo ir dar nepaspaudžiau kurso pabaigos klavišo.

Dabar šiame paveikslėlyje os kodas bool DRV8825 parodau variklį, kuris vis dar juda augančia kryptimi. Tačiau įjungtas maksimalus ribinis jungiklis. Tada mechanizmas turi sustabdyti judėjimą.

Galiausiai parodau tą patį judesį, bet priešinga kryptimi.

Čia jau įjungėte kurso pabaigos jungiklį.

9 žingsnis: Funkcijos - judesio sąranka

Funkcijos - judesio sąranka
Funkcijos - judesio sąranka

Pagrindinis „motionConfig“metodo naudingumas yra milimetrą per sekundę (matavimas, naudojamas CNC staklėse) paversti žingsniais, kad atitiktų žingsninio variklio valdiklį. Todėl šioje dalyje aš parodau kintamuosius, kad suprasčiau žingsnius, o ne milimetrus.

10 žingsnis: Funkcijos - judėjimo funkcija

Funkcijos - judėjimo funkcija
Funkcijos - judėjimo funkcija

Šiame etape mes apdorojame komandą, kuri perkelia žingsnį norima kryptimi per mikrosekundes. Taip pat nustatome vairuotojo krypties kaištį, uždelsimo laiką ir ribinių jungiklių kryptį.

11 žingsnis: Funkcijos - judėjimo funkcija - kintamieji

Funkcijos - judėjimo funkcija - kintamieji
Funkcijos - judėjimo funkcija - kintamieji

Šioje dalyje mes konfigūruojame visus kintamuosius, apimančius didžiausio ir mažiausio greičio periodus, trajektorijos atstumą ir veiksmus, būtinus trajektorijai nutraukti.

12 žingsnis: Funkcijos - judesio funkcija - pagreitis

Funkcijos - judėjimo funkcija - pagreitis
Funkcijos - judėjimo funkcija - pagreitis
Funkcijos - judėjimo funkcija - pagreitis
Funkcijos - judėjimo funkcija - pagreitis

Čia aš pateikiu keletą detalių apie tai, kaip mes gavome pagreičio duomenis, kurie buvo apskaičiuoti pagal Torricelli lygtį, nes čia atsižvelgiama į greitėjimo greitį, o ne į laiką. Tačiau čia svarbu suprasti, kad visa ši lygtis yra tik apie vieną kodo eilutę.

Aukščiau esančiame paveikslėlyje mes nustatėme trapeciją, nes pradiniai apsisukimai yra blogi daugumai žingsninių variklių. Tas pats atsitinka ir su lėtėjimu. Dėl šios priežasties mes įsivaizduojame trapeciją tarp pagreičio ir lėtėjimo.

13 žingsnis: Funkcijos - judesio funkcija - nuolatinis greitis

Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis

Čia išlaikome pagreičiui naudojamų žingsnių skaičių, tęsiame tolygiu greičiu ir išlaikome maksimalų greitį, kurį galima pamatyti žemiau esančiame paveikslėlyje.

14 žingsnis: Funkcijos - judesio funkcija - lėtėjimas

Funkcijos - judėjimo funkcija - lėtėjimas
Funkcijos - judėjimo funkcija - lėtėjimas
Funkcijos - judėjimo funkcija - lėtėjimas
Funkcijos - judėjimo funkcija - lėtėjimas

Čia turime dar vieną lygtį, šį kartą su neigiama pagreičio reikšme. Jis taip pat rodomas kodo eilutėje, kuri žemiau esančiame paveikslėlyje reiškia stačiakampį, pavadintą „Lėtėjimas“.

15 žingsnis: Funkcijos - judesio funkcija - nuolatinis greitis

Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis
Funkcijos - judesio funkcija - nuolatinis greitis

Grįžtame prie nuolatinio greičio, kad galėtume dirbti antroje trajektorijos pusėje, kaip parodyta žemiau.

16 žingsnis: Funkcijos - Perkėlimo funkcija - Perkelti posūkius

Funkcijos - judėjimo funkcija - posūkių perkėlimas
Funkcijos - judėjimo funkcija - posūkių perkėlimas

Šioje dalyje mes perkeliame variklį tam tikru apsisukimų skaičiumi norima kryptimi, apsisukimų skaičių paverčiant milimetrais. Galiausiai mes perkeliame variklį norima kryptimi.

17 žingsnis: judesio diagrama - padėties greitis

Judėjimo diagrama - padėties greitis
Judėjimo diagrama - padėties greitis

Šioje diagramoje turiu duomenų, kurie buvo išgauti iš lygties, kurią naudojome pagreičio dalyje. Aš paėmiau vertes ir žaidžiau „Arduino“serijoje ir perėjau nuo „Excel“, todėl gavau šią lentelę. Šioje lentelėje parodyta žingsnio eiga.

18 žingsnis: judesio diagrama - pozicija prieš Pozicija

Judesių diagrama - pozicija prieš. Pozicija
Judesių diagrama - pozicija prieš. Pozicija

Čia mes nustatome poziciją, žingsnius ir greitį, ir konvertuojame jį į tašką mikrosekundėmis. Šiame etape pažymime, kad laikotarpis yra atvirkščiai proporcingas greičiui.

19 veiksmas: judesio diagrama - „Velocity Vs. Momentas

Judėjimo diagrama - „Velocity Vs. Momentas
Judėjimo diagrama - „Velocity Vs. Momentas

Galiausiai, mes turime greitį kaip momentinę funkciją, todėl turime tiesę, nes tai yra greitis kaip laiko funkcija.

Rekomenduojamas: