Innehållsförteckning:

Arduino Resolver -modul: 4 steg
Arduino Resolver -modul: 4 steg

Video: Arduino Resolver -modul: 4 steg

Video: Arduino Resolver -modul: 4 steg
Video: Топ 3 худших программиста на YouTube! #код #айти #программист 2024, November
Anonim
Arduino Resolver -modul
Arduino Resolver -modul

Tinee9 är tillbaka med en ny modul. Denna modul kallas en Resolver -modul.

I motorstyrningsvärlden finns det olika typer eller metoder för att detektera position. Denna metod inkluderar hallsensorer, XY -sensorer, resolver, RVDT, LVDT, fältdirektörer, potentiometer, etc. Beroende på hur var och en av dessa sensorer är konfigurerade kan du till och med bestämma din absoluta position utan att behöva spara den sista positionen i minnet.

Modulen jag använder kan användas för att demodulera en RVDT, LVDT och Resolver men för dagens ändamål kommer att demodulera en resolver.

Teknisk förståelse: Expertnivå

Handledning Plug and Play: Mellannivå

Tillbehör

1: Arduino Nano

2: Resolver -modul

3: Brödbräda

4: 9,0 Volt batteri eller NScope

5: Resolver

6: 10x Brödbräda Jumper Wires

Steg 1: Resolver -modul

Resolver -modul
Resolver -modul

Det finns ett par saker du kan göra med en resolver du kan demodulera en motor för motorpendling, du kan få absolut position om du inte går förbi nollpunkten och du kan hämta hastighet från en motor.

Där jag har sett dem användas mest är inom rymd- och rymdapplikationer av aileron, ror, missilfenor eller kamerastyrning.

De tenderar att vara lite dyrare än en gryt- eller hallsensor men de ger dig otrolig upplösning.

Steg 2: Inställning

Uppstart
Uppstart
Uppstart
Uppstart
Uppstart
Uppstart
Uppstart
Uppstart

1: Först måste du placera din arduino nano på ett brödbräda

2: Du måste ansluta 5V -stiftet på Arduino till +3V3 -stiftet och 5V -stiftet på upplösningsmodulen (modulen kan ha en leverans på 3,3V samtidigt som den ger en 5V -excitation på upplösaren)

3: Anslut RTN på Arduino till RTN på Resolver -modulen

4: Anslut D9 på Arduino till PWM på Resolver Module

5: Anslut A0 på Arduino till MCU_COS+ på upplösningsmodulen

6: Anslut A1 på Arduino till MCU_SIN+ på Resolver -modulen

7: Anslut Resolver EX+ -kabeln till EX+ på Resolver -modulen

8: Anslut Resolver EX-kabeln till EX- på Resolver-modulen

9: Anslut Resolver COS+ -tråden till COS+ på Resolver -modulen

10: Anslut de två Resolver RCOM -kablarna till RCOM på Resolver Module

11: Anslut Resolver SIN+ -tråden till SIN+ på Resolver -modulen

12: Anslut 9V batteri till RTN (-) och VIN (+)

13: Eller Anslut Nscope +5V till 5V Pin på Arduino och RTN på Nscope till RTN på Arduino

14: Anslut Scope till USB på PC

15: Anslut Arduino till USB på PC

Steg 3: Ladda koden

Ladda koden
Ladda koden
Ladda koden
Ladda koden

Kopiera Klistra in Arduino -koden nedan på din skiss i Arduino IDE

Vad den här koden ska göra är att gå till PWM Resolver Module. Den modulen kommer att väcka upplösaren och producera en fyrkantig våg på upplösarens sekundära spolar. Signalerna som kommer ut från Sin+ och Cos+ matas sedan till en OPAMP som kommer att centrera Wave och minska utgången så att den går mellan 0-5Volts.

Sin+ och Cos+ är som de betyder. Sin är 90 grader ur fas med Cos -vågen.

Eftersom de är 90 grader ur fas måste vi använda funktionen Atan2 (Cos, Sin) för att få rätt koordinat för resolverpositionen.

Sedan kommer Arduino att spotta ut, efter att den har fått 4 prover, ett värde mellan -3,14 och 3,14 som representerar -180 grader respektive +180 grader. Detta är anledningen till att om du vill använda upplösaren för absolut position måste du bara använda mellan -180 och 180 utan att rotera för mycket, annars kommer du att rulla över och tro att du är tillbaka i början eller slutet av ditt ställdon. Detta skulle vara ett problem om du bestämde dig för att använda en resolver för x- eller y -axeln på en 3D -skrivare och rullade över och fick 3D -skrivaren att röra sig.

Jag kunde ha gjort koden lite bättre med avbrott för att ha mer kontinuerlig PWMing men detta kommer att vara tillräckligt för denna 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; flottörutgång = 0,00; int sin1 = 0; int cos1 = 0; int position_state = 1; int get_position = 0; void setup () {// lägg din installationskod här, för att köra en gång: pinMode (pwm, OUTPUT); Serial.begin (115200); }

void loop () {

om (get_position = 5) {cos1 = (c1+c2)-(c3+c4); sin1 = (s1+s2)-(s3+s4); utgång = 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; }

// lägg din huvudkod här för att köra upprepade gånger:

}

Steg 4: Steg 3: Ha kul

Steg 3: Ha kul
Steg 3: Ha kul
Steg 3: Ha kul
Steg 3: Ha kul

Njut av att rotera upplösaren och lära dig hur upplösaren fungerar och vilka program du kan använda den här upplösningsmodulen.

Rekommenderad: