- Akku Tests und Balkonkraftwerk Speicher         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 21

Thema: Servo hat das große Zittern

  1. #11
    Benutzer Stammmitglied
    Registriert seit
    22.04.2008
    Ort
    Frankfurt
    Alter
    42
    Beiträge
    68
    Anzeige

    Praxistest und DIY Projekte
    Hi Leute!

    Ich benutze auch die ServoLib und mit der funktioniert einfach alles einwandfrei.
    Hab aber vorher auch ewig rumgetüftelt und mir die Haare ausgerissen, weil mein Servo einfach nichts gemacht hab. Bis dann einfach nen neuen gekauft hab und siehe da, der lief wunderbar auf Anhieb.

  2. #12
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2009
    Beiträge
    15

    Servo scheint doch irgendwie defekt zu sein ...

    Hallo Leute,

    ganz großes Dankeschön für Eure Mühen (insbesondere an Dirk, der extra seinen Code nochmals mit Oszi getestet hat).

    Habe inzwischen den Servo an mein myAVR MK1 Board angeschlossen.
    Das Ergebnis: auch dort gibt's das große Zittern.

    Ich glaub' ich kaufe mir einen neuen Servo bevor ich noch mehr Zeit investiere. Irgendwie doof.

    Trotzdem ein dickes Dankeschön für Eure Mühen.

    Igeligel


    PS: hier der PWM-Code des myAVR MK1 Boards für die Nachwelt. (beachte: ATmega32 führt OC1A an PortD5 heraus während ATmega8 OC1A an PortB1 herausführt)

    Code:
    /*
    
    Description:	ATmega8 uses Timer1 in PWM-Mode to control servo
    				Code runs on myAVR MK1 Development Board (SP2) NOT on RP6
    				
    Usage:			By default you get a 1ms/20ms PWM-signal on Port PB1
    				Use pushbutton "Taster1" to enlarge the 1ms-signalshoulder
    				Use pushbutton "Taster2" to shrink the 1ms-signalshoulder
    
    Wires:			PD6 -> Taster2
    				PD7 -> Taster1
    				
    				Lo  -> Servo (black)
    				Hi	-> Servo (red)
    				PB1 -> Servo (orange)
    				PC0 -> LED (green)
    				PC1 -> LED (yellow)
    
    Date:			01.02.2009
    Author:			Igel
    Reference:		http://www.mikrocontroller.net/topic/103629
    
    */
    
    
    // Takt
    #define F_CPU 3686400UL
    
    
    #include <avr/io.h>
    #include <util/delay.h>
    
    
    void initServo(void) {
    	// init timer 1:
    	//ICR1   = 7200;            // PWM cycle time in usec
    	ICR1   = 9216;              // PWM cycle time in usec
    	TCCR1A = (1<<COM1A1) | (1<<COM1B1) | (1<<WGM11); // OC1A/B clr on match, set on TOP
    	//TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS12) | (1<<CS10);    // TOP = ICR1, clk = sysclk/8 (->1us)
    	TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS11) | (1<<CS11);    // TOP = ICR1, clk = sysclk/8 (->1us)
    	TCNT1  = 0;                                      // reset Timer
    
    	OCR1A  = 461;   	 // set Servo 1 to 1ms-position
    
    }
    
    
    int main(void) {
    
        DDRD  &= ~((1 << PD6) | (1 << PD7)); 	/* PIN PD6 + PD7 auf Eingang (Taster)            */
        PORTD |=  (1 << PD6) | (1 << PD7);		/* Pullup-Widerstand aktivieren            */
    
    	DDRC |= (1 << PC0) | (1 << PC1);  		/* PIN PC0 + PC1 als Ausgang (LED) */
    	
    	DDRB = (1 << PB1) | (1 << PB2);  		// OC1A and OC1B for PWM
    	initServo();
    	
    	while(1) {
    		if(PIND & ( 1 << PD6 )) {
    			PORTC &= ~(1 << PC0); }
    		else {
    			PORTC |= (1 << PC0);
    			OCR1A -= 10;
    			_delay_ms(200);
    		}
    		if(PIND & ( 1 << PD7 )) {
    			PORTC &= ~(1 << PC1); }
    		else {
    			PORTC |= (1 << PC1);
    			OCR1A += 10;
    			_delay_ms(200);
    		}
    	}
    	return(0);
    }

  3. #13
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.136
    Wenn Du noch einen größeren Elko zur Verfügung hast (4700µF oder je nach Vorrat), schließe ihn doch mal zum Test an die Versorgugsspannung des Servos an, wenn es hilft weiß man dann etwas mehr wenn nicht dann eben nicht.

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2009
    Beiträge
    15
    Hi Manf,

    Danke für die verzweifelten Versuche, mir zu helfen - ich weiß Eure Hilfsbereitschaft sehr zu schätzen.

    Ich hatte den empfohlenen großen Elko nicht parat. Ein 220uF brachte keiner Veränderung.

    Bitte müht Euch jedoch nicht weiter ab. Meine Diagnose lautet "Schrott" und ich werde mir einen Ersatzservo besorgen. Weitere Mühen - von mir oder von Euch - stehen nicht mehr im Verhältnis zu den 5,- EUR, die solch ein Tierchen kostet.

    Ihr hört von mir an dieser Stelle, wenn der neue Servo eingetroffen und getestet ist.

    Viele Grüße

    Igeligel

  5. #15
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.136
    Du hast völlig recht, zur Lösung Deiner Aufgabe ist ein Servo der leicht im Betrieb genommen werden kann sicher das beste.

    Ein Bisschen geht es mir noch darum, ob man ein Heilmittel für irgendwelche Macken von Billigservos finden kann.

    Wenn besipielsweise ein solcher Servo immer, oder eben in diesem Fall wieder einmal, mit einem großen Elko zu beruhigen ist, dann wüßte man weigstens für welchen Preis man so eine Billigversion doch in Betrieb nehmen kann, oder was sich der Hersteller dabei gedacht hat, der ja auch nicht riskieren will beliebig viele zurükzunehmen.

    Wirf ihn mal erst nicht weg.

  6. #16
    Neuer Benutzer Öfters hier
    Registriert seit
    29.01.2009
    Beiträge
    15

    Die Lösung: neuen Servo angeschlossen - nun funktioniert's.

    Hallo Leute,

    nur um diesen Thread auch sauber zu Ende zu bringen, möchte ich Euch noch berichten, wie die Geschichte ausging:

    Das Ende der Story ist dabei eher profan: Ich bin in den nächstbesten Spielzeugladen marschiert, habe mir für 8,99 EUR den billigsten dort verfügbaren Servo gekauft und ihn an mein myAVR-Entwicklungsboard angeschlossen.

    Ergebnis: der neue Servo funktionierte direkt vom Start weg. Das "große Zittern" lag also eindeutig an einem Defekt im alten Servo - da half auch kein Elko oder sonstiges gutes Zureden.

    Vielen Dank an dieser Stelle nochmals für Eure Unterstützung und Eure Mühen

    Igeligel

  7. #17
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo,

    nur zur Ergänzung für zukünftige Leser.

    Schon öfter habe ich die Billigservos zur Mitarbeit überreden können, in dem ich ihnen einen 10nF Kondensator parallel zu Eingang spendiert habe.

    In den Schaltungen, wo das notwendig war, war das ein ganz zuverlässig beobachtbarer und mit anderen Servos des selben Typs wiederholbarer Effekt.

    grüsse,
    Hannes

  8. #18
    Benutzer Stammmitglied
    Registriert seit
    26.10.2008
    Ort
    Wien
    Alter
    44
    Beiträge
    38
    @Hannes oder alle die das sonst noch wissen...

    Hab anscheinend ebenfalls Billig-Servos. Der eine zittert ziemlich stark und der andere zittert immerhin noch ein wenig... auch ohne Last und in Mittelstellung (1,5ms - Flanke). Sind übrigens die Dinger von Conrad -> RS-2...

    Bevor ich mir aber andere kaufe würd ich gern diese mithilfe des 10nF Kondensators mal zur Vernuft bringen... rein aus Interesse...

    Wo soll ich den 10nF parallel schalten? Eingang und wo noch? Plus oder Minus?

    Danke...

  9. #19
    Erfahrener Benutzer Robotik Einstein Avatar von vohopri
    Registriert seit
    11.09.2004
    Ort
    südlich der Alpen
    Beiträge
    1.708
    Hallo air,

    mit "parallel zum Eingang" ist natürlich gemeint: zwischen Signalleitung und Masseleitung.

    Vorher solltest du aber getrennte Stromversorgung versuchen Die häufigste Fehlerquelle ist unsaubere Spannungsversorgung: Innenwiderstand passt nicht, irgendwo fehlt einer der Kondensatoren der Spikes schlucken soll, Ungünstige Leitungsführung, schlechter Kontakt usw.

    grüsse,
    Hannes

  10. #20
    Benutzer Stammmitglied
    Registriert seit
    26.10.2008
    Ort
    Wien
    Alter
    44
    Beiträge
    38
    Danke einmal für deine Antwort...

    Die Spannungsquelle sollte ja eigentlich sauber sein, da sie ja am Spannungsregler des RP6 hängt... Werde ich aber trotzdem mal mit externer U-Quelle testen.

    Zu dem Kondensator noch ne Frage: Was passiert da eigentlich elektrisch gesehen? Ohne Kondensator sollte ich ja am Signaleingang ein "schönes" Rechtecksignal anliegen. Wenn aber der Kondensator dazu kommt, dann würde doch das Rechtecksignal geglättet werden, oder? Warum also hilft ein 10nF am Signaleingang des Servos?

    Werd mir mal ein Oszi zulegen um meine Fragen selber beantworten zu können

    MfG Air

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress