-
-
Moderator
Robotik Visionär
Hallo
Es geht natürlich weiterhin um 18 Servos an 18 Pins. Wobei man auch zwei oder mehr Servos mit einem Pin ansteuern kann, wenn man das mal benötigen sollte.
Ich würde vermeiden alle Servoimpulse gleichzeitig zu starten. Ein Servo aktuallisiert seine Position, wenn es einen neuen Impuls erhält. Wenn alle Servos gleichzeitig ihren Impuls erhalten, korrigieren alle ihre Position gleichzeitig! Das erzeugt extreme Stromspitzen. Besser ist es, die Impulsstarts innerhalb des 20ms-Fensters zu verteilen.
Bei 18 Servos könnte man die Servos in zwei Gruppen aufteilen. Je Gruppe würde die Summe der maximalen Impulslängen die 20ms-Hürde nicht nehmen. Und 9 Servopositionen in einer ISR zu berechnen sollte ein schnell getackteter ATMega locker schaffen. Als Ansatz vielleicht ein Timer1 im CTC-Mode, Kanal A+B mit ihren Comp-ISRs steuern jeweils eine Servogruppe entweder mit gemeinsamen Impulsstart nach dem Wiki: Servo oder man taktet nacheinander (da habe ich grad kein Beispiel zu).
In Bascom könnte man vielleicht diesen Ansatz von Willa "aufbohren":
S ervoansteuerung
Naja, je länger man drüber nachdenkt: Eine ISR würde auch reichen, wenn sie die Gruppen im Wechsel bedient.
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!
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen