mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik dürftige informationen über servo


Autor: Daniel K. (camarril)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.
#include <avr/io.h>
#define F_CPU 4000000UL
#include <util/delay.h>
 
int main( void )
{
    DDRA = 0xFF;
  while(1)
  {
    PORTA = 0x00;
    _delay_ms(VCC);//VCC+GND immer 20ms
    PORTA = 0xFF;
    _delay_ms(GND);
  }
    return 0;
}

Hat jeman eine Idee wo der Fehler liegen könnte?

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Servos sind alle gleich anzusteuern.
Auf http://www.rn-wissen.de/index.php/Servo ist das ganz anschaulich 
beschrieben.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AVCC angeschlossen?
Ich sehe keine Definition für VCC oder GND.
Optimierung des Compilers eingeschaltet?

Fragen über Fragen.

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hier einmal das Testprogramm, dürfte eigentlich nicht falsch sein^^
eingentlich!

das signal sieht bei dir folgendermasen aus:
20ms 0volt
20ms 5volt

es sollte aber so aussehen:
die signalleitung ist 0 volt und jede 20 ms kommt ein 5 volt impuls der 
für 1-2ms auf 5 volt bleibt und dach wieder auf 0 volt zurück geht.

Autor: MarioT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Daniel Hallmann schrieb:
> wobei die dauer in der Das signal auf 5V liegt die gewünschte Position
> bestimmt(http://www.flugleiter.de/rc/servo).

Das stimmt ja gar nicht. Suche in Google mal ne neue Seite.

Autor: Bernd O. (bitshifter)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.
>
> #include <avr/io.h>
> #define F_CPU 4000000UL
> #include <util/delay.h>
> 
> int main( void )
> {
>     DDRA = 0xFF;
>   while(1)
>   {
>     PORTA = 0x00;
>     _delay_ms(VCC);//VCC+GND immer 20ms
>     PORTA = 0xFF;
>     _delay_ms(GND);
>   }
>     return 0;
> }
> 
>
> 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

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>kannst Du dich immer noch dabei verkünsteln,
>bei jeder Impulsdauer eine gesamte Periodendauer von 20 ms einzuhalten.
ob die periode nun 30ms oder 10 ms hat ist nebensächlich.
im focus steht die 1-2 ms fein aufzulösen.

Autor: Daniel K. (camarril)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> Ich sehe keine Definition für VCC oder GND.

Sry, ich habe mich da blöd ausgedrückt^^
Also VCC und GND habe ich im AVR studio natürlich durch Zahlen ersetzt 
und

max power schrieb:
> das signal sieht bei dir folgendermasen aus:
> 20ms 0volt
> 20ms 5volt

das meinte ich auch eher so: VCC + GND = 20, also ich hab z.B. VCC 1 und 
GND 19 gewählt.

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
holger schrieb:
> AVCC angeschlossen?

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>VCC + GND = 20, also ich hab z.B. VCC 1 und GND 19 gewählt.
so sollte das funktionieren.

Autor: Daniel K. (camarril)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade herausgefunden, wo das Problem lag... ich hatte mich auf 
eine Internetseite verlassen, die scheinbar nur Schwachsinn schreibt.
Laut dieser war Rot=VCC, ORANGE = GND und Braun für den Impuls Aufreg

Luk4s K. schrieb:
> Die Servos sind alle gleich anzusteuern.
> Auf http://www.rn-wissen.de/index.php/Servo ist das ganz anschaulich
> beschrieben.

Wenn ich ihn so anschließe, dann klappts. Natürlich dreht der immer nach 
links, wenn der Impuls dauerhaft Low ist... und ich hatte mich auch 
gewundert, dass er viel langsamer war als angegeben^^, wurde ja auch 
über PWM gesteuert...

Naja, ich danke trotzdem allen, die sich Zeit für nen Trottel wie mich 
genommen haben:)

Autor: max power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>eine Internetseite verlassen, die scheinbar nur Schwachsinn schreibt.
>Laut dieser war Rot=VCC, ORANGE = GND und Braun für den Impuls Aufreg
je nach hersteller sind die kabel andersfarbing und mit anderen steckern 
belegt.

>dass er viel langsamer war als angegeben^^, wurde ja auch
>über PWM gesteuert
also der servo motor wurde vom atmega pin versorgt, die dinger ziehen je 
nach größe ordenlich strom.
wenn da mal der pin nicht davon ne kleine make hat...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.