Laboratoriya ishi №13. Pezonurlatgich. Buzer moduli orqali musiqa nota kodlarini tashkillash Laboratoriya ishining maqsadi
Download 0.95 Mb. Pdf ko'rish
|
3-DETLINE(2)
Servo motor Ichida: SG90 ( bu yerda ma'lumotlar varag'i ) 9 grammlik servo
motor bo'lib, u taxminan 0,3 soniya (0,1 s/60 daraja) tezlikda 0 - 180 daraja (taxminan) aylana oladi. SG90 arzon loyihalarda, odatda motorli transport vositalari va robot qo'llari bilan qo'llaniladi. SG90 ta'lim va prototip yaratish uchun ajoyib vositadir - chunki u arzon va ishlatish uchun qulay. SG90 Arduino dasturiy ta'minoti bilan ham mos keladi, bu qo'llanmada servoni aylantirish uchun foydalaniladi, bu vosita bilan ilovalarda ishlatiladigan kichik shahar dvigatelining uzatmasidan kattaroq va sekinroq uzatmaga qanday qisqarishini ko'rish uchun. To'liq Arduino simlari va kod ko'rsatmalari uchun keyingi bo'limga qarang. Quyida odatiy SG90 servo motoridagi turli komponentlar tasvirlangan bir qator fotosuratlar keltirilgan: Arduino bilan servo simlarni ulash va kodlash asoslari MG90S yana bir kichik servo motor bo'lib, u SG90 ga o'xshash, ammo og'irligi biroz ko'proq (14 g) va plastmassa o'rniga metall uzatmalarga ega. MG90S ham SG90 ga qaraganda bir oz tezroq, bu bu erda nima uchun ishlatilishini yana bir oqlashdir. MG90S ham, SG90 ham bir xil simga ulangan va o'xshash koddan foydalanadi. MG90S servolari o'rnatilgan servo kutubxonasi asosida servoni oldinga va orqaga aylantiradigan Arduino "Servo" kodi bilan ishlaydi. Arduino kutubxonasi boshlash uchun ajoyib joy, chunki u haqiqatan ham bir necha qator kodni talab qiladi. Birinchidan, servo Arduino platasiga ulangan bo'lishi kerak. Arduino Uno taxtasi quyida qo'llaniladi. MG90S texnik jihatdan 4,8V - 6,0V kuchlanishli kirish diapazoniga ega, shuning uchun har qanday 5,0V Arduino impuls kengligi modulyatsiyasi (PWM) imkoniyatlariga ega bo'lsa, ishlashi kerak. 19 Oldingi bo'limda .gifni takrorlash uchun oddiy kod quyida keltirilgan. Jarayon quyidagi tartibni amalga oshiradi: Birinchidan, dvigatelning boshlang'ich nuqtasini aniqlash uchun 0 darajaga aylantiring Cheksiz tsikl: Taxminan 3 soniya ichida 90 darajaga aylantiring, 5 soniya kuting 3 soniyada 180 darajaga aylantiring, 5 soniya kuting 3 soniyada 90 darajaga qayting, 5 soniya kuting 3 soniyada 0 darajaga qayting, 5 soniya kuting #include Servo servo_1; // servo kontroller (bir nechta mavjud bo'lishi mumkin) int servo_pin = 3 ; // Servo boshqaruv uchun PWM pin int pos = 0 ; // servo boshlang'ich pozitsiyasi bekor o'rnatish () { servo_1.attach (servo_pin); // servo boshqaruvni ishga tushirish } void loop () { for (pos = 0 ; pos <= 180 ; pos += 1 ) { // 0 darajadan 180 gradusgacha boradi // 1 darajali bosqichlarda servo_1.write(pos); // servoga 'pos' delay ( 15 ) o'zgaruvchisidagi pozitsiyaga o'tishni ayting; // agar (pos == 90 ){ kechikish ( 5000 ) bo'lsa, servoning kerakli holatga kelishiga ruxsat berish uchun kechikish ; //90 gradusda bir marta 5 soniya kuting } } kechikish ( 5000 ); // 180 gradusga yetgandan keyin 5 soniya kuting (pos = 180 ; pos >= 0 ; pos -= 1 ) { // 180 darajadan 0 darajaga o'tadi servo_1.write(pos); // servoga 'pos' delay ( 15 ) o'zgaruvchisidagi pozitsiyaga o'tishni ayting; agar (pos == 90 ) { kechikish ( 5000 ); // 90 darajaga o'rnatilgandan keyin 5 soniya kuting } } kechikish ( 5000 ); // 0 darajaga qaytgandan keyin 5 soniya kuting } Servoni ketma-ket monitordan boshqarish Endi servo simlarni ulash va kodlash asoslari kiritilgandan so'ng, servolardan foydalanish va boshqarish bo'yicha yanada ilg'or mavzularni o'rganish mumkin. Ushbu bo'limda asosiy e'tibor seriyali port yordamida servoni boshqarishga qaratiladi. Muxtasar qilib aytganda, ketma-ket portga kiritilgan burchak (gradusda) 20 Arduino-ga servoni berilgan holatga aylantirishni aytadi. Ushbu turdagi boshqaruv robot qo'llari, kamera boshqaruvi yoki burchak ma'lum bo'lgan va foydalanuvchining bevosita kiritishiga ko'ra o'zgartirilishi kerak bo'lgan har qanday vaziyat uchun foydali bo'lishi mumkin. Bu erda qo'llanilgan ba'zi ilovalar avvalgi qo'llanmada ham qo'llanilgan, bu erda RGB LED Arduino-dagi ketma-ket port yordamida boshqariladi. Ushbu qo'llanmani bu erda topish mumkin, u erda Arduino pinlarini boshqarish batafsil o'rganiladi. Bu erda asosiy e'tibor puls kengligi modulyatsiyasi yordamida servo motorning burchagini o'zgartirish uchun bitta Arduino pinini boshqarishga qaratilgan. #include Servo servo_1; // servo kontroller (bir nechta mavjud bo'lishi mumkin) int servo_pin = 3 ; // Servo boshqaruv uchun PWM pin int pos = 0 ; // servo boshlang'ich pozitsiyasi bekor o'rnatish () { servo_1.attach (servo_pin); // servo boshqaruvni ishga tushirish Serial.begin( 9600 ); // seriyali monitorni ishga tushirish servo_1.write(pos); // servoni 0 darajaga o'tkazing Serial.println( "0 darajaga joylashtirilgan" ); Serial.println( "Istalgan burchakni kiriting va Enter tugmasini bosing" ); } void loop () { while (Serial.available()){ String in_char = Serial.readStringUntil( '\n' ); // yangi qatorgacha o'qing Serial.print( "Ko'chirish: " ); Serial.print(in_char); Serial.println( "Darajalar" ); servo_1.write(in_char.toInt()); // burchakni o'zgartiring va servo kechikishini yozing (in_char.toFloat() * ( 10.0 / 6.0 )); // maksimal tezlik uchun kechikish 21 Download 0.95 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling