Hallo
5,5V sollten ok sein da man Servos direkt mit einem Ausgang ansteuern kann.
???Sleep (7.2);
Versuche mal mein Programm:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=29902
Gruß
mic
Hallo!
Ich hab mal spasseshalber einen RC-Servo an den BackLED-Ausgang des Asuro angeschlossen, soll heissen schwarz und rot an die Spannungsversorgung und weiss an den +-Ausgang für die LED.
Mit dem kleinen Programm
hab ich den Servo angesteuert. Er drehte und blieb stehen, wie er sollte, aber zittert.Code:#include "Asuro.h" int main(void) { Init(); int i; int u; int v; for (i=0;i<1000;i++) { StatusLED(YELLOW); BackLED (ON,ON); for (v=0;v<11;v++) { Sleep (7.2); } BackLED (OFF,OFF); for (u=0;u<184;u++) { Sleep (7.2); } } return 0; }
Auf dem Oszilloskop sieht man, das die Periode der eines Servotesters (Amplitude 3,5V) entspricht, jedoch eine Amplitude von 5,5V gemessen wird. Zittert der Servo wegen dieser hohen Spannung oder ist das Programm schlecht/falsch?
Danke schonmal!
Hallo
5,5V sollten ok sein da man Servos direkt mit einem Ausgang ansteuern kann.
???Sleep (7.2);
Versuche mal mein Programm:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=29902
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
@Radbruch: Danke für die schnelle Antwort!
Aber brauche ich für die Verwendung deines Programmes nicht auch die "ir-asuro"-headerdateien?
Ich geb zu das ich kein fortgeschrittener C-Programmierer bin und ich meinen richtigen Einstieg jetzt erst mit dem Asuro mache.
Den Asuro benötigen wir für einen Konstruktionswettkampf an einer Fachhochschule. Da sich auch Maschinenbauer mit dem Ding auseinandersetzen sollen, sollten die Programme möglichst einfach sein.
Hallo
ir-asuro ist die normale Library mit der IR-Erweiterung nach waste (Abstandsmessung per IR). Das Ansteuern der Servos funktioniert auch mit der orginalen CD-Library, allerdings sind dann bei der Sleep()-Version die Werte für die Servopositionen doppelt so groß, denn der Timer wird mit 72kHz getaktet wird, d.h. Sleep(72) dauert eine Millisekunde. Neuere Versionen von asuro.c verwenden einen 36kHz-Takt, eine Millisekunde ist dann Sleep(36).
Die Sleep()-Version ist deutlich einfacher als die Interruptvariante, man kann als Einsteiger die Pulserzeugung besser nachvollziehen. Je nach Anschluß des Servos muss das Signal möglicherweise invertiert werden.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen