INHOUDSOPGAWE:

Arduino -resolusiemodule: 4 stappe
Arduino -resolusiemodule: 4 stappe

Video: Arduino -resolusiemodule: 4 stappe

Video: Arduino -resolusiemodule: 4 stappe
Video: Драм-секвенсор Arduino: 8 дорожек, 16 шагов на такт, 8 тактов на паттерн 2024, Julie
Anonim
Arduino resolusie module
Arduino resolusie module

Tinee9 is terug met 'n nuwe module. Hierdie module word 'n Resolver -module genoem.

In die wêreld van motorbeheer is daar verskillende tipes of metodes om posisie op te spoor. Hierdie metode sluit in hallsensors, XY -sensors, resolver, RVDT, LVDT, veldbestuurders, potensiometer, ens. Afhangende van hoe elkeen van hierdie sensors ingestel is, kan u selfs u absolute posisie bepaal sonder om die laaste posisie selfs in die geheue te moet stoor.

Die module wat ek gebruik, kan gebruik word om 'n RVDT, LVDT en Resolver te demoduleer, maar vir vandag se doel sal 'n resolver demoduleer.

Tegniese begrip: kundige vlak

Tutoriaal Plug and Play: intermediêre vlak

Voorrade

1: Arduino Nano

2: Resolver -module

3: Broodbord

4: 9.0 Volt battery of NScope

5: Oplosser

6: 10x Broodbord Jumper Wires

Stap 1: Resolver -module

Oplossermodule
Oplossermodule

Daar is 'n paar dinge wat u met 'n resolver kan doen: u kan 'n motor demoduleer vir motorkommutasie, u kan 'n absolute posisie kry as u nie die nulpunt verbygaan nie, en u kan die snelheid van 'n motor haal.

Waar ek hulle die meeste gebruik sien, is in lugvaarttoepassings van aileron, roer, raketvin of kamerabeheer.

Hulle is geneig om 'n bietjie duurder te wees as 'n pot- of saalsensor, maar dit gee u ongelooflike resolusie.

Stap 2: Opstel

Stel op
Stel op
Stel op
Stel op
Stel op
Stel op
Stel op
Stel op

1: Eerstens moet u u arduino nano op 'n broodbord plaas

2: U moet die 5V -pen op die Arduino aansluit by die +3V3 -pen en 5V -pen op die resolusiemodule (die module kan 3.3V toevoer, terwyl die resolver 5V opwek)

3: Koppel RTN op die Arduino aan die RTN op Resolver -module

4: Koppel die D9 op die Arduino aan die PWM op die Resolver -module

5: Koppel A0 op die Arduino aan MCU_COS+ op die Resolver -module

6: Verbind A1 op die Arduino met MCU_SIN+ op die Resolver -module

7: Verbind die Resolver EX+ -draad met EX+ op die Resolver -module

8: Koppel die Resolver EX-draad aan EX- op die Resolver Module

9: Koppel die Resolver COS+ -draad aan COS+ op die Resolver -module

10: Koppel die 2 Resolver RCOM -drade aan RCOM op die Resolver -module

11: Verbind die Resolver SIN+ -draad met SIN+ op die Resolver -module

12: Sluit 9V-battery aan op RTN (-) en VIN (+)

13: Of sluit Nscope +5V tot 5V Pin op Arduino en RTN op Nscope aan op RTN op Arduino

14: Koppel Scope aan op USB op 'n rekenaar

15: Koppel Arduino aan op USB op 'n rekenaar

Stap 3: Laai die kode

Laai die kode
Laai die kode
Laai die kode
Laai die kode

Kopieer Plak die Arduino -kode hieronder op u skets in die Arduino IDE

Wat hierdie kode gaan doen, gaan na PWM the Resolver Module. Die module sal die resolver opwek en 'n vierkantige golf op die sekondêre spoele van die resolver lewer. Die seine wat uit die Sin+ en Cos+ kom, word dan na 'n OPAMP gevoer wat die golf sal sentreer en die uitset sal verminder sodat dit tussen 0-5V gaan.

Sin+ en Cos+ is soos hulle bedoel. Die sonde is 90 grade uit fase met die Cos -golf.

Omdat hulle 90 grade uit fase is, moet ons die Atan2 (Cos, Sin) funksie gebruik om die korrekte koördinaat van die resolver posisie te kry.

Dan sal die Arduino spoeg, nadat hy 4 monsters gekry het, 'n waarde tussen -3,14 en 3,14, wat onderskeidelik -180 grade en +180 grade verteenwoordig. Dit is die rede waarom u slegs tussen -180 en 180 moet gebruik as u die resolver vir absolute posisie wil gebruik, anders draai u om en dink u is terug aan die begin of einde van u aktuatorslag. Dit sou 'n probleem wees as u besluit om 'n resolver vir die x- of y -as van 'n 3D -drukker te gebruik en omdraai, sodat die 3D -drukker deurmekaar raak.

Ek kon die kode 'n bietjie beter gemaak het met onderbrekings om meer deurlopende PWMing te hê, maar dit sal voldoende wees vir hierdie toepassing. 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 uitset = 0.00; int sin1 = 0; int cos1 = 0; int posisie_staat = 1; int get_posisie = 0; ongeldige opstelling () {// plaas u opstellingskode hier om een keer te werk: pinMode (pwm, OUTPUT); Serial.begin (115200); }

leemte -lus () {

as (get_position = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); uitset = atan2 (cos1, sin1); c1 = 0; c2 = 0; c3 = 0; c4 = 0; s1 = 0; s2 = 0; s3 = 0; s4 = 0; Serial.print ("posisie:"); Serial.println (uitset); get_position = 1; }

// plaas u hoofkode hier om herhaaldelik te werk:

}

Stap 4: Stap 3: Om pret te hê

Stap 3: Om pret te hê
Stap 3: Om pret te hê
Stap 3: Om pret te hê
Stap 3: Om pret te hê

Geniet dit om die resolver te draai en leer hoe die resolver werk en watter toepassings u hierdie resolver -module kan gebruik.

Aanbeveel: