-         

Ergebnis 1 bis 9 von 9

Thema: 8 servos mit bascom ansteuern

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540

    8 servos mit bascom ansteuern

    Anzeige

    ich versuche gerade, meinem 4-beiner das laufen beizubringen. aller dings scheitere ich schon an der ansteuerung der servos. ich habe sie folgendermaßen initialisiert:

    Code:
    Config Servos = 8 , Servo1 = Portc.7 , Servo2 = Portc.6 , Servo3 = Portc.5 , Servo4 = Portc.4 , Servo5 = Portc.3 , Servo6 = Portc.2 , Servo7 = Portc.1 , Servo8 = Portc.0 , Reload = 20
    dann gebe ich den befehl, nur ein servo zu bewegen:

    Code:
    Do
    Servo(6) = 150
    Wait 1
    Servo(6) = 50
    Wait 1
    Loop
    wenn ich das programm auf dem atmega 16 starte, bewegen sich aber alle Servos in vollen ausschlag und zwar nicht flüssig, sonsern ruckweise und hören auch nicht auf, wenn sie die maximale stellung erreicht haben.

    könnte das an den timern liegen?

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    05.02.2008
    Beiträge
    38
    Funktioniert der Code, wenn du nur einen Servo in der Config einträgst und ansteuerst?

    wenn ja, könnte es an Bascom liegen und 8 Servos sind zu viel

    wenn nein vllt. den reload umstellen

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377

    Re: 8 servos mit bascom ansteuern

    Zitat Zitat von Roboman93
    wenn ich das programm auf dem atmega 16 starte, bewegen sich aber alle Servos in vollen ausschlag
    Hallo roboman!

    Probiere mal folgendes:
    - Stelle einen Wert für jeden Servo ein.
    - Nimm einen Quarz und stelle den AVR so ein, dass dieser verwendet wird.

    mfg
    Gerold
    :-)

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    jetzt ha ich noch ein komisches problem. wenn ich alle Servos auf mittelstellung fahre, gibts mir bei diesem code:
    Code:
    Servo(1) = 100
    Servo(2) = 100
    Servo(3) = 100
    Servo(4) = 100
    Servo(5) = 100
    Servo(6) = 100
    Servo(7) = 100
    Servo(8) = 100
    diese fehlermeldung:
    Code:
    line 16: index out of range[2]
    line 16: Array index out of range[2]
    das ergibt für mich keinen sinn, da sich die fehlermeldung auf das servo(2) und nicht auf das servo(1) bezieht, obwohl die alle gleich sind.

    ich hoffe, da weiß jemand besser bescheid als ich.

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    sorry, hatte nach dem test vergessen, bei config Servos = die 1 durch ne 8 zu ersetzen.

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    so, habs probiert, klappt aber immer noch nicht. alle Servos bewegen sich ruckartig in vollausschlag. kann man nicht immer 4 Servos auf einen timer setzen? kann man 2 mal config Servos = 4 schreiben?

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377
    Zitat Zitat von Roboman93
    klappt aber immer noch nicht
    Hallo roboman!

    Dann fehlt noch der Test mit einem höheren Systemtakt. Und vergiss nicht, die Zeile ``$crystal=...`` anzupassen. Sonst weiß Bascom nicht, mit welcher Frequenz du den µC betreibst und versaut das Timing für die Ansteuerung der Servos.

    mfg
    Gerold
    :-)

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    ok, kanns leider erst in 1,5 wochen testen, weil ich jez wegfahre, aber danke für den tipp.

    mfg roboman
    ...and always remember...
    ...AVR RULES...

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    06.08.2006
    Ort
    Delitzsch
    Alter
    76
    Beiträge
    54
    Hallo,

    das mit den 4 Beiner fuzt gut. Lass dir helfen, aber gib mir mehr Input.

    1. Crystal(Frequenz)
    2.Reload= ist ein Wert in dem der µc bei Servo Befehle sendet.
    3.ist Port als Ausgang definiert???
    denke-50 der eine Anschloag 150 der andere. ( ist aber nicht immer genau.
    auch wenn erst in 1,5 Wochen


    Gruß

Berechtigungen

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