-         
+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Servo Signal in C oder Assembler generieren?

  1. #1
    Gast

    Servo Signal in C oder Assembler generieren?

    Hallo
    Kann ich ein Signal zum steuern von Servos auch ohne Timer generieren. Hat jemand ein ein paar Codezeilen für einen Atmel?

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    49
    Beiträge
    247
    Hallo

    Wieso willst oder kannst du dafür keinen Timer benutzen ?

    Man kann das auch ganz "hart" mit Delays machen, also reine Rechenzeit verbraten. Dann kann dein uC aber die ganze Zeit nichts anderes machen. Dafür ist er doch zu schade.

    MFG
    Dieter

  3. #3
    Gast
    Weil das Hauptprogramm nur in bestimmten momenten etwas Zeit hat. Eine Unterbrechnung durch einen Interrupt würde es durcheinander bringen.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    28.04.2004
    Ort
    Nähe Köln
    Alter
    49
    Beiträge
    247
    Hallo

    Ein Servo erwartet aber im Normal Falle, alle 20 ms neue Impulse. Klar man kann das etwas ausweiten, Bereiche von 10 bis 50 ms sollten kein Problem sein. Wenn du jetzt rechnest, das du min. 1ms bis max. 2 ms in der Servo Funktion hängst und das alle 50 ms, kannst du dir ja ausrechnen, was an Zeit für die anderen Sachen bleibt.

    Wenn der Servo keine Last zu halten hat, kann man den auch einmal ansteuern, der bleibt in der Stellung dann ja stehen. Und jede Sekunde ein Implus zum auffrischen, sollte ja drin sein.

    Also grundsätzlich eine Schleife von 1 ms + eine Variable Zeitschleife für die Stellung, im Bereich von 0 bis 1 ms.

    MFG
    Dieter

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    32
    Beiträge
    614
    Du kannst auch irgendwo in deiner Hauptschleife(eine Stelle, die je nach gewünschter Genauigkeit mit mindestens 50kHZ durchlaufen wird) übberprüfen, wie lange das Einschalten des Impulses schon her ist (mit Timer brauchts auf jeden Fall weniger Rechenleistung als mit Warteschleifen. Du kannst ja einen Timerwert auch ohne Interupt abfragen(Ich denke das meintest du mit "ohne Timer").).

  6. #6
    Gast
    Also einfach gesagt: Die Datenleitung vom Servo muß auf high geschaltet werden, dann eine Warteschleife von 1 bis maximal 2 ms und dann wieder Datenleitung auf Low setzen. Und das ganze halt so oft wie möglich.

    Habe ich das richtig so verstanden?

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    02.03.2004
    Ort
    Paderborn
    Alter
    32
    Beiträge
    614
    Klingt richtig (obgleich man natürlich statt der Warteschleife noch alles mögliche in den 1-2 ms machen könnte).

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    03.01.2004
    Ort
    Pottenstein
    Alter
    37
    Beiträge
    265
    So oft wie möglich würde ich nicht sagen. Der Impuls sollte etwa alle 20 ms kommen, mehr bringt keine Verbesserung. Ich hab mal versucht, es möglichst schnell zu machen, aber da hat mein Servo angefangen zu brummen. Ob das allerdings schadet, weiß ich nicht. Könnte ja sein, daß man damit die Elektronik irrtiert...
    Nils

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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