Forum: Mikrocontroller und Digitale Elektronik Mehrere servos an ATMega8


von Lukas (Gast)


Lesenswert?

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!

von Alex (Gast)


Lesenswert?

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

von Lukas (Gast)


Lesenswert?

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!

von Rahul (Gast)


Lesenswert?

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

von Jörg Wunsch (Gast)


Lesenswert?

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.

von thkais (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.