Also die Überschrift sagt schon alles aus... Ich möchte mehrere Servos (so viele wie möglich) an einen Mega8 hängen und alle individuell ansteuern. hat jemand ein fertiges C - Programm (oder ausschnitte) dafür? Ich habe Probleme, Zeitkritische Vorgänge (1, 1.5, 2 ms HIGH - Signal) in C zu programmieren. Danke!
Wieviel Servos sind es denn? Der Mega8 hat "nur" zwei PWM-Kanäle bzw. 3 Timer. Wo genau liegt dein Problem, verstehst du nicht, wie eine PWM zu implementieren bzw. ein Timer zu initialisieren ist? Wie programmierst du? avrgcc, assembler, ... Gruss, Alex
Ich verwende GCC Ich benötige mehr als 2 Ausgänge. In der 1. Ausbaustufe 8 Servos (später 16) Also müsste ich alles mit Software schicken, ohne die PWM - Ports zu verwenden. Das Problem ist, das dafür auch niht genügend Timer vorhanden sind!
Welche Auflösung brauchst du bei den Servos? 100 Schritte dürften reichen, oder? Dazu nehme man einen Timer, der alle 10 µS einen Interrupt auslöst. In der dazughörenden Interrupt Service Routine zählt man der Menge der Servos entsprechend viele Variablen und eine von 2000 (20.000 µS) herunter. Sobald diese Variable auf 0 heruntergezählt wurde, werden die Servo-Variablen mit neuen Werten initialisiert, und sämtliche Ausgänge eingeschaltet. Der zur Servo-Variable korrespondierende Ausgang wird dann ausgeschaltet, sobald die Variable auf 0 heruntergezählt worden ist. Den ganzen Spaß muss man noch irgendwie initialisieren, aber so müsste das funktionieren. In der Hauptschleife werden dann die Initialwerte für die Servo-Variablen bereitgestellt. Aufwand: 1 Timer 2*n Byte-Variablen für die Servos 1 Int-Variable für die Periodendauer. Gruß Rahul
Ich hatte hier schonmal irgendwann ein Beispiel gepostet, das eine N-Kanal Software-PWM implementiert. Damals ging's allerdings um LEDs, da war das Timing und die Abstufung noch weniger kritisch.
Im Netz geistert irgendwo ein Programm herum, bei dem ein 2313 8 Servos ansteuert. Weiß momentan nicht wo, aber Google wirds wohl finden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.