-         

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

Thema: servo ansteuern

  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    24
    Beiträge
    601

    servo ansteuern

    Anzeige

    hallo,

    ich verwende die RN-Control mit atmega 32 mit bootloader.

    jetzt möchte ich einen servo anschließen. dazu müsste ich eigentlich nur die stromversorgung anschließen und eben das "PWM kabel" an einen freien pin an port A? muss ich da noch einen widerstand dazwischenschalten oder eher nicht? (bzgl. strombegrenzung)


    lg
    ikarus_177

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Willa
    Registriert seit
    26.10.2006
    Ort
    Bremen
    Alter
    37
    Beiträge
    1.269
    Hi!
    Nein, du kannst das einfach so direkt anschließen.
    Viele Grüße,
    William

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.02.2005
    Ort
    Südtirol
    Beiträge
    283
    Soweit ich weis brauchst du nur + und masse an das Servo anzuschliessen und den (meistens gelben Draht) an den Pin wo du die PWM ausgiebst, ohne Widerstand http://www.roboternetz.de/wissen/index.php/Servo

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Was das "ohne Widerstand" angeht ... also ich würde je nach Servo doch so 500-1000 Ohm dazwischenhängen am Signalpin. Habe schon einige Servos erlebt, die dort erstaunlich niederohmig waren. Geht 100 Mal ohne Widerstand gut ...
    Mein Hexapod im Detail auf www.vreal.de

  5. #5
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    24
    Beiträge
    601
    hallo,

    erst mal danke für die antworten...
    habe mich dazu "durchgerungen" doch einen widerstand dazwischenzuschalten, da ich nicht gleich meine neuen Servos schrotten möchte.

    also danke sehr


    lg
    ikarus_177

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    19.07.2007
    Alter
    53
    Beiträge
    1.080
    Nicht so sehr die Servos sind durch den fehlenden Widerstand unter Umständen gefährdet, sondern der µC, da einige Servos dort Strom ziehen, wenn deren Versorgungsspannung abgeklemmt ist. So jedenfalls meine negativen Erfahrungen.

    Gruß MeckPommER
    Mein Hexapod im Detail auf www.vreal.de

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    mal ne frage zu den PWM. lann mir mal einer nen link schicken, der über ein software-pwm an nem atmega geht???
    ...and always remember...
    ...AVR RULES...

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    ich fass es mal kurz zusammen, nen link hab ich grad nicht, du nimmst en timer, stellst ihn dir so ein das er nützlich wird (10tel ms takt ein überlauf z.B.) aktivierst den timer-overflow interrupt, und schreibst in deiner interrupt routine mit hilfe einer zählvariable und einer sollwert variable in das portregister und schaltest je nach wunsch den pin zur richtigen zeit an und aus

    EDIT: Beispiel
    10tel ms takt

    Code:
    ISR {
    count_vaiable inkrementieren;
    wenn (pin high && count_variable == sollvar+10) pin low; count_variable = 0;
    //wenn pin high dann 1-2mS high halten und dann wieder low schalten taktlänge ist 1.5ms +- 0.5ms
    wenn (pin low && count_variable > rund(20ms*10)) pin high; Count_variable = 0;
    //wenn pin auf low geht ne pause von 20-50ms einlegen damit der servo sich einstellen kann sonst ruckelt er

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.01.2008
    Alter
    24
    Beiträge
    540
    ok, aber was ich net verstehe, wie kriege ich den takt,nach dem die count_variable erhöht wird?
    ...and always remember...
    ...AVR RULES...

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.07.2007
    Beiträge
    349
    Die primitivste Möglichkeit ein PWM Signal zu erzeigen ist über die bereits vorliegenden Sleep Funktionen.

    Also so in der Art, in diesem Fall kann man die PWM Zahl zwischen 0 und 10 einstellen(je höher die Auflösung desto besser), mit pwm_zahl=5 hat man ein Tastverhältnis von 50:50.

    Pseudocode:
    Code:
    #define PWM_ZAHL_MAX 10
    pwm_zahl=5;
    while(bedingung)
    {
    Ausgang_auf_5V;
    for(n=0;n<pwm_zahl;n++)   Sleep(zeit);
    
    Ausgang_auf_0V;
    for(n=0;n<(PWM_ZAHL_MAX-pwm_zahl);n++)   Sleep(zeit);
    }
    Es gibt natürlich viel elegantere Wege das zu lösen.
    Grüße,
    Harri

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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