- 3D-Druck Einstieg und Tipps         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 33

Thema: Digital Servo HS-5645MG läuft nicht mit Pulseout

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Wenn der Servomotor als Spitzenstrom ein paar Ampere zieht, dann sind 100uF gar nichts. Der Servo ist beschrieben mit minimaler Betriebsspannung von 4,8V, ein Spannungsregler mit 5V macht da schlapp. Würd' mal Elkos mit >= 4700uF probieren. Kann aber sein, dass der Regler diese Größe nicht mag, evtl. 'ne Diode zwischen Reglerausgang und Stützelko. Auch würd' ich die Spannung des 5V Reglers höher ziehen, das geht mit einem Widerstand oder einer Diode in Leitrichtung im Fußpunkt (GND) des Reglers. Bei 'ner Diode vor dem Stützelko verlierst Du um die 0,7V, da müsste Vout sowieso etwas höher sein. Leistungsdioden sind im Übrigen eine primitive Möglichkeit, die Spannung zu reduzieren unter Beibehaltung des möglichen Stroms. 7 Dioden ergeben dann eine Absenkung der Spannung um 4,9V.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    hey,
    danke MagicWSmoke, ich habe leider nur kleine Elkos bis 100µF zur Hand, 5x 1000µF hätte ich zum ausschlachten in einem PCB-Board...
    Die Spannung höher ziehen - damit kenne ich mich nicht wirklich aus...und wahrscheinlcih merke ich es zu spät wenn sich mein Spannungsregler aufraucht.

    Habe sonst noch Dioden (BY 500/400 von Reichelt). die hatte ich mal falsch bestellt...könnte ich davon 7x in Reihe schalten und die Spannung auf ca 6,2 ziehen? Oder müssten es etwas geeignetere sein?
    Auch wenn es unsauber und primitiv wäre, viellicht kann ich damit ja dann das Problem eingrenzen.

    @for_ro: ja genau mit diesem Programm. Leider kann ich nicht wirklich sagen was an PWM hinten raus kommt.
    Aber ich könnte ja den teil auch nochmal rausnehmen, der war ja nur zum schauen ob der Code soweit stimmt und die Umrechnung des Eingangssignales. Meinst Du das könnte helfen?

    Vielen Dank schonmal

    EDIT:
    Code:
    $regfile = "m8adef.dat"
    $crystal = 4000000
    
    '$sim
    '$baud = 19200
    
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
     Ddrb.0 = 1
    Portb.0 = 0
    
    Portb.0 = 1                                                 'system run
    '(
    Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7
    Waitms 100
    Config Lcd = 20 * 4
    Waitms 10
    ')
    Dim Rc_1 As Byte
    Dim F As Single
    Dim F1 As Word
    
    'Cls
    'Cursor Off
    
    Do
    
       Pulsein Rc_1 , Pinc , 1 , 1
    
    
       'Locate 1 , 1
       'Lcd "Servo1 = " ; Rc_1
    
          F = Rc_1 * 11.511
          F1 = F
    
       'Locate 2 , 1
       'Lcd "Servo1 = " ; F1
    
    
       Pulseout Portb , 7 , F1
       Waitms 4
    
    Loop
    
    End
    Auch damit gehen die analogen servos....aber der digitale bleibt "stumm"

    Ich baue jetzt die Dioden auf.
    Geändert von HeXPloreR (21.10.2012 um 09:42 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,
    welches Signal genau erwartest Du an Pinc.1 ? zB Frequenz 50Hz mit high Pulsen von 1,5ms?
    und was für ein Signal soll daraus werden? Hab leider keine Erfahrung mit Fernsteuerungen und verstehe das Skalieren nicht.

    Falls die Stromanschlüsse des Servos auf das Steckbrett gesteckt sind, runter damit und für eine stabile, für hohe Ströme geeignete Verbindung sorgen.

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

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Am PinC.1 steht das PWM Signal aus dem 2,4GHz Empfänger an. Das wurde im Display mit neutral = 139 angezeigt. Das Problem dabei ist das ich nicht weiß, welche freuquenz dort wirklich raus kommt. Aber ich vermute das es 50Hz zu 1,5ms Pulse sind. Das Skalieren dachte ich mir so das der Servo mit der "139" direkt als Puls bei 4MHz nichts anfangen kann bzw dann versucht über Mindestanschlag noch weiter runter zu fahren.

    Die Neutralstellung des (analogen) Servos liegt bei 1600 (139 * 11,511 =~ 1600).

    Ja, Verbindungen sind noch gesteckt.

    EDIT:
    Code:
    $regfile = "m8adef.dat"
    $crystal = 4000000
    
    '$sim
    '$baud = 19200
    
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
     Ddrb.0 = 1
    Portb.0 = 0
    
    Portb.0 = 1                                                 'system run
    '(
    Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.4 , Db6 = Portd.3 , Db7 = Portd.2 , E = Portd.6 , Rs = Portd.7
    Waitms 100
    Config Lcd = 20 * 4
    Waitms 10
    ')
    Dim Rc_1 As Byte
    Dim F As Single
    Dim F1 As Word
    
    'Cls
    'Cursor Off
    
    Do
    '(
       Pulsein Rc_1 , Pinc , 1 , 1
    
    
       'Locate 1 , 1
       'Lcd "Servo1 = " ; Rc_1
    
          F = Rc_1 * 11.511
          F1 = F
    
       'Locate 2 , 1
       'Lcd "Servo1 = " ; F1
    ')
    
       Pulseout Portb , 7 , 1600
       Waitms 4
    
    Loop
    
    End
    Leider bringt das auscoden von Pulsein auch nichts... der bewegt sich einfach nicht auf neutral "1600"
    Geändert von HeXPloreR (21.10.2012 um 10:05 Uhr)

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hi, für Pulseout muß laut Bascom Hilfe der Pin vorher als Output konfiguriert werde. Das kann ich für Portb.7 nicht erkennen?

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

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Searcher Beitrag anzeigen
    Das kann ich für Portb.7 nicht erkennen?
    Sehr gut

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Das HS-5645MG haben als Kern einen ATmega8 und der kann auf Spannungseinbrüche zickig reagieren.
    Auch bist Du jetzt bei 177Hz, wähl' mal die Widerholrate mit 50Hz.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    @Searcher:
    Hmm, als Output konfiguriert hatte ich bis jetzt nicht weil, da dachte ich der Pulseout Befehl ändert den Pin selbständig...da die analogen Servos doch mit dem Programm so laufen.

    @MagicWSmoke:
    Wie errechnest Du die Wiederholrate?
    Ich probiere jetzt nochmal ein wait von 500µs.

    EDIT: keine Änderung des Problems bei DDRB.7 = 1

    Aber ich habe die Dioden auch noch nicht fertig...
    Geändert von HeXPloreR (21.10.2012 um 10:41 Uhr)

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Wie errechnest Du die Wiederholrate?
    Die Wiederholrate ist bei Deinem vereinfachten Code: 1/(Pulseoutzeit + Wartezeit)
    Tatsächlich hab' ich's zur Prüfung simuliert, Haltepunkt auf Pulseout, verbrauchte Prozessortakte geteilt durch Hauptclock ergibt Wiederholrate.
    Damit Du auf die üblichen ~50Hz kommst, solltest Du Waitms 18 verwenden.

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Hmm, als Output konfiguriert hatte ich bis jetzt nicht weil, da dachte ich der Pulseout Befehl ändert den Pin selbständig...da die analogen Servos doch mit dem Programm so laufen.
    Ja, hatte ich auch dran gedacht. Eine Erklärung wg. der analogen Servos könnte sein, daß der Pulsout trotzdem das PORTB Register toggelt, obwohl das über DDRB ein Input ist. Dann würde eine 1 in PORTB den internen Pullup einschalten und den Pin so nach high ziehen, daß das ausreicht.

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

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Digital Servo von Conrad, VSD 1 Problem
    Von Movie85 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 01.05.2009, 13:20
  2. [läuft+Code] Servotest an ATtiny13 läuft nicht
    Von oberallgeier im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 18.10.2007, 16:49
  3. HITEC Digital-Servo Protokoll HFP-10
    Von ManfredKoehler im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 30.05.2007, 12:07
  4. Antworten: 3
    Letzter Beitrag: 15.08.2005, 16:41
  5. Programmierung digital Servo
    Von sevenofnine im Forum Motoren
    Antworten: 4
    Letzter Beitrag: 24.02.2005, 16:49

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests