Inhaltsverzeichnis:

Arduino Resolver-Modul - Gunook
Arduino Resolver-Modul - Gunook

Video: Arduino Resolver-Modul - Gunook

Video: Arduino Resolver-Modul - Gunook
Video: Read Resolvers with Arduino, no additional hardware. 2024, Juli
Anonim
Arduino-Resolver-Modul
Arduino-Resolver-Modul

Tinee9 ist zurück mit einem neuen Modul. Dieses Modul wird als Resolver-Modul bezeichnet.

In der Welt der Motorsteuerung gibt es verschiedene Arten oder Verfahren zur Positionserkennung. Zu diesen Methoden gehören Hallsensoren, XY-Sensoren, Resolver, RVDT, LVDT, Feldleiter, Potentiometer usw. Je nachdem, wie jeder dieser Sensoren eingerichtet ist, können Sie sogar Ihre absolute Position bestimmen, ohne die letzte Position im Speicher speichern zu müssen.

Das von mir verwendete Modul kann verwendet werden, um einen RVDT, LVDT und Resolver zu demodulieren, aber für den heutigen Zweck wird ein Resolver demoduliert.

Technisches Verständnis: Expertenebene

Plug-and-Play-Tutorial: Mittelstufe

Lieferungen

1: Arduino Nano

2: Resolvermodul

3: Brotbrett

4: 9,0-Volt-Batterie oder NScope

5: Resolver

6: 10x Brotplatinen-Überbrückungsdrähte

Schritt 1: Resolvermodul

Resolver-Modul
Resolver-Modul

Es gibt ein paar Dinge, die Sie mit einem Resolver tun können, Sie können einen Motor für die Motorkommutierung demodulieren, Sie können eine absolute Position erhalten, wenn Sie den Nullpunkt nicht überschreiten, und Sie können die Geschwindigkeit von einem Motor abrufen.

Wo ich sie am häufigsten gesehen habe, sind sie in Luft- und Raumfahrtanwendungen von Querruder, Seitenruder, Raketenflosse oder Kamerasteuerung verwendet worden.

Sie sind in der Regel etwas teurer als ein Pot- oder Hall-Sensor, bieten aber eine unglaubliche Auflösung.

Schritt 2: Einrichtung

Aufstellen
Aufstellen
Aufstellen
Aufstellen
Aufstellen
Aufstellen
Aufstellen
Aufstellen

1: Zuerst müssen Sie Ihr Arduino Nano auf ein Brotbrett legen

2: Sie müssen den 5V-Pin des Arduino mit dem +3V3-Pin und dem 5V-Pin des Resolvermoduls verbinden (Das Modul kann eine Versorgung von 3,3V haben, während der Resolver mit 5V erregt wird)

3: Verbinden Sie RTN auf dem Arduino mit dem RTN auf dem Resolver-Modul

4: Verbinden Sie den D9 auf dem Arduino mit dem PWM auf dem Resolver-Modul

5: Verbinden Sie A0 auf dem Arduino mit MCU_COS+ auf dem Resolver-Modul

6: Verbinden Sie A1 auf dem Arduino mit MCU_SIN+ auf dem Resolver-Modul

7: Verbinden Sie das Resolver EX+ Kabel mit EX+ am Resolver Modul

8: Verbinden Sie das Resolver EX- Kabel mit EX- am Resolver Modul

9: Verbinden Sie das Resolver-COS+-Kabel mit COS+ am Resolver-Modul

10: Verbinden Sie die 2 Resolver-RCOM-Drähte mit RCOM am Resolver-Modul

11: Verbinden Sie das Resolver-SIN+-Kabel mit SIN+ am Resolver-Modul

12: 9-V-Batterie an RTN (-) und VIN (+) anschließen

13: Oder Nscope +5V bis 5V Pin auf Arduino und RTN auf Nscope auf RTN auf Arduino anschließen

14: Anschließen des Oszilloskops an USB am PC

15: Arduino an USB am PC anschließen

Schritt 3: Laden Sie den Code

Laden Sie den Code
Laden Sie den Code
Laden Sie den Code
Laden Sie den Code

Kopieren Sie den folgenden Arduino-Code in Ihre Skizze in der Arduino IDE

Was dieser Code tun wird, ist das PWM des Resolver-Moduls. Dieses Modul regt den Resolver an und erzeugt eine Rechteckwelle an den Sekundärspulen des Resolvers. Die Signale, die aus Sin+ und Cos+ kommen, werden dann einem OPAMP zugeführt, der die Welle zentriert und den Ausgang so reduziert, dass er zwischen 0-5 Volt geht.

Sin+ und Cos+ sind wie sie meinen. Die Sin ist um 90 Grad phasenverschoben zur Cos-Welle.

Da sie um 90 Grad phasenverschoben sind, müssen wir die Funktion Atan2 (Cos, Sin) verwenden, um die korrekte Koordinate der Resolverposition zu erhalten.

Dann spuckt das Arduino, nachdem es 4 Samples erhalten hat, einen Wert zwischen -3,14 und 3,14 aus, was -180 Grad bzw. +180 Grad entspricht. Wenn Sie den Resolver für die absolute Position verwenden möchten, dürfen Sie daher nur zwischen -180 und 180 ohne Überdrehen verwenden, da Sie sonst überschlagen und denken, dass Sie wieder am Anfang oder am Ende Ihres Aktuatorhubs sind. Dies wäre ein Problem, wenn Sie sich für die Verwendung eines Resolvers für die x- oder y-Achse eines 3D-Druckers entscheiden und überrollen, wodurch der 3D-Drucker durcheinander gebracht wird.

Ich hätte den Code mit Interrupts etwas besser machen können, um mehr kontinuierliches PWMing zu haben, aber dies wird für diese Anwendung ausreichen.int A = A0;

int B = A1; int pwm = 9; int c1 = 0; intc2 = 0; intc3 = 0; intc4 = 0; int c5 = 0; intc6 = 0; int s1 = 0; int s2 = 0; int s3 = 0; int s4 = 0; int s5 = 0; int s6 = 0; Schwimmerausgang = 0,00; int sin1 = 0; int cos1 = 0; int position_state = 1; int get_position = 0; Void setup () {// setzen Sie Ihren Setup-Code hier ein, um ihn einmal auszuführen: pinMode (pwm, OUTPUT); Serial.begin(115200); }

Leere Schleife () {

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

// Geben Sie Ihren Hauptcode hier ein, um ihn wiederholt auszuführen:

}

Schritt 4: Schritt 3: Viel Spaß

Schritt 3: Viel Spaß
Schritt 3: Viel Spaß
Schritt 3: Viel Spaß
Schritt 3: Viel Spaß

Viel Spaß beim Drehen des Resolvers und lernen, wie der Resolver funktioniert und welche Anwendungen Sie dieses Resolvermodul verwenden können.

Empfohlen: