Mundarija:

Arduino: Step Motor uchun nozik Lib: 19 qadam
Arduino: Step Motor uchun nozik Lib: 19 qadam

Video: Arduino: Step Motor uchun nozik Lib: 19 qadam

Video: Arduino: Step Motor uchun nozik Lib: 19 qadam
Video: Как измерить постоянное напряжение и ток и построить счетчик энергии с ЖК-дисплеем | Урок 104 2024, Noyabr
Anonim
Image
Image
Global o'zgaruvchilar
Global o'zgaruvchilar

Bugun men sizga cheklovli kalitli motorli haydovchining kutubxonasini, dvigatelning tezlanish va mikro qadamli harakatlanishini ko'rsataman. Arduino Uno va Arduino Mega -da ishlaydigan bu Lib dvigatellarni faqat qadam soniga emas, balki millimetrga qarab harakatlantirish imkonini beradi. Va bu juda aniq.

Bu kutubxonaning muhim xususiyati shundaki, bu sizga o'zingizning CNC dastgohingizni yaratishga imkon beradi, bu faqat X, Y emas, balki bo'limli kalit, masalan, bu tayyor GRBL emas, balki dasturlash. siz uchun ideal mashinani yaratishga imkon beradi.

Biroq, quyidagi bayonot muhim tafsilotdir! Bu video faqat dasturlashga o'rganganlar uchun. Agar siz Arduino dasturini yaxshi bilmasangiz, avval siz mening kanalimdagi boshqa tanishtiruvchi videolarni ko'rishingiz kerak. Buning sababi shundaki, men ushbu videoda ilg'or mavzuni muhokama qilyapman va videoda ishlatilgan Libni batafsil tushuntirib beraman: tezlashuv va urishning oxiri bilan motor.

1 -qadam: StepDriver kutubxonasi

Bu kutubxona bozorda eng keng tarqalgan uchta haydovchi turini o'z ichiga oladi: A4988, DRV8825 va TB6600. U haydovchilarning pinlarini konfiguratsiya qiladi, bu ularni uyqu rejimiga qaytarish va joylashtirishga imkon beradi, shuningdek Enable pinida ishlaydigan dvigatel chiqishlarini yoqadi va o'chiradi. Shuningdek, u haydovchining mikro pog'onali pinlarining kirishini o'rnatadi va kalitlarni va ularning faollik darajasini (yuqori yoki past) cheklaydi. U, shuningdek, mm / s² da doimiy tezlanish, maksimal tezlik mm / s va minimal tezlik mm / s bo'lgan motorli harakat kodiga ega.

Bosim tezligi va zarbasi tugagan qadam dvigateli videoning 1 va 2 -qismlarini ko'rganlar uchun bu yangi kutubxonani bugun yuklab oling, chunki men uni ishlatishni osonlashtirish uchun birinchi faylda ba'zi o'zgartirishlar kiritdim.

2 -qadam: Global o'zgaruvchilar

Men global o'zgaruvchilarning har biri nima ekanligini aniq ko'rsataman.

3 -qadam: Vazifalar - haydovchi pinlarini o'rnatish

Vazifalar - haydovchi pinlarini o'rnatish
Vazifalar - haydovchi pinlarini o'rnatish

Bu erda men ba'zi usullarni tasvirlayman.

Men Pinout sozlamasini va Arduino pinlarini chiqish sifatida o'rnatdim.

4 -qadam: Funktsiyalar - Haydovchining asosiy funktsiyalari

Funktsiyalar - Haydovchining asosiy funktsiyalari
Funktsiyalar - Haydovchining asosiy funktsiyalari

Ushbu bo'limda biz haydovchining konfiguratsiyasi va uning asosiy funktsiyalari bilan ishlaymiz.

5 -qadam: Vazifalar - Dvigatel qadamini sozlash

Vazifalar - Dvigatel qadamini sozlash
Vazifalar - Dvigatel qadamini sozlash
Vazifalar - Dvigatel qadamini sozlash
Vazifalar - Dvigatel qadamini sozlash

Kodning bu bosqichida biz dvigatel bajarishi kerak bo'lgan millimetr uchun qadamlar miqdorini sozlaymiz.

6 -qadam: Vazifalar - Dvigatel qadam rejimini sozlash

Vazifalar - Dvigatel qadam rejimini sozlash
Vazifalar - Dvigatel qadam rejimini sozlash
Vazifalar - Dvigatel qadam rejimini sozlash
Vazifalar - Dvigatel qadam rejimini sozlash
Vazifalar - Dvigatel qadam rejimini sozlash
Vazifalar - Dvigatel qadam rejimini sozlash

Bu jadvalda motorli qadam rejimining sozlamalari ko'rsatilgan. Bu erda ba'zi misollar.

7 -qadam: Vazifalar - Limit kalitlarini sozlash

Vazifalar - Limit kalitlarini sozlash
Vazifalar - Limit kalitlarini sozlash

Bu erda men butun va mantiqiy qiymatlarni o'qishim kerak. Maksimal va minimal chegara chekkasini o'rnatayotganda, faol kalit yuqoriga yoki pastga tushishini belgilash kerak.

8 -qadam: Vazifalar - Limit kalitlarini o'qish

Vazifalar - Limit kalitlarini o'qish
Vazifalar - Limit kalitlarini o'qish
Vazifalar - Limit kalitlarini o'qish
Vazifalar - Limit kalitlarini o'qish
Vazifalar - Limit kalitlarini o'qish
Vazifalar - Limit kalitlarini o'qish

Bu qism o'tgan hafta men taqdim qilgan Libdagi qismdan farq qiladi. Nega men uni o'zgartirdim? Xo'sh, men boshqalarni almashtirish uchun eRead -ni yaratdim. Bu erda eRead LVL, digitalRead (pin) ni o'qiydi va TRUE -ni qaytaradi. Bularning barchasini yuqori darajada bajarish kerak. Faol kalit bilan keyingi ish past darajada bo'ladi. Men bu erda sizga "Haqiqat" jadvalini ko'rsatish uchun foydalanaman.

Kod tasvirida men manba kodining bu qismida ko'tarilish tomon ketayotganimni va kurs tugashining tugmachasini hali bosmaganligimni tushunishga yordam beradigan diagramma joylashtirdim.

Endi, bu tasvirda bool DRV8825 kodi, men dvigatel hali ham o'sayotgan yo'nalishda harakat qilayotganini ko'rsataman. Biroq, maksimal chegara kaliti faollashtirilgan. Shunday qilib, mexanizm harakatni to'xtatishi kerak.

Oxir -oqibat, men xuddi shu harakatni ko'rsataman, lekin teskari yo'nalishda.

Bu erda sizda kurs tugashi tugmasi allaqachon faollashtirilgan.

9 -qadam: Vazifalar - Harakatni sozlash

Vazifalar - Harakatni sozlash
Vazifalar - Harakatni sozlash

MotionConfig usulining asosiy foydaliligi, qadam dvigatelini boshqarish moslamasini kutib olish uchun millimetrni sekundiga (CNC mashinalarida ishlatiladigan o'lchov) qadamlarga aylantirishdir. Aynan mana shu qismda men millimetrni emas, balki qadamlarni tushunish uchun o'zgaruvchilarni yarataman.

10 -qadam: Vazifalar - Harakat funktsiyasi

Vazifalar - Harakat funktsiyasi
Vazifalar - Harakat funktsiyasi

Bu bosqichda biz qadamni kerakli yo'nalishda bir daqiqaga mikrosaniyalarda siljitadigan buyruqni ko'rib chiqamiz. Shuningdek, biz haydovchining yo'nalish pinini, kechikish vaqtini va chegara kalitlarining yo'nalishini o'rnatamiz.

11 -qadam: Vazifalar - Harakat funktsiyasi - O'zgaruvchilar

Vazifalar - Harakat funktsiyasi - O'zgaruvchilar
Vazifalar - Harakat funktsiyasi - O'zgaruvchilar

Bu bo'limda biz maksimal va minimal tezlik davrlarini, traektoriya masofasini va traektoriyani to'xtatish uchun zarur bo'lgan qadamlarni o'z ichiga olgan barcha o'zgaruvchilarni sozlaymiz.

12 -qadam: Vazifalar - Harakat funktsiyasi - Tezlashtirish

Vazifalar - Harakat funktsiyasi - Tezlashtirish
Vazifalar - Harakat funktsiyasi - Tezlashtirish
Vazifalar - Harakat funktsiyasi - Tezlashtirish
Vazifalar - Harakat funktsiyasi - Tezlashtirish

Bu erda men Torricelli tenglamasi orqali hisoblangan tezlashuv ma'lumotlariga qanday etib kelganimiz haqida ba'zi tafsilotlarni keltiraman, chunki bu vaqtni emas, balki tezlashuvni ishlaydigan bo'shliqlarni hisobga oladi. Ammo, bu erda butun tenglama faqat bitta kod satri ekanligini tushunish muhimdir.

Biz yuqoridagi rasmda trapetsiyani aniqladik, chunki dastlabki aylanish tezligi ko'p pog'onali dvigatellar uchun yomon. Xuddi shu narsa sekinlashuv bilan sodir bo'ladi. Shuning uchun biz tezlashuv va sekinlashuv orasidagi davrda trapezoidni tasavvur qilamiz.

13 -qadam: Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik

Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik

Bu erda biz tezlashtirishda ishlatiladigan qadamlar sonini ushlab turamiz, biz doimiy tezlikda davom etamiz va maksimal tezlikda saqlaymiz, buni quyidagi rasmda ko'rish mumkin.

14 -qadam: Vazifalar - Harakat funktsiyasi - Tormozlash

Vazifalar - Harakat funktsiyasi - Tormozlash
Vazifalar - Harakat funktsiyasi - Tormozlash
Vazifalar - Harakat funktsiyasi - Tormozlash
Vazifalar - Harakat funktsiyasi - Tormozlash

Bu erda bizda yana bir tenglama bor, bu safar tezlanish qiymati manfiy. U, shuningdek, quyidagi rasmda, sekinlashuv deb nomlangan to'rtburchakni ifodalovchi kod qatorida ko'rsatiladi.

15 -qadam: Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik

Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik
Vazifalar - Harakat funktsiyasi - Uzluksiz tezlik

Biz quyida ko'rinib turganidek, traektoriyaning ikkinchi yarmini ishlash uchun doimiy tezlikka qaytamiz.

16 -qadam: Vazifalar - Funktsiyani siljitish - Burilishlarni siljitish

Vazifalar - ko'chirish funktsiyasi - aylantirish
Vazifalar - ko'chirish funktsiyasi - aylantirish

Bu qismda biz dvigatelni kerakli yo'nalishda ma'lum miqdordagi burilishlarda harakatlantiramiz, burilishlar sonini millimetrga aylantiramiz. Nihoyat, biz motorni kerakli yo'nalishda harakatlantiramiz.

17 -qadam: Harakatlar jadvali - joylashuv tezligi

Harakatlar jadvali - joylashuv tezligi
Harakatlar jadvali - joylashuv tezligi

Ushbu grafikda men Acceleration qismida ishlatilgan tenglamadan olingan ma'lumotlarga egaman. Men qadriyatlarni oldim va Arduino serialida o'ynadim va bundan Excelga o'tdim, natijada bu jadval paydo bo'ldi. Jadvalda qadamning borishi ko'rsatilgan.

18 -qadam: Harakatlar jadvali - pozitsiya va boshqalar. Lavozim

Harakatlar jadvali - pozitsiya va boshqalar. Lavozim
Harakatlar jadvali - pozitsiya va boshqalar. Lavozim

Bu erda biz pozitsiyani, qadamlarni va tezlikni olamiz va uni davrga mikrosaniyada aylantiramiz. Biz bu bosqichda davr tezlikka teskari proportsional ekanligini ta'kidlaymiz.

19 -qadam: Harakatlar jadvali - Tezlik va boshqalar. Lahza

Harakatlar jadvali - tezlik va boshqalar. Lahza
Harakatlar jadvali - tezlik va boshqalar. Lahza

Nihoyat, bizda tezlik bir lahzalik vazifasi sifatida bor va shuning uchun bizda to'g'ri chiziq bor, chunki bu vaqt funktsiyasi sifatida tezlik.

Tavsiya: