Բովանդակություն:
- Քայլ 1: StepDriver գրադարան
- Քայլ 2: Գլոբալ փոփոխականներ
- Քայլ 3. Գործառույթներ - Վարորդի կապում կարգավորելը
- Քայլ 4. Գործառույթներ - Վարորդի հիմնական գործառույթները
- Քայլ 5. Գործառույթներ - Շարժիչային քայլի կարգավորում
- Քայլ 6: Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում
- Քայլ 7: Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում
- Քայլ 8. Գործառույթներ - Սահմանափակիչ անջատիչների ընթերցում
- Քայլ 9. Գործառույթներ - Շարժման կարգավորում
- Քայլ 10. Գործառույթներ - Շարժման գործառույթ
- Քայլ 11. Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ
- Քայլ 12. Գործառույթներ - Շարժման գործառույթ - Արագացում
- Քայլ 13: Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
- Քայլ 14. Գործառույթներ - Շարժման գործառույթ - Դանդաղում
- Քայլ 15. Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
- Քայլ 16. Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ
- Քայլ 17: Շարժման գծապատկեր - դիրքի արագություն
- Քայլ 18: Շարժման գծապատկեր - դիրք Vs. Դիրք
- Քայլ 19: Շարժման գծապատկեր - Արագություն ընդդեմ Պահ
![Arduino: Precision Lib for Stepper Motor: 19 քայլ Arduino: Precision Lib for Stepper Motor: 19 քայլ](https://i.howwhatproduce.com/images/002/image-3950-62-j.webp)
Video: Arduino: Precision Lib for Stepper Motor: 19 քայլ
![Video: Arduino: Precision Lib for Stepper Motor: 19 քայլ Video: Arduino: Precision Lib for Stepper Motor: 19 քայլ](https://i.ytimg.com/vi/7spK_BkMJys/hqdefault.jpg)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
![Image Image](https://i.howwhatproduce.com/images/002/image-3950-64-j.webp)
![](https://i.ytimg.com/vi/BiJFfCu1CFI/hqdefault.jpg)
![Գլոբալ փոփոխականներ Գլոբալ փոփոխականներ](https://i.howwhatproduce.com/images/002/image-3950-65-j.webp)
Այսօր ես ձեզ ցույց կտամ լիարժեք շարժիչով վարորդի սահմանափակ անջատիչներով գրադարան, իսկ շարժիչի շարժումը արագացումով և միկրոքայլով: Այս 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. Գործառույթներ - Վարորդի կապում կարգավորելը
![Գործառույթներ - Վարորդի կապում տեղադրելը Գործառույթներ - Վարորդի կապում տեղադրելը](https://i.howwhatproduce.com/images/002/image-3950-66-j.webp)
Այստեղ ես նկարագրում եմ որոշ մեթոդներ:
Որպես ելք դրեցի Pinout- ի կարգավորումը և Arduino- ի կապում:
Քայլ 4. Գործառույթներ - Վարորդի հիմնական գործառույթները
![Գործառույթներ - Վարորդի հիմնական գործառույթները Գործառույթներ - Վարորդի հիմնական գործառույթները](https://i.howwhatproduce.com/images/002/image-3950-67-j.webp)
Այս մասում մենք աշխատում ենք վարորդի կազմաձևման և դրա հիմնական գործառույթների հետ:
Քայլ 5. Գործառույթներ - Շարժիչային քայլի կարգավորում
![Գործառույթներ - Շարժիչային քայլի կարգավորում Գործառույթներ - Շարժիչային քայլի կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-68-j.webp)
![Գործառույթներ - Շարժիչային քայլի կարգավորում Գործառույթներ - Շարժիչային քայլի կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-69-j.webp)
Կոդի այս քայլում մենք կարգավորում ենք մեկ միլիմետրի քայլերի քանակը, որոնք շարժիչը պետք է կատարի:
Քայլ 6: Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում
![Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-70-j.webp)
![Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-71-j.webp)
![Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում Գործառույթներ - Շարժիչի քայլի ռեժիմի կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-72-j.webp)
Այս աղյուսակը ցույց է տալիս շարժիչի քայլի ռեժիմի կարգավորումները: Ահա մի քանի օրինակ:
Քայլ 7: Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում
![Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում Գործառույթներ - Սահմանափակիչ անջատիչների սահմանում](https://i.howwhatproduce.com/images/002/image-3950-73-j.webp)
Այստեղ ես պետք է կարդամ ամբողջական և բուլյան արժեքները: Անհրաժեշտ է սահմանել, թե արդյոք ակտիվ բանալին վեր կամ վար է, միաժամանակ սահմանելով առավելագույն և նվազագույն սահմանաչափի վերջնակետը:
Քայլ 8. Գործառույթներ - Սահմանափակիչ անջատիչների ընթերցում
![Գործառույթներ - Սահմանափակող անջատիչների ընթերցում Գործառույթներ - Սահմանափակող անջատիչների ընթերցում](https://i.howwhatproduce.com/images/002/image-3950-74-j.webp)
![Գործառույթներ - Սահմանափակող անջատիչների ընթերցում Գործառույթներ - Սահմանափակող անջատիչների ընթերցում](https://i.howwhatproduce.com/images/002/image-3950-75-j.webp)
![Գործառույթներ - Սահմանափակող անջատիչների ընթերցում Գործառույթներ - Սահմանափակող անջատիչների ընթերցում](https://i.howwhatproduce.com/images/002/image-3950-76-j.webp)
Այս հատվածը տարբերվում է Lib- ի այն հատվածից, որը ես հասանելի դարձրի անցյալ շաբաթ: Ինչու՞ փոխեցի այն: Դե, ես ստեղծեցի eRead- ը ՝ որոշ ուրիշներին փոխարինելու համար: Այստեղ eRead- ը կկարդա LVL, digitalRead (pin) և կվերադառնա TRUE: Այս ամենը պետք է կատարել բարձր մակարդակով: Հետևյալ աշխատանքը ակտիվ ստեղնով կլինի ցածր մակարդակի վրա: Ես այստեղ կօգտագործեմ ձեզ «uthշմարտություն» աղյուսակը ցույց տալու համար:
Կոդի պատկերում ես տեղադրեցի մի դիագրամ, որը կօգնի հասկանալ, որ սկզբնաղբյուրի այս հատվածում ես շարժվում եմ դեպի աճող և դեռ չեմ դիպել դասընթացի ավարտի բանալին:
Այժմ, այս պատկերի os bool DRV8825 կոդը, ես ցույց եմ տալիս, որ շարժիչը դեռ շարժվում է աճող ուղղությամբ: Այնուամենայնիվ, առավելագույն սահմանաչափի անջատիչը միացված է: Մեխանիզմը, ուրեմն, պետք է դադարեցնի շարժումը:
Ի վերջո, ես ցույց եմ տալիս նույն շարժումը, բայց հակառակ ուղղությամբ:
Այստեղ դուք արդեն ակտիվացրել եք դասընթացի ավարտի անջատիչը:
Քայլ 9. Գործառույթներ - Շարժման կարգավորում
![Գործառույթներ - Շարժման կարգավորում Գործառույթներ - Շարժման կարգավորում](https://i.howwhatproduce.com/images/002/image-3950-77-j.webp)
MotionConfig մեթոդի հիմնական օգտակարությունն այն է, որ միլիմետրը վայրկյանում (չափում, որն օգտագործվում է CNC մեքենաներում) աստիճանների է վերածվում ՝ հետընթաց շարժիչի վերահսկիչին հանդիպելու համար: Հետևաբար, այս մասում է, որ ես փոփոխականներին հուշում եմ քայլերը հասկանալու համար, այլ ոչ թե միլիմետր:
Քայլ 10. Գործառույթներ - Շարժման գործառույթ
![Գործառույթներ - Շարժման գործառույթ Գործառույթներ - Շարժման գործառույթ](https://i.howwhatproduce.com/images/002/image-3950-78-j.webp)
Այս քայլում մենք վերաբերվում ենք այն հրամանին, որը միկրո վայրկյանների ընթացքում քայլ է կատարում ցանկալի ուղղությամբ: Մենք նաև սահմանում ենք վարորդի ուղղության քորոցը, հետաձգման ժամանակը և սահմանային անջատիչների ուղղությունը:
Քայլ 11. Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ
![Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ Գործառույթներ - Շարժման գործառույթ - Փոփոխականներ](https://i.howwhatproduce.com/images/002/image-3950-79-j.webp)
Այս մասում մենք կարգավորում ենք բոլոր այն փոփոխականները, որոնք ներառում են առավելագույն և նվազագույն արագության, հետագծի հեռավորության և հետագծի ընդհատման համար անհրաժեշտ քայլեր, ի թիվս այլոց:
Քայլ 12. Գործառույթներ - Շարժման գործառույթ - Արագացում
![Գործառույթներ - Շարժման գործառույթ - Արագացում Գործառույթներ - Շարժման գործառույթ - Արագացում](https://i.howwhatproduce.com/images/002/image-3950-80-j.webp)
![Գործառույթներ - Շարժման գործառույթ - Արագացում Գործառույթներ - Շարժման գործառույթ - Արագացում](https://i.howwhatproduce.com/images/002/image-3950-81-j.webp)
Այստեղ ես ներկայացնում եմ որոշ մանրամասներ այն մասին, թե ինչպես ենք մենք հասել արագացման տվյալներին, որոնք հաշվարկվել են Տորիչելիի հավասարման միջոցով, քանի որ դա հաշվի է առնում արագացումը աշխատելու տարածությունները և ոչ թե ժամանակը: Բայց, այստեղ կարևոր է հասկանալ, որ այս ամբողջ հավասարումը միայն կոդի մեկ տողի մասին է:
Մենք վերևում պատկերված ենք տրապիզի մասին, քանի որ նախնական պտույտները վատ են տատանվող շարժիչների մեծ մասի համար: Նույնը տեղի է ունենում դանդաղեցման դեպքում: Դրա պատճառով մենք պատկերացնում ենք մի trapezoid արագացման և դանդաղեցման միջև ընկած ժամանակահատվածում:
Քայլ 13: Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
![Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն](https://i.howwhatproduce.com/images/002/image-3950-82-j.webp)
![Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն](https://i.howwhatproduce.com/images/002/image-3950-83-j.webp)
Այստեղ մենք պահպանում ենք արագացման ընթացքում օգտագործվող քայլերի քանակը, շարունակում ենք անընդհատ արագությամբ և պահպանում ենք առավելագույն արագությամբ, որը երևում է ստորև ներկայացված պատկերում:
Քայլ 14. Գործառույթներ - Շարժման գործառույթ - Դանդաղում
![Գործառույթներ - Շարժման գործառույթ - Դանդաղեցում Գործառույթներ - Շարժման գործառույթ - Դանդաղեցում](https://i.howwhatproduce.com/images/002/image-3950-84-j.webp)
![Գործառույթներ - Շարժման գործառույթ - Դանդաղեցում Գործառույթներ - Շարժման գործառույթ - Դանդաղեցում](https://i.howwhatproduce.com/images/002/image-3950-85-j.webp)
Այստեղ մենք ունենք մեկ այլ հավասարում, այս անգամ բացասական արագացման արժեքով: Այն նաև ցուցադրվում է կոդի տողում, որը ներկայացնում է ստորև բերված պատկերում Deceleration պիտակով ուղղանկյունը:
Քայլ 15. Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն
![Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն](https://i.howwhatproduce.com/images/002/image-3950-86-j.webp)
![Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն Գործառույթներ - Շարժման գործառույթ - Շարունակական արագություն](https://i.howwhatproduce.com/images/002/image-3950-87-j.webp)
Մենք վերադառնում ենք շարունակական արագությանը `հետագծի երկրորդ կեսը աշխատելու համար, ինչպես երևում է ստորև:
Քայլ 16. Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ
![Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ Գործառույթներ - Տեղափոխել գործառույթ - Տեղափոխել պտույտներ](https://i.howwhatproduce.com/images/002/image-3950-88-j.webp)
Այս մասում մենք շարժիչը շարժում ենք որոշակի թվով պտույտներով ցանկալի ուղղությամբ ՝ պտույտների թիվը վերածելով միլիմետրերի: Ի վերջո, մենք շարժիչը շարժում ենք պահանջվող ուղղությամբ:
Քայլ 17: Շարժման գծապատկեր - դիրքի արագություն
![Շարժման գծապատկեր - դիրքի արագություն Շարժման գծապատկեր - դիրքի արագություն](https://i.howwhatproduce.com/images/002/image-3950-89-j.webp)
Այս գրաֆիկում ես ունեմ տվյալներ, որոնք հանվել են այն հավասարումից, որը մենք օգտագործում էինք արագացման մասում: Ես վերցրեցի արժեքները և խաղացի Arduino սերիալի վրա, և այստեղից անցա Excel- ի, որի արդյունքում ստացվեց այս աղյուսակը: Այս աղյուսակը ցույց է տալիս քայլի առաջընթացը:
Քայլ 18: Շարժման գծապատկեր - դիրք Vs. Դիրք
![Շարժման աղյուսակ - դիրքն ընդդեմ Դիրք Շարժման աղյուսակ - դիրքն ընդդեմ Դիրք](https://i.howwhatproduce.com/images/002/image-3950-90-j.webp)
Այստեղ մենք վերցնում ենք դիրքը ՝ քայլերով և արագությամբ և փոխակերպում այն կետի ՝ միկրովայրկյանում: Այս քայլում մենք նշում ենք, որ ժամանակաշրջանը հակադարձ համեմատական է արագությանը:
Քայլ 19: Շարժման գծապատկեր - Արագություն ընդդեմ Պահ
![Motion Chart - Արագություն vs. Պահ Motion Chart - Արագություն vs. Պահ](https://i.howwhatproduce.com/images/002/image-3950-91-j.webp)
Ի վերջո, մենք ունենք արագությունը որպես ակնթարթի ֆունկցիա, և դրա պատճառով մենք ունենք ուղիղ գիծ, քանի որ դա արագությունն է որպես ժամանակի ֆունկցիա:
Խորհուրդ ենք տալիս:
Stepper Motor Arduino UNO- ով `3 քայլ
![Stepper Motor Arduino UNO- ով `3 քայլ Stepper Motor Arduino UNO- ով `3 քայլ](https://i.howwhatproduce.com/images/001/image-331-26-j.webp)
Stepper Motor With Arduino UNO. Stepper շարժիչները DC շարժիչներ են, որոնք շարժվում են առանձին քայլերով: Նրանք ունեն բազմաթիվ ոլորաններ, որոնք կազմակերպված են «փուլեր» կոչվող խմբերում: Յուրաքանչյուր փուլին հաջորդականությամբ էներգիա հաղորդելով ՝ շարժիչը կշրջվի ՝ մեկ քայլ միաժամանակ: Աստիճան շարժիչները շատ օգտակար են
Stepper Motor վերահսկվող Stepper Motor առանց միկրոկոնտրոլերի: 6 քայլ
![Stepper Motor վերահսկվող Stepper Motor առանց միկրոկոնտրոլերի: 6 քայլ Stepper Motor վերահսկվող Stepper Motor առանց միկրոկոնտրոլերի: 6 քայլ](https://i.howwhatproduce.com/images/002/image-4196-13-j.webp)
Stepper Motor Controlled Stepper Motor առանց Microcontroller. Այս նախագիծը չի պահանջում բարդ միացում կամ միկրոկոնտրոլեր: Այսպիսով, առանց ավելորդ քայլի, եկեք սկսենք:
Stepper Motor Controlled Stepper Motor Without Microcontroller (V2). 9 քայլ (նկարներով)
![Stepper Motor Controlled Stepper Motor Without Microcontroller (V2). 9 քայլ (նկարներով) Stepper Motor Controlled Stepper Motor Without Microcontroller (V2). 9 քայլ (նկարներով)](https://i.howwhatproduce.com/images/002/image-5311-28-j.webp)
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: 11 Քայլ (նկարներով) Stepper Motor Controled Model լոկոմոտիվ - Stepper Motor As a Rotary Encoder: 11 Քայլ (նկարներով)](https://i.howwhatproduce.com/images/006/image-16276-j.webp)
Stepper Motor Controled Model լոկոմոտիվ | Stepper Motor As a Rotary Encoder. Նախորդ հրահանգներից մեկում մենք սովորեցինք, թե ինչպես օգտագործել stepper շարժիչը որպես պտտվող կոդավորիչ: Այս նախագծում մենք այժմ կօգտագործենք այդ պտտվող շարժիչով պտտվող կոդավորիչը `Arduino միկրոկոնտրոլերի միջոցով մոդելի լոկոմոտիվը կառավարելու համար: Այսպիսով, առանց ֆու
28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino- ով և անալոգային ջոյսթիկով `3 քայլ
![28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino- ով և անալոգային ջոյսթիկով `3 քայլ 28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino- ով և անալոգային ջոյսթիկով `3 քայլ](https://i.howwhatproduce.com/images/001/image-1369-36-j.webp)
28BYJ-48 Stepper Motor- ի անկյունային դիրքի վերահսկում Arduino & Analogue Joystick- ով. Սա 28BYJ-48 տիպի շարժիչով վերահսկման սխեմա է, որը ես մշակել եմ իմ վերջին տարվա ատենախոսության նախագծի շրջանակներում օգտագործելու համար: Ես նախկինում չեմ տեսել, որ դա արվի, ուստի մտածեցի, որ կբեռնեմ այն, ինչ հայտնաբերեցի: Հուսանք, որ սա կօգնի մեկ ուրիշին