Indholdsfortegnelse:

Arduino Resolver -modul: 4 trin
Arduino Resolver -modul: 4 trin

Video: Arduino Resolver -modul: 4 trin

Video: Arduino Resolver -modul: 4 trin
Video: exit status 1 error compiling for board arduino, FIX. 2024, Juli
Anonim
Arduino Resolver -modul
Arduino Resolver -modul

Tinee9 er tilbage med et nyt modul. Dette modul kaldes et Resolver -modul.

I motorstyringsverdenen er der forskellige typer eller metoder til at registrere position. Denne metode omfatter hall -sensorer, XY -sensorer, resolver, RVDT, LVDT, feltdirektører, potentiometer osv. Afhængigt af hvordan hver af disse sensorer er konfigureret, kan du endda bestemme din absolutte position uden selv at skulle gemme den sidste position i hukommelsen.

Det modul, jeg bruger, kan bruges til at demodulere en RVDT, LVDT og Resolver, men til dagens formål vil demodulere en resolver.

Teknisk forståelse: Ekspertniveau

Tutorial Plug and Play: Mellemniveau

Forbrugsvarer

1: Arduino Nano

2: Opløsningsmodul

3: Brødbræt

4: 9,0 Volt batteri eller NScope

5: Opløser

6: 10x Brødbræt Jumper Wires

Trin 1: Opløsningsmodul

Opløsningsmodul
Opløsningsmodul

Der er et par ting, du kan gøre med en resolver, du kan demodulere en motor til motorkommutation, du kan få absolut position, hvis du ikke går forbi nullpunktet, og du kan hente hastighed fra en motor.

Hvor jeg har set dem brugt mest, er i luftfartsapplikationer med aileron, ror, missilfin eller kamerastyring.

De har en tendens til at være lidt dyrere end en grydes- eller hall -sensor, men de giver dig en utrolig opløsning.

Trin 2: Opsætning

Opsætning
Opsætning
Opsætning
Opsætning
Opsætning
Opsætning
Opsætning
Opsætning

1: Først skal du placere din arduino nano på et brødbræt

2: Du skal tilslutte 5V -stiften på Arduino til +3V3 -stiften og 5V -stiften på resolvermodulet (modulet kan have en forsyning på 3,3V, mens det giver en 5V -excitation på resolveren)

3: Tilslut RTN på Arduino til RTN på Resolver -modulet

4: Tilslut D9 på Arduino til PWM på Resolver -modulet

5: Tilslut A0 på Arduino til MCU_COS+ på Resolver -modulet

6: Tilslut A1 på Arduino til MCU_SIN+ på Resolver -modulet

7: Tilslut Resolver EX+ -kablet til EX+ på Resolver -modulet

8: Tilslut Resolver EX-ledningen til EX- på Resolver-modulet

9: Tilslut Resolver COS+ -tråden til COS+ på Resolver -modulet

10: Tilslut de 2 Resolver RCOM -ledninger til RCOM på Resolver -modulet

11: Tilslut Resolver SIN+ -tråden til SIN+ på Resolver -modulet

12: Tilslut 9V batteri til RTN (-) og VIN (+)

13: Eller tilslut Nscope +5V til 5V Pin på Arduino og RTN på Nscope til RTN på Arduino

14: Tilslut Scope til USB på pc

15: Tilslut Arduino til USB på pc

Trin 3: Indlæs koden

Indlæs koden
Indlæs koden
Indlæs koden
Indlæs koden

Kopi Indsæt Arduino -koden herunder på din skitse i Arduino IDE

Hvad denne kode vil gøre, er at gå til PWM Resolver Module. Dette modul vil ophidse resolveren og producere en firkantet bølge på resolverens sekundære spoler. Signalerne, der kommer ud af Sin+ og Cos+, bliver derefter ført til en OPAMP, der vil centrere bølgen og reducere output, så den går mellem 0-5Volt.

Sin+ og Cos+ er som de betyder. Synden er 90 grader ude af fase med Cos -bølgen.

Da de er 90 grader ude af fase, skal vi bruge Atan2 (Cos, Sin) -funktionen for at få den korrekte koordinat for resolverpositionen.

Derefter vil Arduino spytte ud, efter at den har fået 4 prøver, en værdi mellem -3,14 og 3,14, som repræsenterer -180 grader og +180 grader henholdsvis. Det er derfor, at hvis du vil bruge resolveren til absolut position, må du kun bruge mellem -180 og 180 uden at rotere for meget, ellers ruller du over og tror, at du er tilbage i begyndelsen eller slutningen af din aktuatorslag. Dette ville være et problem, hvis du besluttede at bruge en resolver til x- eller y -aksen på en 3D -printer og rullede over, hvilket fik 3D -printeren til at ødelægge.

Jeg kunne have gjort koden lidt bedre med afbrydelser for at have mere kontinuerlig PWMing, men dette vil være tilstrækkeligt til denne applikation. 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 output = 0,00; int sin1 = 0; int cos1 = 0; int position_stat = 1; int get_position = 0; void setup () {// sæt din opsætningskode her for at køre en gang: pinMode (pwm, OUTPUT); Serial.begin (115200); }

void loop () {

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

// sæt din hovedkode her for at køre gentagne gange:

}

Trin 4: Trin 3: God fornøjelse

Trin 3: God fornøjelse
Trin 3: God fornøjelse
Trin 3: God fornøjelse
Trin 3: God fornøjelse

Nyd at rotere resolveren og lære, hvordan resolveren fungerer, og hvilke programmer du kan bruge dette resolver -modul.

Anbefalede: