-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: 10Servo zu viel für den Mega 8?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547

    10Servo zu viel für den Mega 8?

    Anzeige

    Hi
    hab da ein Problem. Wenn ich an meinen Bulldog den 9 und 10.Servo an den Mega 8 anschließe, dann stimmen die Positionen für die anderen Servos nicht mehr.
    Der Reload ist schon auf 2ms damit die Servos nicht zittern.
    Hat da jemand ne Idee, oder mach ich was falsch?

    Vielen Dank
    sulu

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.10.2004
    Ort
    Baoding
    Alter
    38
    Beiträge
    687
    Was hast Du für ne Programmiersprache? Taktfrequenz? Programm?
    Signatur??? kann ich mir nicht leisten!!!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    31
    Beiträge
    388
    klingt nach software PWM, eine wirklich tückische Sache.

    Wie sieht den dein programm aus?

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    19.07.2005
    Ort
    3. Planet
    Alter
    26
    Beiträge
    547
    Hi

    die Kiste läuft ja auf 16mhz.

    Hier mal der Code(nicht elegant, aber funktioniert(mit 8servos ):

    Code:
     $regfile = "m8def.dat"
    
    Config Servos = 10 , Servo1 = Portc.0 , Servo2 = Portb.1 , Servo3 = Portb.2 , Servo4 = Portb.3 , Servo5 = Portb.4 , Servo6 = Portb.5 , Servo7 = Portc.3 , Servo8 = Portc.1 , Servo9 = Portd.7 , Servo10 = Portd.6 , Reload = 2
    
    Config Pinc.0 = Output
    Config Pinb.1 = Output
    Config Pinb.2 = Output
    Config Pinb.3 = Output
    Config Pinb.4 = Output
    Config Pinb.5 = Output
    Config Pinc.3 = Output
    Config Pinc.1 = Output
    Config Pind.7 = Output
    Config Pind.6 = Output
      Enable Interrupts
             Dim A As Byte
             Dim B As Byte
             Dim C As Byte
    A = 1
    B = 1
    C = 1
    Servo(1) = 100                                             
    Servo(2) = 100                                             
    Servo(3) = 100                                          
    Servo(4) = 100                                            
    Servo(5) = 100                                          
    Servo(6) = 100                                              
    Servo(7) = 100                                              
    Servo(8) = 100
    Servo(9) = 100
    Servo(10) = 100
      Waitms 500
    Gerade:
    If A = 10 Then A = 1
    
    
    Servo(1) = 100                                            
    Servo(2) = 115            
    ......................
    Mfg sulu

  5. #5
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Wenn man das Servosignal selber erzeugt, dann kann man die Servos nacheinander Abarbeiten (bis etwa 10). Dazu braucht man nur jeweils eine Verzögerung zur Zeit. Hardwaremäßig geht das ggf. auch 2 mal parallel mit timer 1. Es ist also höchstens eine Frage der Software, wie das umgesetzt ist.

    Es könnte sein, das duch den 9./10 ,ten servo gerade die Grenze erreicht wird, das die Summe der einzelpulse (1-2 ms) die 20 ms Grenze für die ganze Periode erreicht.

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    so mal eine frage werden in einer situation alle Servos genutzt?sonst dürfte man ja welch(recht un elegant) zwischendurch deaktivieren

  7. #7
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    24
    Beiträge
    601
    ist halt dann die Frage, ob das mit der Bascom-Routine so einfach ist...

    Viele Grüße

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    28
    Beiträge
    607
    Ich weiß nicht, wie das mit Bascom ist, aber mit C sollten 10 Servos kein allzugroßes Problem darstellen. Kommt natürlich auf die programmierung an.
    Man muss die Servos nicht mal nacheinander abarbeiten, mit 16MHz geht das auch parallel. Eine Auflösung von 180 einstellungen (180°) ist so, mit geschickter Programmierungen locker erreichbar.

    Gruß, Yaro

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Guck mal im Wiki unter Servoansteuerung. Da wird genau beschrieben wie man mehrere Servos ansteuern kann. Ohne die sehr eigenartige Servo Routine von BASCOM.
    Viele Grüße, William
    -> http://william.thielicke.org/

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    02.05.2004
    Alter
    31
    Beiträge
    388
    Ich habe mit C maximal 12 Servos zum laufen gekriegt.
    Dann ist der Controller ab so ausgelastet, das er sonst nichts mehr machen kann.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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