Daniel Hallmann schrieb:
> Guten Abend liebe Leute :P
>
> Ich war heute bei Conrad und habe mir solch einen Servo gekauft: 230500
> - 62
> Leider fällt das Datenblatt recht dürftig aus.
> Ich habe ihn vorsichtshalber nicht direkt an meinen ATmega8535
> angeschlossen, sondern über einen Motortreiber.
> Standartmäßig wird wohl von den meisten Servos ein 50Hz Signal erwartet,
> wobei die dauer in der Das signal auf 5V liegt die gewünschte Position
> bestimmt(http://www.flugleiter.de/rc/servo). Leider ist es meinem Servo
> wohl vollkommen egal wie lange diese 5V anliegen, er dreht immer ganz
> nach links und verweilt dort.
> Hier einmal das Testprogramm, dürfte eigentlich nicht falsch sein^^, die
> Verkabelung habe ich auch 100 mal überprüft.
>
1 | > #include <avr/io.h>
|
2 | > #define F_CPU 4000000UL
|
3 | > #include <util/delay.h>
|
4 | >
|
5 | > int main( void )
|
6 | > {
|
7 | > DDRA = 0xFF;
|
8 | > while(1)
|
9 | > {
|
10 | > PORTA = 0x00;
|
11 | > _delay_ms(VCC);//VCC+GND immer 20ms
|
12 | > PORTA = 0xFF;
|
13 | > _delay_ms(GND);
|
14 | > }
|
15 | > return 0;
|
16 | > }
|
17 | >
|
>
> Hat jeman eine Idee wo der Fehler liegen könnte?
Vielleicht am falschen Timing?
Ein Servo wird folgendermaßen angesteuert:
Ein Hign-Impuls von 1 ms Dauer bedeutet Linksanschlag, ein High-Impuls
von 2 ms Dauer bedeutet Rechtsanschlag. Dazwischen ist es linear, das
heisst ein Impuls von 1,5 ms bedeutet Mittelstellung.
Zwischen den Impulsen sollten so ca. 20 ms liegen. Ob die damit
entstehende Periodendauer jetzt genau 50 Hz ergibt spielt keine Rolle.
Probier einfach mal mit 1ms Impulsdauer und 20ms Pause und dann mit 2ms
Impulsdauer und 20 ms Pause. Dann sollte das Servo an die Endanschläge
laufen.
Wenn das mal funktioniert, kannst Du dich immer noch dabei verkünsteln,
bei jeder Impulsdauer eine gesamte Periodendauer von 20 ms einzuhalten.
Wenn das nicht funktioniert, dann prüfe das Signal am Ausgang des
Motortreibers. Wenn Du kein Oszi hast, dann klemme den Motortreiber ab
und einen Widerstand von ca. 1k zwischen AVR und Servo - das schützt
schon genug.
Gruß,
Bernd