PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo dreht immer gleiche Richtung (PWM)



semicolon
04.06.2006, 18:40
Hallo Leute

Irgendetwas stimmt nicht, endweder an meinem Code oder sonst wo.

oid init_Motor(void)
{

//10-Bit nicht invertierter PWM
TCCR1A = (1<<COM1A1) | (1<<WGM11) | (1<<WGM10);

//Prescaler (64)
TCCR1B = (1<<CS11) | (1<<CS10);

//Vorladen
TCNT1 = 868;


//Interupt dektivieren
TIMSK &= ~0x3c;

//Ausgänge für PWM
PORTD &= ~(1<<PD5);

//Pulsbrite für PWM (1.5ms)
OCR1A = 892;

//einschalten
PORTD |= (1<<PD5);

}

So wäre eigentlich die Nullstellung des Servos. Aber hier dreht er bereits schnell in eine Richtung. Wenn ich den OCR1A Wert auf 970 mache dreht er langsamer und bei ca. 1000 steht er stil. Komisch!!!!

Auf die andere Seite habe ich es noch nicht geschaft. Irgendwie stimmen meine einstellungen nicht oder sontwas. Kann mir jemand helfen? Bin so ziemlich am Ende!!!!

Ah noch was. Wen der Servo läuft, fängt die VCC am Atmega32 auch zu pulsieren. Weiss nicht warum????

Hanni
04.06.2006, 18:42
Hmm, nochn Tread dazu ?!

semicolon
05.06.2006, 19:03
Ok ich habe es drausen mit dem PWM mode usw. Aber eine Frage ist leider immer noch offen und zwar:

Meine Perioden dauer beträgt 20ms und so wie ich das mit den Servos verstanden habe, bedeutet ein Impuls von 1.5ms Neutralstellung, 2.5ms z.B nach rechts und 1ms nach links in diesem Fall.

Nun, bei mir dreht der Servo immer in die gleiche Richtung nur unterschiedlich schnell. Also wie kann ich nun die Drehrichtung ändern???