-         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: 2 Servos - gegenseitige beeinflussung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    31.08.2007
    Beiträge
    30

    2 Servos - gegenseitige beeinflussung

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.416
    Hallo Christian!

    [OT]Ich grins mich eins: "Neuer Benutzer .. Registriert seit 31.08.2007".[/OT]

    Zitat Zitat von autoguider Beitrag anzeigen
    .. Servos hängen an einem 7805 .. bewegt sich immer genau ein Servo .. Pulshöhe und Puklsweiten .. in Ordnung ..
    Von Servos verstehe ich nicht allzu viel. Insbesondere von der Dynamik der (von Servo zu Servo verschiedenen) Servoregelung analoger bzw. digitaler Servos verstehe ich so gut wie nix. Zu allererst kommen mir die 40 ms etwas lang vor, das könnte ich testen (mein Tester geht bis 50 ms) aber das wäre auch nur für MEINE Servos zutreffend.

    Das Problem mit Servos hinter Spannungswandlern kenne ich ähnlich, wie es von Dir beschrieben wird. Daher hatte ich heute einen kleinen Testaufbau gesteckt und den Spannungsverlauf der 7805-Versorgung eines Servos mit etwas höherem Strombedarf gemessen.

    Testaufbau:
    Servo HD 1501MG, Haltemoment lt. Datenblatt @ 4,8 V 152,1 Ncm (15,5 "kgcm").
    Versorgung des Servo über separaten 7805 (NICHT 78S05!) durch
    ein Labornetzteil, 9,8 V, Stromeinstellung 4,0 A max.
    Servotester (Eigenbau) Clone arduino-nano @20 MHz; der Servotester
    kann durch Knopfdruck sofort einen Offset von 1,6 ms auf die aktuelle
    Einstellung erzeugen.
    Oszilloskop ANALOG DISCOVERY 2, Anschlüsse : GND, Servoimpuls (Oszi-signal gelb), Servoversorgung (Oszi-signal blau).

    Testbedingungen:
    Servoperiode 20000 µs, Servopuls 826 µs und in einem zweiten Test 2426 µs , siehe verlinkte Bilder.

    Test:
    Einschränkung der Ergebnisse. Die Ergebnisse beziehen sich auf den bei mir verwendeten 7805 der im Übrigen nicht weiter analysiert wurde, sowie auf genau den einen, von mir verwendeten Servo der genannten Baureihe. Schwankungsbreiten wurden weder an Ausrüstung noch an Testobjekt erarbeitet. Die Zeitangaben des Servotesters stimmen auf wenige Mikrosekunden, unter ± 5 µs.

    Oszilloskopbild:
    Rund 9 ms nach der sprunghaften Änderung der Pulsdauer von 826 µs auf 2426 µs, um 1,6 ms,
    fällt die Spannung am Servo um mehr als 2 V ab auf 2,8 V, mit einer durch kurze Pulse
    unterbrochenen Erholung innerhalb von ca. 30 ms, also etwa 1,5 Servo-Signalperioden. Das dürfte einigermassen mit der Motorzeitkonstanten des Servomotors übereinstimmen.

    Ich bediene meine Servos gleicher Bauart, WENN ich die über einen 78xx ansteuere, nur über 78S05-Typen, die statt der (bestenfalls! - "up to") 1,5 A Nennlast laut Datenblatt 2 A Nennlast ermöglichen. Allerdings haben meine Servoplatinen standardmäßig die Möglichkeit die Stromversorgung unter Umgehung des Spannungswandlers einzuspeisen. Dann kann ich nen Akku mit ziemlich hoher Stromstoßfestigkeit verwenden.

    Fazit: beim Versorgen von Servos (in meinem Fall analog) über Spannungswandler kann deren Anpassungszeit bei sprunghaftem Strombedarf (Motor fährt auf neue Position) so lange dauern, dass - mit Sicherheit störende - markante Spannungseinbrüche feststellbar sind. Ich vermute, dass vergleichbare Einbrüche Deine Servostörungen hervorrufen. Dass ein Elko diese Frequenzen abpuffert (ca. 300 Hz bis >1kHz) ? ? ?

    Nachtrag:
    Fast hätt ich es vergessen: Wenn ich mein Labornetzteil (das bei diesem Test verwendete KORAD 3005D) auf 0,95 A Stromlieferung bei der Spannung 9,8 V einstelle, dann knattert beim Anfahren des hier benutzten Testaufbaus die Überstromsicherung. Sprich: es werden an die 1A Strom gezogen bei diesem Servo - wenn der eingeschaltet wird - ohne dass eine bemerkenswerte Positionsdifferenz gefahren werden muss.
    Geändert von oberallgeier (18.12.2020 um 14:08 Uhr) Grund: Motorzeitkonstante
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.657
    Blog-Einträge
    133
    Zitat Zitat von autoguider Beitrag anzeigen
    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.
    Hallo,
    was ist Ausgang der unbelasteten Schaltung? Der Pin, an dem der ATmega328P den Steuerimpuls für die Servos ausgibt? Wenn dort bei dann angeschlossenem Servo die Spannung auf 1V sinkt -> Ist der ATmega-Pin auf Output konfiguriert?

    Alle GND von Servos und ATmega miteinander verbunden?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.416
    .. was ist Ausgang der unbelasteten Schaltung .. Ist der ATmega-Pin auf Output konfiguriert ..
    Ohhh mannooo - stimmt. Ich hatte das stillschweigend vorausgesetzt. Das ist bei Dir (*gg* auch *gg*) ein Erfahrungswert ?
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.657
    Blog-Einträge
    133
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Das ist bei Dir (*gg* auch *gg*) ein Erfahrungswert ?
    Ist ein wenig ein Schuß ins Blaue. Ob er trifft kommt drauf an wie Christian seine Signalerzeugung programmiert hat. Bei Verwendung des HW-Ausgangs eines Timers muß er ja den zugeordneten Pin auf Output programmieren. Sonst kommt da nicht das timererzeugte Signal raus.

    Wenn er aber immer Pegelwechsel ins PORT Register schreibt, könnte es sein, daß er damit den Pullup immer aus- und einschaltet wenn der Portpin ein INPUT ist. Der Strom darüber könnte dann zu schwach sein um die Servos anzusteuern und die Spannung bricht deshalb zusammen. Das Oszi kann trotzdem bei unbelastetem Portpin ein 5V Signal zeigen.

    Einen ähnlichen Effekt hatte ich tatsächlich mal. Nicht mit Servos aber ganz banal mit LEDs, die nicht richtig "brennen" wollten. Ich kann mich nur nicht erinnern, was das Oszi bei offenem Portpin und abgeschalteten Pullup angezeigt hatte. Der Portpin floatet dann ja.

    Bin jetzt mal gespannt, wo sich der Hase tatsächlich im Pfeffer wälzt

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    31.08.2007
    Beiträge
    30
    Hallo Searcher, Hallo Oberalllgeier
    guter Hinweis.

    Hier die Konfiguration im Bascom Programm:

    Config Portc.1 = Output 'Pin 24
    Config Portc.2 = Output 'Pin 25
    Ich kann nur hoffen daß der Compiler das macht was er soll.

    GND ist für V_MCU und V_Vers identisch.

    Beide Spannungsregler 7805 werden von einem 12V Labornetzteil gespeist.
    Ich kann mir nicht vorstellen daß der Eingang des Servos so niederohmig ist und den Pegel von PortC.1 so nach unten zieht.
    Die Ausgänge sollte doch bis 20mA locker verkraften.

    Um eine Übersicht des Strombedarf zu bekommen habe ich ein digitales Multimeter in den Stromkreis des Labornetzteils eingeschleift.

    Schaltung ohne Sensor 30 mA
    nur Servo1 eingesteckt 44 mA
    nur Servo2 eingesteckt 45 - 56 mA
    Servo 1+2 eingesteckt 65 - 70 mA
    Servo1 in Bewegung, Servo2 eingesteckt 120 mA
    Servo1 in Arbeitsposition, stehend, Servo2 eingesteckt 75 - 84 mA
    Servo2 in Bewegung, Servo1 eingesteckt 120 mA

    beste Grüße
    Christian
    Geändert von autoguider (18.12.2020 um 17:58 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.416
    Hi Christian.
    .. Beide Spannungsregler 7805 werden von einem 12V Labornetzteil gespeist ..
    Kann Dein Labornetzteil die Spannung regeln? Oder ist das wirklich ne Festspannung 12 V? Welchen Strom kann das Netzteil liefern? (oder einfacher für Dich: Typangabe - wenns nicht irgendein Exot ist).

    Wenns regelbar wäre: dann könntest Du das Netzteil auf 5V einstellen, den Controller UND die Servos dran hängen, und dann den Aufbau testen.

    .. Ich kann mir nicht vorstellen daß der Eingang des Servos so niederohmig ist ..
    Vorstellen ist gut, messen ist besser. Du hast schon Oszilloskopmessungen gemacht. Wie wärs, wenn Du die EINGANGSspannung der Servos (nach dem 7805) mit dem Oskar so misst wie ich es oben beschrieben hatte. Mit vergleichbarer zeitlicher Auflösung. Trigger war bei mir die Servo-Lieferspannung, fallende Flanke (= Spannungseinbruch).
    Ciao sagt der JoeamBerg

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.657
    Blog-Einträge
    133
    Ich habe gerade erst den Link zum mcselc Forum in Deinem ersten Post gesehen. Programm schau ich mir an. Ich versuchs weiter ...

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    31.08.2007
    Beiträge
    30
    Hallo Oberallgeier,
    es ist ein PeakTech 6080

    Ich habe mit dem Oskar nachgemessen als Deine Oszillogramme sah.
    Da ich meinen 2. taskopf verliehen habe, habe ich einfach eine Litze in den Eingang von Kanal 2 gesteckt.
    Es sieht ganz vernünftig aus, Keine Einbrüche. Ich sehe dort für die Dauer des Impulses ca. 20V "Gezappel". Der Oskar hat eine bandbreite von 200MHz (Tek 2432).

    beste Grüße
    Christian

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.657
    Blog-Einträge
    133
    Solange ich mich noch tiefer ins Programm grabe: Der AVCC Pin des ATmega328P ist schon sicher mit Vcc (5V) verbunden? Der versorgt auch PC0, PC1, PC2 und PC3.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 1 von 3 123 LetzteLetzte

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 15.08.2010, 11:50
  2. Gegenseitige Störung bei Schieberegistern
    Von Ofenrohr im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 27.04.2010, 21:15
  3. Config Servos Befehl und allg. Servos
    Von Foooob im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 09.08.2007, 17:43
  4. Beeinflussung von Funkwellen
    Von Crash32 im Forum Sensoren / Sensorik
    Antworten: 3
    Letzter Beitrag: 12.01.2007, 13:50
  5. Kompass, welche Beeinflussung muss man beachten
    Von Manf im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 19.01.2005, 11:21

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •