2 Servos - gegenseitige beeinflussung
Ich habe eine ähnliche Thematik wie in diesemThread beschrieben. https://www.roboternetz.de/community...ighlight=servo
Im Einsatz sind 2 dieser Servos. http://www.kumantech.com/kuman-17kg-...2-1_p0398.html
Der Stellwinkel von 270° ist für meine Applikation erforderlich.
Die Impulsweiten betragen 500µs - 2500µs. Diese passen und werden von einem ATMEGA328P erzeugt. Systemtakt 6,144 MHz.
Beide Servos hängen an einem 7805 (V_Vers) und haben eine gemeinsame Zuführung der versorgungsspannung über ein Flachbandkabel von ca. 1m Länge. 0,12mm² oder 0,09mm² pro Ader.
Es bewegt sich immer genau ein Servo. Keine gleichzeitige Bewegung.
Pulshöhe und Puklsweiten habe ich mit einem Oszi nachgemessen und fand diese in Ordnung.
Der Atmel und damit auch der Steuerimpuls werden von einem eigenen 7805 versorgt. (= V_MCU)
Um eine langsame Bewegung zu realisieren bekommt das Servo alle 40ms einen um 10,4 µs veränderten Steuerimpuls.
In der Anfangs und Endposition ändert sich die Impulsweite nicht.
Servo2 bewegt sich immer so wie es soll.
Servo1 ruckelt wenn die Impulslänge bei ca.2,24 ms ist. Meist hat das Servo dann noch 2 weitere "Schluckaufs" bis es in der Arbeitsposition( 270° / 2500µs) angekommen ist.
Auf dem Weg zurück passiert das Ruckeln wie auf dem Hinweg beobachtet.
Ist nur Servo 1 angeschlossen, dann arbeitet es ruckelfrei.
Austausch des Servos mit einem Baugleichen hat dieselben Resultate.
1. Merkwürdigkeit:
Am Ausgang der unbelasteten Schaltung (=Servo nicht angeschlossen)messe ich einen Pegel von 5V (V_MCU)
Sobald das Servo angeschlossen wird, hat der Steuerimpuls einen Pegel von ca. 1V.
2. Merkwürdigkeit:
Deshalb habe ich dann, um den Pegel auf 5V zu bekommen, die Leitungen der Steuerimpulse über jeweils 1k Widerstände an +5V gehangen. Keine Veränderung.
Dann habe ich nahe an den Servos noch einen 220µF Elko installiert um evtl. Spannungseinbrüche zu dämpfen.
Ebenfalls keine Veränderung in der Bewegung.
3. Merkwürdigkeit:
In der Initialisierungsroutine setze ich die Pulslänge für beide Servos auf 500µs.
Sofern beide Servos auch in der Ruhepositin sind ist alles gut.
Wurde aber abgeschaltet wenn z.B. Servo1 in Arbeitsposition war (=2500µs) dann vibriert das Servo.
Mit einen Kommando dass Servo1 in Arbeitsposition gehen soll erhöhe ich dann die Pulsweite sukzessive.
Wenn die Pulsweite zur physikalischen Position passt, dann macht die Servoachse einen kleinen Sprung rückwärts und dann wieder auf die Arbeitsposition zurück.
Ist das typisch?
Ich bitte um Eure Hilfe weil mir langsam die Erklärungen ausgehen.
beste Grüße
Christian
Wer am Bascom Code für die ISRs interessiert ist den verweise ich mit folgenden Link: https://www.mcselec.com/index2.php?o...&p=79765#79765 oder um Nachricht in diesem Forum
Liste der Anhänge anzeigen (Anzahl: 1)
Hier kommt der Plan.
Nichts besonderes. Von JP_Ausgang deht es über ein Flachbandkabel an eine Dsub Buchse (9 Polig) dann über ein Flachbandkabel wieder an einen Dsub Steckverbinder in eine Verteilplatine.
Von dort aus geht es an die Servos.
Der FET schaltet eine Beleuchtung (100 mA) an. Diese ist derzeit abgeklemmt und spielt bei den Problemen keine Rolle.
Anhang 35365
beste Grüße
Christian
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Christian,
ich konnte es nicht lassen und habe versucht auch ein Programm zu machen. Wenn Du dich traust, kannst Du das Angehängte probieren. Ich hoffe ich habe die Funktionen richtig getroffen. Ist mit LEDs getestet, die etwa 6 mA aus den Ausgängen gesogen haben. Wird mit einem Taster an PD7 bedient. Laut Oszi keine Probleme.
Gruß
Searcher
EDIT Bug im Programm entdeckt und berichtigt: POP 19 statt POP 29
Liste der Anhänge anzeigen (Anzahl: 7)
Vielen Dank für Eure Antworten und Hilfen.
Auf Anraten des Herstellers habe ich die Versorgungsspannung der Servos mittels 7806 auf 6V erhöht. Es ruckelt nicht mehr. Dennoch bleiben Ungereimtheiten.
Der Logikpegel bricht nach wie vor auf 1V ein. Ich habe testweise ein HYX-S0009 Servo an meine Schaltung gehangen. Der Logikpegel blieb bei 5V. Also scheint es an den Servos zu liegen.
Zu Beginn und zum Ende eines Steuerimpulses gibt es Spitzen in Spannung und Strom.
Die Spannungsspitzen konnte ich durch Einbau eines 200 nF Folienkondensators in Nähe des Servos abfangen. Die Spitzen im Strom dagegen nicht. Mit dem Logikpegel von 1V bin ich nicht glücklich. Der hersteller gab bisher keine Antworten dazu.
Meine Oszillogramme möchte ich gerne mit Euch teilen.
In den Oszillogrammen bezeichnet S1 Servo 1 und S2 Servo 2. Die Messungen erfolgten immer an Servo1.
U-Control_1 .jpgAnhang 35392 zeigt den Steuerimpuls vor Einbau des Folienkondensators. Servo2 erzeugt Spannungsspitzen im Steuersignal von Servo1.
Danach habe ich jedes Servo jeweils mit eigenen Zuleitungen für Masse und Versorgungspannung (6V) versehen und einen 200 nF Folienkond. zwischen Impulseingang von Servo1 und Masse gelegt.
Siehe U_Control_HiRes.jpg.
Anhang 35393Die Impulsform ist noch nicht glatt.
In U_Control_HiResWide.jpg sieht man daß der Einfluß von Servo2 deutlich verringert ist.
Anhang 35394
Danach habe ich beide Servos von der Schaltung getrennt d.h. Betrieb im Leerlauf.
Messung an der Impulsausgang für Servo1.
In UControl_NoServo.jpg sieht man weiterhin Spannungsspitzen zu Beginn und Ende des Impulses.
Anhang 35395
Auch hier sind Auswirkungen von Servo2 erkennbar.
Die Größe und Art des Überschwingens sieht man auf U_Control_NoServoStart.jpg
Anhang 35396
Nun zur Strommessung:
Zunächst habe ich die Messungen an einem 1 Ohm Längswiderstand durchgeführt. Auf Anraten eine Freundes, der im Bbereich Hardwareentwicklung tätig war, habe ich mir ich aus 2 parallelgeschalteten 1 Ohm Widerständen einen 0,5 Ohm Widerstand gebaut und in die Impulsleitung von Servo1 eingebracht.
Um die Varianz der Schwankungen zu erfassen betrieb ich den Oszi zuerst im Envelope Modus. Danach ergibt sich bei Servo1 eine Spannungsspitze von 620 mV was einem Strom von 1,2 A entspricht.
Anhang 35397
Siehe I_Control_05Ohm_2.jpg. Auch Servo2 macht sich bemerkbar.
In I_ControlHiRes.jpg ist der Stromverlauf des Steuerimpulses von Servo1 höher aufgelöst dargestellt.
Anhang 35398
Danach wollte ich wissen wie die Verhältnisse im Leerlauf sind.
Zunächst entfernte ich das Bandkabel und konnte einen Einschwingvorgang mit max. Amplitude von ca. 200 mV -> 400 mA messen bei ca. 3,6 MHz. Diese war nach 3 µs abgeklungen.
Nach Einstecken des Bandkabels vergrößerte sich der Überschwinger auf 1500 mV bei 4MHz Frequenz. Diese war nach 5µs abgeklungen.
Dann steckte ich das andere Ende an meine Verteilplatine ( mit 200 nF Kond.) der Überschwinger betrug dann 400 mV -> 800mA @160 kHz. Eingeschwungener zustand nach ca. 40 µs erreicht.
Das klingt plausibel da die Kapazität und die Induktivität des Schwingkreises erhöht wurde.
Ich hatte eigentlich nicht damit gerechnet in Bereiche der HF-Technik zu kommen.
Der Aufbau auf Lochrasterplatine ist sicherlich auch nicht HF konform.
Habt ihr evtl. Empfehlungen zu Servos mit 270° Stellbereich und doppeltem Lager?
beste Grüße
Christian
Liste der Anhänge anzeigen (Anzahl: 7)
Weitere Untersuchung zur Versorgungsspannung (6V).
An dem KUMAN Servo treten seltsame Spannungseinbrüche, auch im Stillstand des Servos auf.
Da ich auf AC gekoppelt habe, ist die 0 Linie des Oszillogramms auf 6V DC.
Immerhin sind es 500 mV Einbruch. Auch im Stillstand
Anhang 35399
Hier in höherer Auflösung:
Anhang 35400
Zum Vergleich habe ich dann das HYX-S0009 angeschlossen und Messungen durchgeführt.
Im Stillstand gibt es auch Spannungseinbrüche zu Beginn und Ende des Steuerimpulses.
Anhang 35401 und in hoher Auflösung Anhang 35403
und hier im Envelopemodus und über 50ms
Anhang 35402
Das Oszillogram während der Bewegung des HYX-.. war etwas überraschend.
Anhang 35405
Es sieht nach einer abklingenden e-Funktion aus. Nach ca. 50 ms ist 0 Niveau erreicht. Die Spannungseinbrüche sind etwa 500-600 mV. Aber nur in der Bewegung.
Eine eigene 6V Versorgung mittels Akku möchte ich für die Servos nicht installieren.
Ich kann noch einen 470µF Kond. am Servo platzieren. 220µF haben nichts gebracht.
Für mich bleibt weiterhin fraglich ob andere Servos die Lösung sind oder ob/was ich noch an der Stromversorgung nacharbeiten muß.
beste Grüße
Christian
- - - Aktualisiert - - -
Hallo Moppi,
den Strom habe ich bereits gemessen. Ich habe auch schon 1k PullUp Widerstände eingebaut gehabt. Pegel blieb bei 1 V.
Seltsam ist daß beim HYX-S009 der Logikpegel bei 5V bleibt.
Deshalb vermute ich daß etwas mit dem Servo faul ist.
Ich kann mir nicht vorstellen daß ein Logikeingang so niederohmig sein kann.
Seltsamerweise benehmen sich die Servos gleich.
Deshalb die Nachfrage nach Ersatzmöglichkeiten.
Ich überlege mir noch einen Transistor einzubauen welcher genug Strom bringen kann.
beste Grüße
Chriatian
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Moppi,
ich habe den 470 Ohm Widerstand in die Signalleitung eingebaut.
Prozessorseitig messe ich die 5V. Damit wird der Ausgang des Prozessors nicht mehr mit soviel Strom belastet.
Servoseitig messe ich 800 mV Pegel und die abklingende e-Funktion eines RC-Gliedes.
Statt 500µs habe ich jetzt eine Inpulsbreite an der Basis von 560 µs.
das ist sicher kompensierbar.
Hier das Oszillogramm.
Anhang 35406
Das Servo scheint mit dem Pegel zurechzukommen.
beste Grüße
Christian
Liste der Anhänge anzeigen (Anzahl: 7)
Hallo Moppi, Searcher und Oberallgeier,
vieolen Dank für Eure Hilfe. Die Schaltung funktioniert so wie ich mir das wünsche.
Keine Ruckeln, vernünftige Signalpegel.
Anscheinend ist im Steuereingang des Servos kein, oder ein viel zu kleiner Basiswiderstand eingebaut.
Selbst mit 80 k als Längswiderstand funktionierte das Servo einwandfrei.
Da ich dann Abklingdauern im Steuerimpuls im Bereich von 3ms hatte entschied ich mich für 10k als Längswiderstand. Aber es drehte trotzdem. Genauigkeit?
Ich habe mich danach für 10k als Wert für den Längswiderstand entschieden.
Die 10 nF Kapazitäten, welche ich zum Abfangen der Spannungsspitzen eingebaut hatte, habe ich wieder entfernt weil die Spitzen keinen merklichen Einfluß auf die Funktion des Sevos hatten.
Zudem verbreiterte die Kapazität die Impulsbreite um 40µs. Das sind bei mir 4 Stufen in der Drehung. Da nicht notwendig verzichtete ich auf die Kap.
U Control an der CPU: saubere 5V, geringe Strombelastung des µP. Keine Überschwinger!
Anhang 35413
Ab hier nur Darstellungen von U_Control am Servo gemessen:
Auf dem Weg zum gewählten Widerstandswert. 40k sorgen für Impulsverbreiterung
Anhang 35415 -> Anhang 35414
Die Spannung liegt bei 0,7-0,8 V und entspricht dem eines pn-Übergangs. Leichtes Zappeln.
Im Envelope-modus werden die Einstreuungen des anderen Servo sichtbar. Diese Spitzen haben augenscheinlich keine Wirlung:
Anhang 35416
Bei der Betrachtung über mehrere Zyklen sieht es so aus als ob unterschiedliche Zeitkonstanten am Werke sind:
Anhang 35418
Meßergebnisse für gewählte Konstellation d.h. 10k Längswiderstände , keine 10 nF Kondensatoren:
Anhang 35417
Paßt die Impulsweite des Steuerimpulses nicht zur der tatsächlichen Stellung des Servo, dann vibriert das Servo.
Das Vibrieren hält an bis die zur Position passende Impulsbreite erreicht ist.
Bis dahin ergibt sich in der Steuerspannung folgender Verlauf:
Anhang 35419
Beste Grüße
Christian