Es war die Rede von 0 bis 180°.180 verschiedene Werte? Nicht gerade üppig, aber könnt gehen
Bei einem 8MHz Quarz sind für die Werte von 1ms bis 2ms immerhin 1000Werte möglich.
Das bei einem 16Bit Timer und einem Prescaler von 8.
Mit dem Comparematch Interrupt und ein wenig Software ist die Ansteuerung von bis zu 8 Servos möglich.
Nutzt man zusätzlich noch den Comparematch B sind es bis zu 16 Kanäle mit einem 16 Bit Timer.
Die Arduino Servo Lib nimmt ints von 0 bis 180, also genau Gradschritte. Ich würd mir lieber sparen, zuviel selbst herumzuschreiben, Mikrocontrollerprogrammierung ist Chinesisch für mich.
Verdammt, mir fällt jetzt erst auf, dass das wieder nur 90 Werte pro Richtung sind ... muss ich wohl doch selbst ran.
edit: aso, nein, da gibts ja mehr als eine Funktion
http://arduino.cc/en/Reference/ServoWriteMicroseconds
Untere und obere Grenzen für die Pulslänge kann man auch einstellen, damit man keine Genauigkeit verschwendet. Nur die Frequenz ist scheinbar unveränderlich.
Geändert von ichbinsisyphos (23.02.2013 um 08:47 Uhr)
Die Frequenz der Servo Lib ist diese standardmäßigen ~50Hz. Mit der oben verlinken Funktion hat man damit Mikrosekunden-Auflösung und 1000 Einzelschritte (beide Richtungen gezählt).
Wie das in dieser Bibliothek gelöst ist, weiß ich nicht.
Lesezeichen