Innholdsfortegnelse:

Arduino Resolver Module: 4 trinn
Arduino Resolver Module: 4 trinn

Video: Arduino Resolver Module: 4 trinn

Video: Arduino Resolver Module: 4 trinn
Video: Arduino IDE 2.0.4 Tutorial For beginners / compilation error solving 2024, November
Anonim
Arduino Resolver -modul
Arduino Resolver -modul

Tinee9 er tilbake med en ny modul. Denne modulen kalles en Resolver -modul.

I motorstyringens verden er det forskjellige typer eller metoder for å oppdage posisjon. Denne metoden inkluderer hallsensorer, XY -sensorer, resolver, RVDT, LVDT, feltdirektører, potensiometer, etc. Avhengig av hvordan hver av disse sensorene er konfigurert, kan du til og med bestemme din absolutte posisjon uten å måtte lagre den siste posisjonen i minnet.

Modulen jeg bruker kan brukes til å demodulere en RVDT, LVDT og Resolver, men for dagens formål vil den demodulere en resolver.

Teknisk forståelse: Ekspertnivå

Opplæring Plug and Play: Mellomnivå

Rekvisita

1: Arduino Nano

2: Løsningsmodul

3: Brødbrett

4: 9,0 Volt batteri eller NScope

5: Løser

6: 10x brødbrettstarter

Trinn 1: Resolver Module

Oppløsermodul
Oppløsermodul

Det er et par ting du kan gjøre med en resolver, du kan demodulere en motor for motorpendling, du kan få absolutt posisjon hvis du ikke går forbi nullpunktet, og du kan hente fart fra en motor.

Der jeg har sett dem brukt mest, er det i luftfartsapplikasjoner med aileron, ror, missilfin eller kamerakontroll.

De pleier å være litt dyrere enn en gryte- eller hallsensor, men de gir deg en utrolig oppløsning.

Trinn 2: Oppsett

Oppsett
Oppsett
Oppsett
Oppsett
Oppsett
Oppsett
Oppsett
Oppsett

1: Først må du plassere din arduino nano på et brødbrett

2: Du må koble 5V -pinnen på Arduino til +3V3 -pinnen og 5V -pinnen på oppløsermodulen (modulen kan ha en forsyning på 3.3V mens den gir en 5V -eksitasjon på oppløseren)

3: Koble RTN på Arduino til RTN på Resolver -modulen

4: Koble D9 på Arduino til PWM på Resolver Module

5: Koble A0 på Arduino til MCU_COS+ på resolvermodulen

6: Koble A1 på Arduino til MCU_SIN+ på Resolver -modulen

7: Koble Resolver EX+ -kabelen til EX+ på Resolver -modulen

8: Koble Resolver EX-ledningen til EX- på resolvermodulen

9: Koble Resolver COS+ ledningen til COS+ på Resolver Module

10: Koble de to Resolver RCOM -ledningene til RCOM på Resolver -modulen

11: Koble Resolver SIN+ ledningen til SIN+ på Resolver Module

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

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

14: Koble til Scope til USB på PC

15: Koble Arduino til USB på PC

Trinn 3: Last inn koden

Last inn koden
Last inn koden
Last inn koden
Last inn koden

Kopier Lim inn Arduino -koden nedenfor på din skisse i Arduino IDE

Hva denne koden skal gjøre er å gå til PWM Resolver Module. Den modulen vil begeistre resolveren og produsere en firkantet bølge på sekundærspolene til resolveren. Signalene som kommer ut av Sin+ og Cos+ blir deretter matet til en OPAMP som vil sentrere bølgen og redusere utgangen slik at den går mellom 0-5Volt.

Sin+ og Cos+ er som de betyr. Sin er 90 grader ute av fase med Cos -bølgen.

Siden de er 90 grader ute av fase, må vi bruke Atan2 (Cos, Sin) -funksjonen for å få riktig koordinat for resolverposisjonen.

Da vil Arduino spytte ut, etter at den har fått 4 prøver, en verdi mellom -3,14 og 3,14 som representerer henholdsvis -180 grader og +180 grader. Dette er grunnen til at hvis du vil bruke resolveren for absolutt posisjon, må du bare bruke mellom -180 og 180 uten å rotere for mye, ellers vil du velte og tro at du er tilbake i begynnelsen eller slutten av aktuatorslaget. Dette ville være et problem hvis du bestemte deg for å bruke en resolver for x- eller y -aksen til en 3D -skriver og rullet over slik at 3D -skriveren rotet.

Jeg kunne ha gjort koden litt bedre med avbrudd for å ha mer kontinuerlig PWMing, men dette vil være tilstrekkelig for denne applikasjonen. 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; flyteutgang = 0,00; int sin1 = 0; int cos1 = 0; int posisjon_stat = 1; int get_position = 0; void setup () {// legg oppsettskoden her for å kjø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 ("Posisjon:"); Serial.println (utgang); get_position = 1; }

// legg hovedkoden her for å kjøre gjentatte ganger:

}

Trinn 4: Trinn 3: Ha det gøy

Trinn 3: Ha det gøy
Trinn 3: Ha det gøy
Trinn 3: Ha det gøy
Trinn 3: Ha det gøy

Nyt å rotere resolveren og lære hvordan resolveren fungerer og hvilke programmer du kan bruke denne resolver -modulen.

Anbefalt: