- Labornetzteil AliExpress         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 33

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

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Anzeige

    Praxistest und DIY Projekte
    Zitat Zitat von Searcher Beitrag anzeigen
    Das kann ich für Portb.7 nicht erkennen?
    Sehr gut

  2. #12
    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)

  3. #13
    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.

  4. #14
    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

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

  6. #16
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich weiß nicht weiter.
    Zeig doch bitte noch mal das aktuelle Programm.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #17
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Davon habe ich nun 18(!!)St in Reihe gelötet.
    18 ist nix

    Schau Dir mal das Datenblatt der BY 500 an, da siehst Du eine VF (Forward Voltage) bei geringer Belastung von ~0,6V, bei 18 Stück sind das 10,8V, da bleibt nichts mehr über von Deinen 11,1V.
    Die Forward Voltage = Vorwärtsspannung ist diejenige, die man hier zur Reduzierung der Betriebsspannung verwenden möchte.

    Ich bin mir nicht ganz sicher, wie Du auf die Idee kommst, 18 Stück davon zu verbauen, aber ich schätze Du hast ein hochohmiges Voltmeter dran gehangen und eine hohe Restspannung auf Grund des relativ hohen Sperrstromes gemessen, den diese Leistungsdioden nun mal haben.

    Dieser Sperrstrom ist angegeben mit < 10µA, für ein Messgerät problemlos messbar, aber sobald eine Last drankommt, bricht diese gemessene Spannung ein.
    Sobald also der Servomotor drehen möchte, sackt die Spannung definitiv auf einen unbrauchbaren Wert ein.

    Nimm also 7 oder 8 Dioden, schalte die von VCC in Leitrichtung und setz' von der Kathode der letzten Diode einen Widerstand von 1kOhm nach GND rein.
    Miss dann die Spannung nochmal.

  8. #18
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hier nochmal das Programm:
    Code:
    $regfile = "m8adef.dat"
    $crystal = 4000000
    
    '$sim
    '$baud = 19200
    
    $hwstack = 40
    $swstack = 16
    $framesize = 32
    
     Ddrb.0 = 1
    'Portb.0 = 0  'system run
    
    Portb.0 = 1
    
    ' Ddrb.7 = 1
    'Portb.7 = 0
    
    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
          '4MHz = * 11.511 ; 8MHz = * 23.022
          F1 = F
    
       Locate 2 , 1
       Lcd "Servo1 = " ; F1
    
    
       Pulseout Portb , 7 , F1                                  '1600
       Waitms 10
    
    Loop
    
    End
    habe schon versucht den Wert den Pulsein ermittelt, direkt an Pulseout zu geben....der Gedanke lag nahe das der Servo das ggf besser verstehen kann wegen seinem internen "mega8", aber auch da keine Reaktion.

    @MagicWSmoke: Wenn Du weißt das dort ein mega8 drin ist, dann weißt Du möglicherweise auch mit welcher Frequenz der läuft? Ob also die Pulse genau so ermittelt werden wie ich es mit meinem mega8 mache?

    Was habe ich mir nur bei den 18 Dioden gedacht...wahrscheinlich habe ich wirklich falsch gemessen

    EDIT: Mit 7 Dioden ohne 1k = 9,38V ; mit 1k = 9,30V Die Kathode war doch da wo der dicke graue strich dran ist?
    Mit 9 Dioden ohne 1k = 8,78V,; mit 1k = 8,70V
    Geändert von HeXPloreR (21.10.2012 um 15:57 Uhr)

  9. #19
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Wenn Du weißt das dort ein mega8 drin ist, dann weißt Du möglicherweise auch mit welcher Frequenz der läuft?
    Out-o-the-box würde er mit 1MHz laufen. Wenn Du da nichts per Fuse geändert hast, dann macht er das noch immer.

    Ein:
    Code:
    Pulseout Portb , 7 , 1600
    dauert 6459 Takte, das entspricht bei tatsächlichen 4MHz: 6459/4000000 = ~1,6ms

    Sollte der Prozessor-Takt dagegen bei 1MHz liegen, dann dauert das 4x so lang, das wäre weit außerhalb der zulässigen Servoparameter.
    Was habe ich mir nur bei den 18 Dioden gedacht...wahrscheinlich habe ich wirklich falsch gemessen
    Wie ich schon sagte, wahrscheinlich hast Du den Sperr-, also Leckstrom gemessen.

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    Mit 7 Dioden ohne 1k = 9,38V ; mit 1k = 9,30V
    Die 7 Dioden in Reihe, VCC -->|->|->|->|->|->|->|--R--GND ?
    Die Kathode war doch da wo der dicke graue strich dran ist?
    Richtig.

Seite 2 von 4 ErsteErste 1234 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
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad