360°-Servo mit Hallsensoren

Beschreibung

Es begann eigentlich alles mit diesem thread

Sensoren

Das System teilt sich auf in zwei Teile:

Der Sensor im Sender:

Basiert auf dem Sensor AS5043. Der Sensor bietet direkt einen Analogausgang an, die restliche Beschaltung beschränkt sich daher prinzipiell auf die Abblockkondensatoren und ein Widerstand am Ausgang. Da im Auslieferungszustand der Sensoren der Verstärungsfaktor der integrierten OpAmps nicht festgelegt ist, müssen noch zwei weitere Widerstände auf die Platine, um einen Ausgangspegel von 0-5V zu erhalten.

Ausgangsbeschaltung:

Die Servoelektronik

Da auf der Modellseite eh ein Mikrocontroller nötig ist, wird hier der Winkel digital aus dem Sensor ausgelesen. Verwenden werden können die meisten Sensoren von AustriaMicrosystems, im konkreten Fall wurde der Sensor AS5145 verwendet. Er bietet 12Bit Auflösung, die Software verwendet allerdings nur 8 Bit. Damit kommt das System auf eine Winkelauflösung von ca. 1,4°. Möglich wären bis zu 10Bit, das ist die Auflösung des im Senders verwendeten Sensors. Die Berechnungen der Soll-/Ist-Positionen sowie der Differenz und der Richtung lassen sich in 8 Bit einfacher berechnen, da man so die Überläufe nutzen kann, bei größeren Zahlen (10-, bzw. 12Bit) muß man auf 16 Bit erweitern oder die Überläufe selbst erzeugen.

Als Mikrocontroller wird ein ATMega88 vom Atmel verwendet. Als Leistungsstufe für den Servomotor dient die integrierte H-Brücke Si9987 von Vishay Damit lassen sich übliche Standart-Servos betreiben, der maximale Dauerstrom beträgt 1A Für größere Motoren wäre NCV7729 von OnSemiconductor eine Lösung, damit wären bis zu 8A möglich. Dafür wäre ein angepasstes Layout nötig.

Kalibrierung

Am Sender ist keine Kalibrierung nötig/möglich, dieser Punkt betrifft also nur die Elektronik im Modell.

kalibriert werden müssen folgende 4 Werte:

Die Werte werdem im EEProm des Controllers gespeichert, die Kalibrierung muß also nur vorgenommen werden, falls sich an diesen Werten etwas geändert hat (andere Fernsteuerung, neue 0°-Position, usw.) oder falls die Elektronk das erste Mal in Betrieb genommen wird

Ablauf:

Wenn keine Werte im EEProm vorhanden sind, bleibt das Programm am Beginn stehen und wartet, bis der Benutzer den Kalibrier-Jumper abgenommen hat, dabei blinken abwechseln die beiden Leuchtdioden mit 1Hz.

Durch Abnehmen des Jumpers startet die Kalibrierung:
die grüne LED blinkt kurz mit ca. 25Hz, während dessen wird die aktuelle Impulslänge aufgezeichnet und als 0°-Impulslänge gespeichert. Sobald die grüne LED erloschen ist werden die Minimal-/Maximalwerte aufgezeichnet, am Sender sollte dazu das Steuerrad mehrmals im Kreis gedreht werden.
Wenn das erldedigt ist, kann der Jumper wieder aufgesteckt werden, die Kalibrierung der Senderwerte ist damit abgeschlossen.

Diese Prodzedur kann jederzeit wiederholt werden, indem vor Einschalten der Empfängerstromversorgung der Jumper abgenommen wird. Dabei sollte darauf geachtet werden, daß das Steuerrad auf 0° steht, sowie der Sender angeschaltet ist.

Die 0°-Position des Servos wird folgend eingestellt: Im laufenden Betrieb, also bei eingeschaltetem Sender und Empfänger, wird der Jumper abgezogen. Jetzt kann die gewünschte Position des Servos über den Sender eingestellt werden. Durch Aufstecken des Jumpers wird die Position gespeichert.

Schaltplan

Der Schaltplan V1.0

[ANHÄNGEN]

Layout

erstes Layout, einlagig

[ANHÄNGEN]

Teileliste

Bauteile

Servoelektronik

Name Wert Package
C1 330µF C-10.5
C2 100nF 0805
C3 100nF 0805
C4 100nF 0805
C5 22pF 0805
C6 22pF 0805
C7 100nF 0805
C10 1µF 1206
C11 10µF 1206
IC1 MEGA88-PU DIL28
IC2 MCP1702-3.3V TO92
IC3 SI9987 SO8
LED1 ROT LED5MM
LED2 GRUEN LED5MM
Q1 8MHz QUARZ_OCS-5
R1 200 0805
R2 200 0805
R3 1k 0805
R4 1k 0805
R5 1k 0805
R6 100k 0805
R7 100k 0805
T1 IRLML6401 SOT23
TR1 10k LIEGENER_TRIMMER
TR2 10k LIEGENER_TRIMMER
X1 AVR-ISP-6P-W 2X3_WANNE
X2 Servo_Motor SCHRAUBKLEMME-5MM
X3 PPM-In CON-1X3_PINH
X4 Sensor CON_2X5_WANNE
X5 VCC_Motor SCHRAUBKLEMME-5MM
X6 Jumper CON-1X2_PINH
X7 UART-Debug CON-1X4_PINH

Mechanische Teile

Reichelt Warenkorb

Warenkorb Servo V1.0 -> H-Brücke fehlt, gibts bei Reichelt nicht :(

Downloads