Բովանդակություն:
- Քայլ 1: StepDriver գրադարան
- Քայլ 2: Գլոբալ փոփոխականներ
- Քայլ 3. Գործառույթներ - Վարորդի կապում կարգավորելը
- Քայլ 4. Գործառույթներ - Վարորդի հիմնական գործառույթները
- Քայլ 5. Գործառույթներ - Շարժիչային քայլի կարգավորում
- Քայլ 6: Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում
- Քայլ 7: Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում
- Քայլ 8. Գործառույթներ - Սահմանափակիչ անջատիչների ընթերցում
- Քայլ 9. Գործառույթներ - Շարժման կարգավորում
- Քայլ 10. Գործառույթներ - Շարժման գործառույթ
- Քայլ 11. Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ
- Քայլ 12. Գործառույթներ - Շարժման գործառույթ - Արագացում
- Քայլ 13: Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
- Քայլ 14. Գործառույթներ - Շարժման գործառույթ - Դանդաղում
- Քայլ 15. Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
- Քայլ 16. Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ
- Քայլ 17: Շարժման գծապատկեր - դիրքի արագություն
- Քայլ 18: Շարժման գծապատկեր - դիրք Vs. Դիրք
- Քայլ 19: Շարժման գծապատկեր - Արագություն ընդդեմ Պահ
Video: Arduino: Precision Lib for Stepper Motor: 19 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
Այսօր ես ձեզ ցույց կտամ լիարժեք շարժիչով վարորդի սահմանափակ անջատիչներով գրադարան, իսկ շարժիչի շարժումը արագացումով և միկրոքայլով: Այս Lib- ը, որն աշխատում է ինչպես Arduino Uno- ի, այնպես էլ Arduino Mega- ի վրա, թույլ է տալիս շարժիչները շարժել ոչ միայն քայլերի քանակի, այլև միլիմետրերի հիման վրա: Եվ դա նույնպես բավականին ճշգրիտ է:
Այս գրադարանի կարևոր առանձնահատկությունն այն է, որ այն թույլ է տալիս կառուցել ձեր սեփական CNC մեքենան, որը պարտադիր չէ միայն X, Y, այլ նաև հատվածի անջատիչ, օրինակ, քանի որ այն պատրաստ GRBL չէ, այլ այն ծրագրավորումն է, որը թույլ է տալիս կատարել իդեալական մեքենա ձեզ համար:
Այնուամենայնիվ, հետևյալ հայտարարությունը կարևոր մանրամասնություն է: Այս տեսանյութը միայն նրանց համար է, ովքեր արդեն սովոր են ծրագրավորման: Եթե դուք ծանոթ չեք Arduino ծրագրավորմանը, ապա նախ պետք է դիտեք այլ ավելի շատ ներածական տեսանյութեր իմ ալիքում: Դա պայմանավորված է նրանով, որ այս կոնկրետ տեսանյութում ես քննարկում եմ առաջադեմ թեմա և ավելի մանրամասն բացատրում տեսանյութում օգտագործվող Lib- ը ՝ Step Motor with Acceleration and End of Stroke:
Քայլ 1: StepDriver գրադարան
Այս գրադարանը ներառում է շուկայում երեք ամենատարածված վարորդների տեսակները ՝ A4988, DRV8825 և TB6600: Այն կազմաձևում է վարորդների կապերը ՝ թույլ տալով նրանց կատարել վերականգնում և տեղադրում Քնի ռեժիմ, ինչպես նաև ակտիվացնել և ապաակտիվացնել շարժիչի ելքերը, որոնք գործում են Enable կապում: Այն նաև սահմանում է վարորդի միկրոքայլ քորոցների մուտքերը և սահմանափակում անջատիչների և դրանց ակտիվացման մակարդակը (բարձր կամ ցածր): Այն ունի նաև շարժիչի շարժման կոդ ՝ մմ / վ² շարունակական արագացումով, առավելագույն արագություն ՝ մմ / վ, և նվազագույն արագություն ՝ մմ / վ:
Նրանց համար, ովքեր դիտել են Step Motor- ի արագացման և հարվածի ավարտի տեսահոլովակի 1 -ին և 2 -րդ մասերը, ներբեռնեք այսօր հասանելի այս նոր գրադարանը, քանի որ ես որոշ փոփոխություններ եմ կատարել այդ առաջին ֆայլում `դրա օգտագործումը հեշտացնելու համար:
Քայլ 2: Գլոբալ փոփոխականներ
Ես հստակ ցույց եմ տալիս, թե գլոբալ փոփոխականներից յուրաքանչյուրը ինչի համար է:
Քայլ 3. Գործառույթներ - Վարորդի կապում կարգավորելը
Այստեղ ես նկարագրում եմ որոշ մեթոդներ:
Որպես ելք դրեցի Pinout- ի կարգավորումը և Arduino- ի կապում:
Քայլ 4. Գործառույթներ - Վարորդի հիմնական գործառույթները
Այս մասում մենք աշխատում ենք վարորդի կազմաձևման և դրա հիմնական գործառույթների հետ:
Քայլ 5. Գործառույթներ - Շարժիչային քայլի կարգավորում
Կոդի այս քայլում մենք կարգավորում ենք մեկ միլիմետրի քայլերի քանակը, որոնք շարժիչը պետք է կատարի:
Քայլ 6: Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում
Այս աղյուսակը ցույց է տալիս շարժիչի քայլի ռեժիմի կարգավորումները: Ահա մի քանի օրինակ:
Քայլ 7: Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում
Այստեղ ես պետք է կարդամ ամբողջական և բուլյան արժեքները: Անհրաժեշտ է սահմանել, թե արդյոք ակտիվ բանալին վեր կամ վար է, միաժամանակ սահմանելով առավելագույն և նվազագույն սահմանաչափի վերջնակետը:
Քայլ 8. Գործառույթներ - Սահմանափակիչ անջատիչների ընթերցում
Այս հատվածը տարբերվում է Lib- ի այն հատվածից, որը ես հասանելի դարձրի անցյալ շաբաթ: Ինչու՞ փոխեցի այն: Դե, ես ստեղծեցի eRead- ը ՝ որոշ ուրիշներին փոխարինելու համար: Այստեղ eRead- ը կկարդա LVL, digitalRead (pin) և կվերադառնա TRUE: Այս ամենը պետք է կատարել բարձր մակարդակով: Հետևյալ աշխատանքը ակտիվ ստեղնով կլինի ցածր մակարդակի վրա: Ես այստեղ կօգտագործեմ ձեզ «uthշմարտություն» աղյուսակը ցույց տալու համար:
Կոդի պատկերում ես տեղադրեցի մի դիագրամ, որը կօգնի հասկանալ, որ սկզբնաղբյուրի այս հատվածում ես շարժվում եմ դեպի աճող և դեռ չեմ դիպել դասընթացի ավարտի բանալին:
Այժմ, այս պատկերի os bool DRV8825 կոդը, ես ցույց եմ տալիս, որ շարժիչը դեռ շարժվում է աճող ուղղությամբ: Այնուամենայնիվ, առավելագույն սահմանաչափի անջատիչը միացված է: Մեխանիզմը, ուրեմն, պետք է դադարեցնի շարժումը:
Ի վերջո, ես ցույց եմ տալիս նույն շարժումը, բայց հակառակ ուղղությամբ:
Այստեղ դուք արդեն ակտիվացրել եք դասընթացի ավարտի անջատիչը:
Քայլ 9. Գործառույթներ - Շարժման կարգավորում
MotionConfig մեթոդի հիմնական օգտակարությունն այն է, որ միլիմետրը վայրկյանում (չափում, որն օգտագործվում է CNC մեքենաներում) աստիճանների է վերածվում ՝ հետընթաց շարժիչի վերահսկիչին հանդիպելու համար: Հետևաբար, այս մասում է, որ ես փոփոխականներին հուշում եմ քայլերը հասկանալու համար, այլ ոչ թե միլիմետր:
Քայլ 10. Գործառույթներ - Շարժման գործառույթ
Այս քայլում մենք վերաբերվում ենք այն հրամանին, որը միկրո վայրկյանների ընթացքում քայլ է կատարում ցանկալի ուղղությամբ: Մենք նաև սահմանում ենք վարորդի ուղղության քորոցը, հետաձգման ժամանակը և սահմանային անջատիչների ուղղությունը:
Քայլ 11. Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ
Այս մասում մենք կարգավորում ենք բոլոր այն փոփոխականները, որոնք ներառում են առավելագույն և նվազագույն արագության, հետագծի հեռավորության և հետագծի ընդհատման համար անհրաժեշտ քայլեր, ի թիվս այլոց:
Քայլ 12. Գործառույթներ - Շարժման գործառույթ - Արագացում
Այստեղ ես ներկայացնում եմ որոշ մանրամասներ այն մասին, թե ինչպես ենք մենք հասել արագացման տվյալներին, որոնք հաշվարկվել են Տորիչելիի հավասարման միջոցով, քանի որ դա հաշվի է առնում արագացումը աշխատելու տարածությունները և ոչ թե ժամանակը: Բայց, այստեղ կարևոր է հասկանալ, որ այս ամբողջ հավասարումը միայն կոդի մեկ տողի մասին է:
Մենք վերևում պատկերված ենք տրապիզի մասին, քանի որ նախնական պտույտները վատ են տատանվող շարժիչների մեծ մասի համար: Նույնը տեղի է ունենում դանդաղեցման դեպքում: Դրա պատճառով մենք պատկերացնում ենք մի trapezoid արագացման և դանդաղեցման միջև ընկած ժամանակահատվածում:
Քայլ 13: Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
Այստեղ մենք պահպանում ենք արագացման ընթացքում օգտագործվող քայլերի քանակը, շարունակում ենք անընդհատ արագությամբ և պահպանում ենք առավելագույն արագությամբ, որը երևում է ստորև ներկայացված պատկերում:
Քայլ 14. Գործառույթներ - Շարժման գործառույթ - Դանդաղում
Այստեղ մենք ունենք մեկ այլ հավասարում, այս անգամ բացասական արագացման արժեքով: Այն նաև ցուցադրվում է կոդի տողում, որը ներկայացնում է ստորև բերված պատկերում Deceleration պիտակով ուղղանկյունը:
Քայլ 15. Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
Մենք վերադառնում ենք շարունակական արագությանը `հետագծի երկրորդ կեսը աշխատելու համար, ինչպես երևում է ստորև:
Քայլ 16. Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ
Այս մասում մենք շարժիչը շարժում ենք որոշակի թվով պտույտներով ցանկալի ուղղությամբ ՝ պտույտների թիվը վերածելով միլիմետրերի: Ի վերջո, մենք շարժիչը շարժում ենք պահանջվող ուղղությամբ:
Քայլ 17: Շարժման գծապատկեր - դիրքի արագություն
Այս գրաֆիկում ես ունեմ տվյալներ, որոնք հանվել են այն հավասարումից, որը մենք օգտագործում էինք արագացման մասում: Ես վերցրեցի արժեքները և խաղացի Arduino սերիալի վրա, և այստեղից անցա Excel- ի, որի արդյունքում ստացվեց այս աղյուսակը: Այս աղյուսակը ցույց է տալիս քայլի առաջընթացը:
Քայլ 18: Շարժման գծապատկեր - դիրք Vs. Դիրք
Այստեղ մենք վերցնում ենք դիրքը ՝ քայլերով և արագությամբ և փոխակերպում այն կետի ՝ միկրովայրկյանում: Այս քայլում մենք նշում ենք, որ ժամանակաշրջանը հակադարձ համեմատական է արագությանը:
Քայլ 19: Շարժման գծապատկեր - Արագություն ընդդեմ Պահ
Ի վերջո, մենք ունենք արագությունը որպես ակնթարթի ֆունկցիա, և դրա պատճառով մենք ունենք ուղիղ գիծ, քանի որ դա արագությունն է որպես ժամանակի ֆունկցիա:
Խորհուրդ ենք տալիս:
Stepper Motor Arduino UNO- ով `3 քայլ
Stepper Motor With Arduino UNO. Stepper շարժիչները DC շարժիչներ են, որոնք շարժվում են առանձին քայլերով: Նրանք ունեն բազմաթիվ ոլորաններ, որոնք կազմակերպված են «փուլեր» կոչվող խմբերում: Յուրաքանչյուր փուլին հաջորդականությամբ էներգիա հաղորդելով ՝ շարժիչը կշրջվի ՝ մեկ քայլ միաժամանակ: Աստիճան շարժիչները շատ օգտակար են
Stepper Motor վերահսկվող Stepper Motor առանց միկրոկոնտրոլերի: 6 քայլ
Stepper Motor Controlled Stepper Motor առանց Microcontroller. Այս նախագիծը չի պահանջում բարդ միացում կամ միկրոկոնտրոլեր: Այսպիսով, առանց ավելորդ քայլի, եկեք սկսենք:
Stepper Motor Controlled Stepper Motor Without Microcontroller (V2). 9 քայլ (նկարներով)
Stepper Motor Controlled Stepper Motor Without Microcontroller (V2). Իմ նախորդ հրահանգներից մեկում ես ձեզ ցույց տվեցի, թե ինչպես կարելի է կառավարել հետընթաց շարժիչը `օգտագործելով միկրոկոնտրոլերի շարժիչ: Դա արագ և զվարճալի նախագիծ էր, բայց այն ունեցավ երկու խնդիր, որոնք կլուծվեն այս Ուղեցույցում: Այսպիսով, խելամտորեն
Stepper Motor Controled Model լոկոմոտիվ - Stepper Motor As a Rotary Encoder: 11 Քայլ (նկարներով)
Stepper Motor Controled Model լոկոմոտիվ | Stepper Motor As a Rotary Encoder. Նախորդ հրահանգներից մեկում մենք սովորեցինք, թե ինչպես օգտագործել stepper շարժիչը որպես պտտվող կոդավորիչ: Այս նախագծում մենք այժմ կօգտագործենք այդ պտտվող շարժիչով պտտվող կոդավորիչը `Arduino միկրոկոնտրոլերի միջոցով մոդելի լոկոմոտիվը կառավարելու համար: Այսպիսով, առանց ֆու
28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino- ով և անալոգային ջոյսթիկով `3 քայլ
28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino & Analogue Joystick- ով. Սա 28BYJ-48 տիպի շարժիչով վերահսկման սխեմա է, որը ես մշակել եմ իմ վերջին տարվա ատենախոսության նախագծի շրջանակներում օգտագործելու համար: Ես նախկինում չեմ տեսել, որ դա արվի, ուստի մտածեցի, որ կբեռնեմ այն, ինչ հայտնաբերեցի: Հուսանք, որ սա կօգնի մեկ ուրիշին