Mündəricat:

Arduino Resolver Modulu: 4 addım
Arduino Resolver Modulu: 4 addım

Video: Arduino Resolver Modulu: 4 addım

Video: Arduino Resolver Modulu: 4 addım
Video: Amazing arduino project 2024, Noyabr
Anonim
Arduino Çözücü Modulu
Arduino Çözücü Modulu

Tinee9 yeni bir modulla geri döndü. Bu modula Resolver modulu deyilir.

Mühərrik idarəetmə dünyasında mövqeyi aşkar etməyin müxtəlif növləri və ya üsulları mövcuddur. Bu üsula salon sensörleri, XY sensorlar, həlledici, RVDT, LVDT, sahə direktorları, potensiometr və s. Daxildir. Bu sensorların hər birinin necə qurulmasından asılı olaraq hətta son mövqeyini yaddaşda saxlamaq məcburiyyətində olmadan da mütləq mövqeyinizi təyin edə bilərsiniz..

İstifadə etdiyim modul bir RVDT, LVDT və Resolverin modelləşdirilməsində istifadə edilə bilər, lakin bugünkü məqsəd üçün bir həll edənin demodulyasiyası olacaq.

Texniki anlayış: Ekspert səviyyəsi

Tutorial Plug and Play: Orta Səviyyə

Təchizat

1: Arduino Nano

2: Çözücü Modulu

3: Çörək lövhəsi

4: 9.0 Volt Batareya və ya NScope

5: Çözücü

6: 10x Çörək taxtası Jumper Wires

Addım 1: Çözücü Modulu

Çözücü Modulu
Çözücü Modulu

Bir mühərrikin kommutasiyası üçün demodulyasiya edə biləcəyiniz bir həlledici ilə edə biləcəyiniz bir neçə şey var, sıfır nöqtəsini keçməsəniz mütləq bir mövqe əldə edə bilərsiniz və bir motordan sürəti ala bilərsiniz.

Onlardan ən çox istifadə edildiyini gördüyüm yer havadarlıq, sükan, raket qanadı və ya kamera nəzarətindədir.

Bir qazandan və ya salondan bir az daha bahalı olmağa meyllidirlər, ancaq inanılmaz bir həll verirlər.

Addım 2: Quraşdırma

Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq
Qurmaq

1: Əvvəlcə arduino nanonu çörək taxtasına yerləşdirməlisiniz

2: Arduino üzərindəki 5V Pini +3V3 Pinə və Çözücü Modulundakı 5V pininə bağlamalısınız (Çözücüdə 5V həyəcan verərkən modul 3.3V təchizatı ola bilər)

3: Arduino RTN -ni Resolver Modulundakı RTN -ə qoşun

4: Arduino üzərindəki D9 -u Resolver Modulundakı PWM -ə qoşun

5: Arduino -da A0 -nu Resolver Modulundakı MCU_COS+ -a qoşun

6: Arduino -da A1 -ni Resolver Modulundakı MCU_SIN+ -ə qoşun

7: Resolver EX+ telini Resolver Modulundakı EX+ -a qoşun

8: Resolver EX telini Resolver Modulundakı EX-ə qoşun

9: Resolver COS+ telini Resolver Modulundakı COS+ -a qoşun

10: 2 Resolver RCOM telini Resolver Modulundakı RCOM -a qoşun

11: Resolver SIN+ telini Resolver Modulundakı SIN+ -ə qoşun

12: 9V Batareyanı RTN (-) və VIN-ə (+) bağlayın

13: Və ya Arduino'da Nscope +5V -dən 5V -ə qədər Pin və Nscope -da RTN -ni Arduino -da RTN -ə bağlayın

14: Kompüteri USB -yə bağlayın

15: Arduino'yu PC -də USB -yə bağlayın

Addım 3: Kodu yükləyin

Kodu yükləyin
Kodu yükləyin
Kodu yükləyin
Kodu yükləyin

Aşağıdakı Arduino Kodunu Arduino IDE -dəki eskizinizə yapışdırın

Bu kodun edəcəyi şey PWM Resolver Moduluna gedir. Bu Modul, həlledicini həyəcanlandıracaq və həlledicinin ikincil sarımlarında bir kvadrat dalğa yaradacaq. Sin+ və Cos+ -dan gələn siqnallar daha sonra Dalğanı mərkəzləşdirəcək və 0-5Volts arasında gedən çıxışı azaldacaq bir OPAMP-ə verilir.

Sin+ və Cos+ dedikləri kimidir. Günah Cos dalğası ilə fazadan 90 dərəcə uzaqdır.

Fazadan 90 dərəcə kənarda olduqları üçün, həlledici mövqenin düzgün koordinatını əldə etmək üçün Atan2 (Cos, Sin) funksiyasından istifadə etməliyik.

Arduino, 4 nümunə əldə etdikdən sonra, -3.14 ilə 3.14 arasında olan, sırasıyla -180 dərəcə və +180 dərəcəni təmsil edən tüpürəcək. Məhz bu səbəbdən, qətnaməni mütləq mövqe üçün istifadə etmək istəyirsinizsə, yalnız 180 ilə 180 arasında dönmədən istifadə etməlisiniz, əks halda yuvarlanıb aktuator vuruşunuzun əvvəlində və ya sonunda olduğunuzu düşünəcəksiniz. Bir 3D printerin x və ya y oxu üçün bir həlledicidən istifadə etmək qərarına gəlsəniz və 3D printerin qarışmasına səbəb olarsa bu problem olardı.

Davamlı PWMing olması üçün fasilələrlə kodu bir az daha yaxşı hala gətirə bilərdim, ancaq bu tətbiq üçün kifayət edər.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 çıxışı = 0.00; int sin1 = 0; int cos1 = 0; int position_state = 1; int get_position = 0; void setup () {// bir dəfə işlətmək üçün quraşdırma kodunuzu bura qoyun: pinMode (pwm, ÇIXIŞ); Serial.begin (115200); }

boşluq döngəsi () {

əgər (get_position = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); çıxış = atan2 (cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print ("Vəzifə:"); Serial.println (çıxış); get_position = 1; }

// əsas kodunuzu bura qoyun, təkrar işləsin:

}

Adım 4: Adım 3: Əylən

Addım 3: Əylən
Addım 3: Əylən
Addım 3: Əylən
Addım 3: Əylən

Çözümçünün fırlanmasından və həll edənin necə işlədiyini və bu həll modulundan hansı tətbiqlərdən istifadə edə biləcəyinizdən zövq alın.

Tövsiyə: