- Labornetzteil AliExpress         
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 Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    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)

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    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

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    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)

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    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

  5. #5
    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

  6. #6
    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.

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    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)

  8. #8
    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.

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    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

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Leider keine Änderung mit den Dioden. Davon habe ich nun 18(!!)St in Reihe gelötet. Damit habe ich von 11.5V auf ca 6,6V reduziert
    Aber auch das kann es nicht sein.

    PortB.7 ist ein Output und PortB.7 = 0 - schreibe ich dort eine 1 für High ein (PullUp schaltet der ja nicht mehr bei Output), fährt der Servo immer nur auf (über) minium gegen den Anschlag Vermutlich weil der Servo dann quasi 100% PWM "denkt"

    Ich probiere zwischendurch immer mal wieder den digitalen Servo am Empfänger ganz normal mit Fernbedienung aus, um gegen zu prüfen ob ich der schon "abgeraucht" ist.
    Nicht das ich das provozieren wollte, aber nur damit ich hier nicht alles durchteste und dann ist der Servo nachher schon seit drei stunden schitich.

    Also wie gesagt das Programm funktioniert so, sogar mit sehr viel kürzerem wait - für analoge Servos. Benutze Bascom 2.0.7.5 nicht das es daran liegt.

    Ich danke euch erstmal für die Hilfe.
    Ich weiß nicht weiter.

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
  •  

fchao-Sinus-Wechselrichter AliExpress