- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 5 von 5

Thema: Infos zum Servo ES-05 von Modelcraft (Conrad)

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161

    Infos zum Servo ES-05 von Modelcraft (Conrad)

    Anzeige

    Praxistest und DIY Projekte
    Ich habe mir mal einen Servo vom Typ ES-05 angeschaut, und wollte hier meine Erkenntnisse heraus plaudern, für den Fall, daß jemand anderes Infos über diesen Servo braucht:

    Abmessungen (ohne Hebel und Befestigungslaschen) ca: 23x23x13mm
    Stromversorgung 4-6 Volt
    Ansteuerung: PWM Signal

    Ich habe den Servo direkt an einen AVR Angeschlossen, der mit 5V versorgt wurde. Dabei habe ich folgende Werte für das PWM Signal ermittelt:

    Linker Anschlag: 0,4 ms
    Mitte: 1,3 ms
    Rechter Anschlag: 2,4 ms

    Zwischen den High-Pulsen liegen Low-Pausen im Bereich 15-200ms. Bei deutlich mehr als 20ms bewegt sich der Servo langsamer und ruckelnd.

    Der Stecker passt auf eine dreipolige einreihige Stiftleiste.

    1 braun Gnd
    2 rot VCC
    3 orange PWM Signal

    Dieser spottbillige Servo ist übrigens hochwertig verarbeitet. Das Getriebe ist ordentlich eingefettet, die Elektronik sauber gelötet und alle Anschlußdrähte sind mit Kleber fixiert. Das interne Poti ist gekapselt, was lange Haltbarkeit verspricht.

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.687
    Schön! Diesen Typ hatte ich vor zwei Jahren gehackt, danach Stromverbrauch und Wärmeentwicklung gemessen. Grund: ich hatte Berichte über schlechte Haltbarkeit gelesen und auch bei mir hielten die Dinge als Servos nicht lange. Die gehackten Dinger laufen bei mir als Getriebemotoren mit Drehzahlerfassung durch die Gabellichtschranke - und laufen und laufen . . . Weil die sich so gut bewährten, hatte ich dann auch noch das Getriebe für höhere Drehzahl umgebaut. Damit erreiche ich nach ursprünglich 1/sec als Abtriebsdrehzahl mittlerweile max. ca. 8,5 /sec bei 5V. Und wenn man am Servogehäuse rumschnitzt, dann kann man sogar auf eine Spurweite von 43 mm kommen.
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,

    ich benutze den Servo zum Lenken in einer Knicklenkung. Vielleicht kennst Du den thread. https://www.roboternetz.de/phpBB2/vi...=500614#500614

    Durch Veränderung des Impulsabstandes von 18ms auf 9ms und dem daraus resultierenden veränderten Fahrverhalten des Vierrads habe ich den Schluß gezogen, daß der Servo bei kurzen high-Impulsen eine schlechtere Stellgeschwindigkeit/Ansprechgeschwindigkeit hat als bei den langen.

    Es gibt also unterschiedlich lange Stellzeiten je nach Stellrichtung. Leider kann ich das nicht direkt zu messen um die Beobachtung zu bestätigen.

    Die Anschlußbelegung bzw Farben treffen auf den "ES-05 JR" zu. Den Servo gibt es wohl auch noch als "ES-05 FUT" mit anderen Anschlußdrahtfarben.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161
    Meiner dreht sich auch in die beiden Richtungen unterschiedlich schnell. Ich halte das für normal, so verhält sich jeder Motor (mehr oder weniger).

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    19.03.2010
    Beiträge
    161
    Ich habe heute ein C Programm erarbeitet, mit dem man bis zu 12 Servos unter Verwendung eines 8-Bit Timers ansteuern kann.

    Code:
    // Example source code, that may be used to control up to 6 servo
    // motors using a single 8 bit timer.
    
    // On each timer overflow, the next channel is handled, which allows us
    // to multiplex between 6 channels. The timer compare register A is used
    // to control the puls width. You could add code to use the timer compare
    // register B which would allow handling of up to 12 channels.
    
    // With a 20Mhz clock, the duty cycle is 19,8ms
    // and the pulse width is pwm_value*00.128ms.
    
    // With a 16Mhz clock, the duty cycle is 25ms
    // and the pulse width is pwm_value*00.16ms.
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    
    // Values for up to six PWM channels.
    // On each channel, the special value 0 can be used to switch the signal off.
    volatile uint8_t pwm_value[6];
    
    
    // The timer compare interrupt ends the current PWM pulse
    ISR(TIMER2_COMPA_vect) {
        PORTC &= ~(1+2+4+8+16+32); // set all 6 PWM outputs to low
        PORTB |= 4; // status LED off
    }
    
    
    // The timer overflow interrupt starts a PWM pulse,
    // on each interrupt, another channels is handled.
    ISR(TIMER2_OVF_vect) {
        static uint8_t channel=0;
        uint8_t value=pwm_value[channel];
        if (value>0) {
            switch (channel) {
                // If you need less than 6 channels, then comment out the unused lines below
                case 0: PORTC |= 1; break;
                case 1: PORTC |= 2; break;
                case 2: PORTC |= 4; break;
                case 3: PORTC |= 8; break;
                case 4: PORTC |= 16; break;
                case 5: PORTC |= 32; break;
            }
            OCR2A=value;
            PORTB &= ~4; // status LED on
        }
        if (++channel==6) { // Do not change the 6, even when you need less than 6 channels!
            channel=0;
        }
    }
    
    
    int main() {
        // Initialize I/O Pins
        DDRB |= 4; // status LED
        DDRC |= 1+2+4+8+16+32; // six PWM outputs
    
        // Initialize timer 2, normal mode, prescaler 256, interrupt on overflow and compare match A.
        TCCR2A = 0;
        TCCR2B = (1<<CS22) | (1<<CS21); 
        TIMSK2 = (1<<TOIE2) | (1<<OCIE2A);
        sei();
    
        // Move servo on channel 5 to three different positions repeatedly.
        // The following values are designed for the servo ES-05 and 20Mhz CPU clock.
        while (1) {
            pwm_value[5]=38;
            _delay_ms(2000);
            pwm_value[5]=108;
            _delay_ms(2000);
            pwm_value[5]=188;
            _delay_ms(2000);
        }
    
        return 0;
    }

Berechtigungen

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

Solar Speicher und Akkus Tests