Mundarija:
- 1 -qadam: Steppers bilan tanishing
- 2 -qadam: umumiy zamin toping
- 3 -qadam: qadamlarni belgilang
- 4 -qadam: Dvigatelni sinov haydovchisiga olish
- 5 -qadam: orqaga va orqaga buriling
- 6-qadam: Men hech qachon yarim qadam tashlamayman, chunki men yarim qadam emasman …
- 7 -qadam: Dvigatel drayverini qo'shing
- 8 -qadam: Oxir
Video: AVR mikroprotsessorli qadam dvigatelini boshqaring: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Printerlardan/disklardan va boshqalardan tozalangan qadam dvigatellari bormi?
Ba'zilar ohmetr bilan tekshiradi, so'ngra mikroprotsessoringizda oddiy haydovchi kodi paydo bo'ladi, shunda siz uslubni o'zgartirasiz.
1 -qadam: Steppers bilan tanishing
Umuman olganda, barcha kichik simlar qayerga ketishini aniqlash kerak.
Birinchi qadam - bu bir qutbli yoki bipolyar vosita ekanligini aniqlash. Noma'lum dvigatelni aniqlashning oddiy usulini bilish uchun Jonsni "Steppers on Steppers" ga qarang. Biroz o'qing, keyin menga arzon bo'lgan ushbu motorni o'rganishga qo'shiling. (Ular hozirda 0,99 dollarga sotilmoqda. Ular kichik, nisbatan yengil, lekin ko'p momentga ega emas. Hali nima yaxshi bo'lishini bilmayman.)
2 -qadam: umumiy zamin toping
Shunday qilib, sizda beshta (yoki to'rt yoki oltita) sim bor. Sizning dvigatelingiz ikkita bo'lakka ega bo'ladi va siz hatto har bir sim qaysi tomonga tegishli ekanligini bilib olishingiz mumkin.
Agar siz faqat to'rtta simga qarasangiz, omadingiz bor - bu bipolyar motor. Qaysi ikkita juft sim birlashishini aniqlash kifoya. Agar sizda bir qutbli dvigatel yoki 4 dan ortiq sim bo'lsa, siz ohmetrni uzib qo'yishingiz kerak bo'ladi. Siz qidirayotgan narsa - har bir yarmi uchun umumiy (tuproqli) sim. Qaysi biri bipolyar dvigatelda yotqizilganligini ayta olasiz, chunki u qutblarning har biriga nisbatan qarshilikning yarmiga teng. Rasmda simlarni simlarga ulash va qarshilikni qayd etish (yoki ular umuman ulangan bo'lsa) eslatmalarim ko'rsatilgan. Ko'ryapsizmi, Oq - bu pastki uchlik uchun asos bo'lib, ular qizil yoki ko'k rangga nisbatan bir xil qarshilikka ega. (Bu dvigatel g'alati va yuqori magnitli lasanning markaziy krani yo'q. U xuddi yarim bipolyar, yarim qutbli kabi. Balki siz buni Qora-Sariq paytida Qizil-Oq-Moviy rulonda aylanishni sezishingiz mumkin. rulon boshqariladi.)
3 -qadam: qadamlarni belgilang
Men bu dvigatelni ikki qutbli haydashni xohlardim, shuning uchun men Oq topraklama simiga e'tibor bermayman. Menda tashvishlanish uchun faqat to'rtta sim bor.
Siz bir qutbli dvigatelni baribir bipolyar boshqarishni xohlashingiz mumkin, chunki u har bir rulonning ikki yarmini almashtirib turish o'rniga, butun fazani ikkala bosqichda ishlatadi. Ko'proq lasan = ko'proq moment. Bir juft orqali tokni o'tkazing (siz tanlagan qutbga e'tibor bering) va keyin bir vaqtning o'zida boshqa juftlik orqali oqim o'tkazing. Ikkinchi juftni ulashda, dvigatelning qay tomonga burilishini kuzatib boring. Buni yozing. Endi siz tanlagan birinchi juftlikning qutblanishini o'zgartiring. Keyin ikkinchi juftlikni yana ulang, ularning qutblari teskari. Yo'nalishga e'tibor bering. Shundan kelib chiqib, siz dvigatelni har ikki yo'nalishda aylantirish tartibini aniqlab olishingiz kerak. Mening misolimda, ikkalasi ham soat sohasi farqli o'laroq aylandi, shuning uchun ketma -ketlikni men tanlagan usulda bosib o'tish CCW dvigatelini o'zgartiradi.
4 -qadam: Dvigatelni sinov haydovchisiga olish
Agar siz mikroprotsessor dasturlash uchun hali tayyorlanmagan bo'lsangiz, siz Getto Development Kit yoki PIC -ning har xil dasturchilaridan ko'ra yomonroq ish qilishingiz mumkin. Simlarni to'g'ridan -to'g'ri mikroprotsessorga ulang va quyidagi kod bilan yoqing:
/* Kichik pog'onali motorlarni harakatga keltirish bilan o'ynash. */
/ * Kechiktirish funktsiyasini qo'shish */ #define F_CPU 1000000UL #include/ * ATTiny2313 uchun pin defs *// * soat yo'nalishi bo'yicha buyurtma */ #define BLUE _BV (PB0) #define BLACK _BV (PB1) #define RED _BV (PB2) #define YELLOW _BV (PB3) #define DELAY 200 / * millisekund qadamlar orasidagi * / int main (void) {DDRB = 0xff; / * Hamma B pinlarida chiqishni yoqish */ PORTB = 0x00; / * Barchasini 0v */ ga o'rnating (1) {/ * bu erda asosiy halqa */ PORTB = KO'Z; _delay_ms (kechikish); PORTB = QORA; _delay_ms (kechikish); PORTB = QIZIL; _delay_ms (kechikish); PORTB = SARI; _delay_ms (kechikish); }} Bu kod qanchalik sodda? Haqiqatan ham oddiy. Bu faqat yaxshi ta'riflarni berishdir, shuning uchun men simlarni pin-nomlari emas, balki ranglari bilan atashim mumkin edi, keyin ularni ketma-ketlik bilan sozlash mumkin. Yangi boshlanuvchilar uchun men qadamlar orasidagi yarim soniya kechikishni tanladim. Natijalar uchun qisqa videoni ko'ring. Agar siz haqiqatan ham o'yiningizda bo'lsangiz, dvigatelning bir pog'onali burchak o'lchamlarini aniqlash uchun har bir tsikl uchun qadamlar sonini hisoblang. (Ha. PS. 3,6v tezlikda yuklamaydi
5 -qadam: orqaga va orqaga buriling
Shunday qilib, siz soat yo'nalishi bo'yicha harakat qilasiz. Yana qiziqroq narsa bormi? Biroz kodni tozalash, va biz uni oldinga va orqaga ishlatishimiz mumkin. Men soat yo'nalishi bo'yicha ketma -ketlikni qatorga qo'ydim, shunda siz oddiy tsikl bilan bosqichlarni bosib o'tishingiz mumkin. Endi siz soat yo'nalishi bo'yicha yoki teskari yo'nalishda aylanish uchun pastadirni yuqoriga yoki pastga boshqarishingiz mumkin.
int main (void) {const uint8_t kechikish = 50; const uint8_t soat yo'nalishi bo'yicha = {KO'K, Qora, Qizil, Sariq}; uint8_t i; DDRB = 0xff; / * Barcha B -pinlarda chiqishni yoqish */ PORTB = 0x00; / * Barchasini 0v */ ga o'rnating (1) {/ * bu erda asosiy halqa */ for (i = 0; i <= 3; i ++) {/ * ranglarni soat yo'nalishi bo'yicha aylantiring */ PORTB = soat yo'nalishi bo'yicha ; _delay_ms (kechikish); } uchun (i = 3; i> = 0; i-) { / * ccw * / PORTB = soat yo'nalishi bo'yicha ranglarini bosib o'tish; _delay_ms (kechikish); }}} Orqa va oldinga siljish uchun bema'ni videoni ko'ring.
6-qadam: Men hech qachon yarim qadam tashlamayman, chunki men yarim qadam emasman …
Lirik vazifani chetga surib, dvigatelni yarim qadam bosish-u turgan joy. Siz ko'proq tepalik tokini, bir lahzalik momentni va ikki marta burchak o'lchamlarini olasiz. Qisqacha aytganda, yarim qadam: Moviy, Qora, Qizil, Sariq o'rniga siz motorni Moviy, Moviy+Qora, Qora, Qora+Qizil, Qizil, Qizil+Sariq, Sariq, Sariq+Ko'k rangda boshqarasiz. Natijada yarim vaqtda siz ikkala magnitni bir vaqtning o'zida jalb qilasiz. Ikkala to'plam ham ishlayotgan vaqtda, dvigatel ikkalasining yarmini ko'rsatib, "qadamlar" orasidagi burchakni qisqartiradi va dvigatelning silliq aylanishini ta'minlaydi. Videodan ayta olasizmi? Ishonchim komil emas … Endi kodning yarim qadamni bajaradigan qismi shunday ko'rinadi:
void halfStepping (uint16_t kechikish, uint8_t yo'nalishi ) {uint8_t i; uchun (i = 0; i <= 3; i ++) {PORTB = yo'nalishi ; / * bitta bobinli qism */ _delay_ms (kechikish); PORTB | = yo'nalish [i+1]; / * yarim qadamda qo'shish */ _delay_ms (kechikish); }} Birinchi PORTB buyrug'i bitta qutbni musbatga, qolganini manfiy qilib belgilaydi. Keyin kutadi. Keyin ikkinchi PORTB buyrug'i ikkinchi qutbni (ikkinchi o'rashda) musbat holatga o'rnatadi, bu ikkala o'rashni 1,4 marta aylanish momentiga (va oqimdan 2 baravar) tortadi. Dasturning to'liq ro'yxati quyida biriktirilgan. Endi ikkita massiv aniqlandi (soat yo'nalishi bo'yicha, soat sohasi farqli o'laroq) va ikkalasi ham 5 elementdan iborat bo'lib, i+1 ni yarimStepping funktsiyasiga kiritish imkonini beradi.
7 -qadam: Dvigatel drayverini qo'shing
Hozircha hammasi yaxshi.
Bitta muammo shundaki, dvigatelda unchalik katta moment yo'q, chunki bu mikroprotsessor har bir pin uchun ~ 50mA ni o'chiradi. Keyingi aniq qadam, uni haydovchiga bog'lab, uni ko'proq sharbat bilan ta'minlashdir. Ammo keyin bir oz o'ylayman: men uni faqat 5v bilan boshqaraman va rulonning qarshiligi ~ 125 ohm. Bu shuni anglatadiki, dvigatel har bir pin uchun 40 mA ni tashkil qiladi va uni AVR chipi (beefy!) Yaxshi boshqarishi kerak. Shunday qilib, dvigatelning kuchlanishini oshirish uchun uni SN754410 H-ko'prikli chipga uladim. O'chirish sxemasi juda oddiy. AVR -ning har bir pimi kirishga o'tadi va mos keladigan chiqish pinlari dvigatelga o'tadi. Chipga mantiq bo'limi uchun 5v kerak bo'ladi va dvigatel bo'limida juda ko'p kuchlanishni olishi mumkin. Uni 11.25V (uchta 3.6V batareya) da ishlatish biroz yordam berdi. Barmoqlarimga nisbatan ko'proq tork, lekin u hali ham quvvat manbai emas. Nikeldan kichik dvigatel uchun yomon emas. Va endi bu davr umumiy maqsadli bipolyar qadamli haydovchi bo'lib qoldi. 29 -noyabr qo'shildi: Kecha tunda 12v da bir muddat motor yugurdi va u qiziy boshladi. Ishonchim komilki, bu rezonansli chastota muammosi yoki sarg'ish uchun juda katta oqimmi. Qanday bo'lmasin, agar siz bu kichik motorni katta kuchlanishda boshqarayotgan bo'lsangiz, biroz ehtiyot bo'ling.
8 -qadam: Oxir
Xo'sh, men nimani o'rgandim? Bosqichli dvigatelni AVR (va H-ko'prikli chip) bilan haydash, hatto "chiroyli" yarim qadam rejimida ham juda oson.
Kichik pog'onali dvigatellar bilan nima qilishim aniq emas. Har qanday taklif?
Tavsiya:
Arduino Servo dvigatelini qanday boshqarish kerak: 4 qadam
Arduino Servo Dvigatelini qanday boshqarish kerak: Salom bolalar! Mening yangi darsligimga xush kelibsiz, umid qilamanki, siz menga "Katta qadamli dvigatelni boshqarish" ko'rsatmasi yoqdi. Bugun men sizga har qanday servomotorni boshqarish asoslarini o'rgatish uchun ushbu o'quv qo'llanmani joylashtiraman, men allaqachon videoni joylashtirganman
BLDC dvigatelini Arduino va Joystick bilan qanday boshqarish mumkin: 6 qadam
BLDC dvigatelini Arduino va Joystik bilan qanday boshqarish mumkin: Salom do'stlar, bu darslikda men sizga Arduino va joystik bilan cho'tkasi bo'lmagan doimiy dvigatel BLDC motorini qanday boshqarishni ko'rsataman
Alexa yordamida EV3 dvigatelini boshqaring: 9 qadam
Alexa yordamida EV3 motorini boshqaring: LEGO EV3 -ni ovozli buyruqlar yordamida boshqarishni xohlaysizmi? Ushbu loyihada siz Alexa bilan gaplashib EV3 dvigatelini harakatlantirishga harakat qilishingiz mumkin. Sizga kerak bo'lgan narsa - Amazon Echo Dot, Arduino Nano 33 IoT platasi va WiFi dongle va motorli EV3. Fikr - qurish
SG90 Servo Dvigatelini "skiiiD" bilan qanday ishlatish kerak: 9 qadam
SG90 Servo Dvigatelini "skiiiD" bilan qanday ishlatish kerak: Ishga tushirishdan oldin skiiiD-dan qanday foydalanish bo'yicha asosiy ko'rsatma mavjud
KIM Uno - 5 evrolik mikroprotsessorli Dev Kit emulyatori: 13 qadam (rasmlar bilan)
KIM Uno - 5 evrolik mikroprotsessorli qurilma to'plami emulyatori: KIM Uno - bu ko'chma, dasturiy ta'minot (retro) mikroprotsessorlar uchun ishlab chiqilgan asboblar to'plami. Ammo men bu fikrni o'z vaqtida ortga qaytarish bilan tanishtiray: 2018 yil oxirida men miyamga ko'chma mikroprotsessorli kichik asboblar to'plamini yaratmoqchi edim, xolos