Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Tinee9 yangi modul bilan qaytdi. Bu modul Resolver moduli deb ataladi.
Dvigatelni boshqarish dunyosida pozitsiyani aniqlashning har xil turlari yoki usullari mavjud. Bu usulga datchiklar, XY sensorlar, rezolyutor, RVDT, LVDT, dala direktorlari, potansiyometr va boshqalar kiradi. Bu sensorlar qanday o'rnatilganiga qarab, siz hatto oxirgi pozitsiyani xotirada saqlashga to'g'ri kelmasdan turib, o'zingizning mutlaq pozitsiyangizni aniqlashingiz mumkin..
Men foydalanadigan modul RVDT, LVDT va Rezolverni demodulyatsiya qilish uchun ishlatilishi mumkin, lekin bugungi maqsadda rezolverni demodulyatsiyasi bo'ladi.
Texnik tushuncha: mutaxassislar darajasi
O'rnatish va ishga tushirish: O'rta darajali
Ta'minotlar
1: Arduino Nano
2: hal qilish moduli
3: Non paneli
4: 9,0 voltli batareya yoki NScope
5: hal qiluvchi
6: 10x non paneli Jumper Wires
1 -qadam: Resolver moduli
Dvigatelni almashtirish uchun motorni demodulyatsiya qilish mumkin bo'lgan rezolyutor yordamida siz bir nechta narsalarni qilishingiz mumkin, agar siz nol nuqtadan o'tib ketmasangiz, siz mutlaq pozitsiyani olishingiz mumkin va siz motordan tezlikni olishingiz mumkin.
Men ularni eng ko'p ishlatilgan joylarni aerokosmik dasturlarda, rulda, raketa qanotlarida yoki kamera boshqaruvida ishlatganman.
Ular qozon yoki zal sensoridan biroz qimmatroq, lekin ular sizga ajoyib piksellar sonini beradi.
2 -qadam: sozlash
1: Avval siz arduino nanosini non taxtasiga joylashtirishingiz kerak bo'ladi
2: Arduino -dagi 5V -pinni +3V3 -pinli va Resolver modulidagi 5V -pinli ulashingiz kerak (modulda 5V -ni qo'zg'altirganda 3.3V bo'lishi mumkin).
3: Arduino -dagi RTN -ni Resolver modulidagi RTN -ga ulang
4: Arduino -dagi D9 -ni Resolver modulidagi PWM -ga ulang
5: Arduino -dagi A0 ni Resolver modulidagi MCU_COS+ ga ulang
6: Arduino -dagi A1 -ni Resolver modulidagi MCU_SIN+ ga ulang
7: Resolver EX+ simini Resolver modulidagi EX+ ga ulang
8: Resolver EX simini Resolver modulidagi EX-ga ulang
9: Resolver COS+ simini Resolver modulidagi COS+ ga ulang
10: 2 ta Resolver RCOM simini Resolver modulidagi RCOMga ulang
11: Resolver SIN+ simini Resolver modulidagi SIN+ ga ulang
12: 9V batareyani RTN (-) va VIN (+) ga ulang.
13: Yoki Arduino -da Nscope +5V -dan 5V -ga, Nscope -da RTN -ni Arduino -dagi RTN -ga ulang.
14: Kompyuterni USB -ga ulang
15: Arduino -ni kompyuterga ulang
3 -qadam: Kodni yuklang
Arduino kodini nusxasini Arduino IDE -dagi eskizga joylashtiring
Ushbu kod nima qilmoqchi bo'lsa, PWM Resolver Module -ga o'tadi. Bu modul rezolyutorni hayajonlantiradi va rezolyutorning ikkilamchi bobinlarida to'lqin hosil qiladi. Sin+ va Cos+ dan chiqadigan signallar OPAMPga yuboriladi, u to'lqinni markazlashtiradi va chiqishni 0-5 voltgacha kamaytiradi.
Sin+ va Cos+ ular aytganidek. Gunoh Cos to'lqini bilan 90 daraja fazadan tashqarida.
Ular 90 daraja fazadan tashqarida bo'lgani uchun biz aniqlovchi pozitsiyasining to'g'ri koordinatasini olish uchun Atan2 (Cos, Sin) funktsiyasidan foydalanishimiz kerak.
Keyin Arduino 4 ta namuna olgandan keyin tupuradi, bu qiymat -3.14 va 3.14 oralig'ida mos ravishda -180 daraja va +180 darajani tashkil qiladi. Shuning uchun, agar siz rezolyutsiyani mutlaq pozitsiya uchun ishlatmoqchi bo'lsangiz, aylantirishsiz faqat 180 dan 180 gacha ishlatishingiz kerak, aks holda siz ag'darilib, aktuator zarbasining boshida yoki oxirida turibsiz deb o'ylaysiz. Agar siz 3D -printerning x yoki y o'qi uchun hal qiluvchidan foydalanishga qaror qilsangiz va 3D -printerni chalkashtirib yuborsangiz, bu muammo bo'ladi.
Men uzluksiz PWMingga ega bo'lish uchun uzilishlar bilan kodni biroz yaxshilagan bo'lardim, lekin bu dastur uchun etarli bo'ladi.int A = A0;
int B = A1; int pwm = 9; int c1 = 0; int c2 = 0; int c3 = 0; int c4 = 0; int c5 = 0; int c6 = 0; int s1 = 0; int s2 = 0; int s3 = 0; int s4 = 0; int s5 = 0; int s6 = 0; float chiqishi = 0,00; int sin1 = 0; int cos1 = 0; int position_state = 1; int get_position = 0; void setup () {// bir marta ishga tushirish uchun sozlash kodini bu erga qo'ying: pinMode (pwm, OUTPUT); Serial.begin (115200); }
void loop () {
agar (get_position = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); chiqish = atan2 (cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print ("Lavozim:"); Serial.println (chiqish); get_position = 1; }
// qayta ishga tushirish uchun asosiy kodingizni bu erga qo'ying:
}
4 -qadam: 3 -qadam: Xursand bo'ling
Rezolyutorni aylantirishdan va rezolyutor qanday ishlashini va bu ilovadan qaysi ilovalarni ishlatishingiz mumkinligini bilib oling.