SERVO MOTORNI BOSHQARISH.
Servo motorlarni boshqarish uchun siz PWM funktsiyasiga ega AVR mikrokontrolleridan foydalanishingiz mumkin. Shunday qilib, PWM avtomatik ravishda servo blokirovka signallarini hosil qiladi va boshqaruvchining protsessori boshqa vazifalar uchun bo'shatiladi. PWM-ni qanday sozlash va undan foydalanish mumkinligini tushunish uchun siz AVR-da apparat taymerlari va PWM modullari haqida asosiy ma'lumotlarga ega bo'lishingiz kerak.
Bu erda biz 16 bitli taymer bo'lgan va ikkita PWM kanaliga (A va B) ega bo'lgan AVR Timer modulidan foydalanamiz.
Markaziy protsessorning chastotasi 16 MGts.ni tashkil etadi, bu ko'pchilik AVR-lar ishlay oladigan maksimal chastotadir, shuningdek, biz 64 ga chastota ajratuvchisidan foydalanamiz. taymer 14 holatiga.
Taymer 14 rejimida ishlaydi
FAST PWM rejimi
TTOP qiymati = ICR1
Shunday qilib, taymer 0 dan ICR1 gacha hisoblanadi. PWM chastotasining formulasi va TOP qiymati asosida hisoblash quyida keltirilgan.
Shunday qilib biz ICR1A = 4999 ni o'rnatdik, bu bizga PWM davrini 20ms (50Hz) beradi, chiqish rejimi COM1A1, COM1A0 (PWM kanali uchun) va COM1B1, COM1B0 (PWM kanali B uchun) to'g'ri sozlanganligiga ishonch hosil qiling.
COM1A1 = 1 va COM1A0 = 0 (PWM manbai)
COM1B1 = 1 va COM1B0 = 0 (PWM kanali B)
Endi ish tsikli OCR1A va OCR1B registrlarini sozlash orqali o'rnatilishi mumkin. Ushbu ikkita registr PWM davrini boshqaradi Taymer davri 4 miks (16 MGts ni 64 ga bo'lishini unutmang), biz servoni ma'lum bir burchakka burish uchun zarur bo'lgan qiymatlarni hisoblashimiz mumkin.
§ Servo burchak 0 darajaga impulsning kengligi 0,388ms (388uS) kerak, shuning uchun OCR1A = 388us / 4us = 97 qiymati
§ Servo burchak 90 daraja uchun impuls kengligi 1,264ms (1264uS) kerak, shuning uchun qiymat OCR1A = 1264us / 4us = 316
§ Servo burchak 180 gradusga impulsning kengligi 2.140ms (2140uS) kerak, shuning uchun OCR1A = 2140us / 4us = 535 qiymati
Shunday qilib, har qanday burchak uchun OCR1A qiymatini (yoki ikkinchi servo uchun OCR1B) hisoblashimiz mumkin. OCR1x qiymati 0 dan 180 gradusgacha bo'lgan burchaklar uchun 97 dan 535 gacha bo'lganligini unutmang.
Dvigatelni boshqarish dasturi.
Quyidagi demo dasturda servo dvigatellarni AVR mikrokontrollagari bilan qanday ishlatish kerakligi ko'rsatilgan. Dasturning ishlashi juda oddiy, u taymerni ishga tushirish va PWMni boshlashdan boshlanadi, boshida servo 0 darajaga o'rnatiladi, keyin u 90 gradusgacha harakat qiladi va bir muncha vaqt o'tgach 135 darajaga, nihoyat 180 ga o'tadi. daraja. Drayv quvvatlangan ekan, bu jarayon takrorlanadi.
Dasturning to'g'ri ishlashi uchun parametrlar.
LOW sug'urta = 0xFF va yuqori sug'urta = 0xC9
Chastotasi = 16 MGts.
Servomotormark Futaba S3003.
MCU - AtMega32 yoki ATmega16 bitta chipli mikrokontroller.
Topshiriqni bajarish
Yuqoridagi keltirilgan sxemani EWB dasturi yordamida bajarib tahlil qiling.
Foydalanilgan adabiyotlar
Серводвигатель
RC серводвигатели подключаются в штекеры PWM1 и PWM2 платы двигателей. Двигатели подключаются так, чтобы сигнальный провод (обычно, желтый или белый) . Одновременно можно использовать два серводвигателя. Управляющие сигналы двигателей соединены напрямую с таймерными выходными выводами контроллера.
(RC servo motorlar dvigatel platasining PWM1 va PWM2 vilkalariga ulangan. Dvigatellar signal simini (odatda sariq yoki oq) bo'lishi uchun ulangan. Bir vaqtning o'zida ikkita servomotordan foydalanish mumkin. Dvigatellarning boshqaruv signallari to'g'ridan-to'g'ri tekshirgichning taymer chiqishlariga ulanadi.)
Вывод AVR
|
Управляющий
|
PB5(OC1A)
|
PWM1
|
PB6(OC1B)
|
PWM2
|
Соединения двигателей
Ushbu sxemalarni NI multisim Elekrtronik Work Bench dasturida chizing?
Foydalaniladigan manba.
http://avr.ru/ready/contr/agent/servo
Do'stlaringiz bilan baham: |