-
-
Hallo,
das Problem ist das Updateinterval für die Servos. Normalerweise wird
ein Servo alle 20ms refreshed.
Der Steuerbereich eines Servos geht von 0,2ms bis 2,4ms (bei Fernsteuerungen wird 1ms bis 2ms benutzt und 1,5ms ist Mitte).
16 x 2,4ms = 38,4ms ! bedeutet, daß man das Updateinerval schon
untypisch auf mind. 40ms hochsetzen muss. (alte Servos werden dann weich). Bei 32 Servos wäre das Interval dann schon 80ms usw.
Ich habe mit Bascom "Servo" diverse Probleme gehabt, und benutze
deshalb eine eigene Routine, die beliebige Servos ansteuern lässt.
(Nur unter der Premisse des verlängerten Intervals!!!)
Lass den Timer0 überlaufen und in eine Sub verzweigen.
In der Sub gibst Du "Pulsout pinb,0,Servo0" usw für jedes Servo
einen Pulsout auf verschieden Pins.
Servo0 ist eine Variable, die Du in Deiner Hauptschleife beliebig
füllst.
Den Timer0 musst Du nur immer wieder in der ÜberlaufSub
auf einen festen Wert setzen, um damit das Updateinterval
festzulegen. (Eben, wann soll der TImer überlaufen) .
Die Servo0 Var kannst Du dann per Seriell oder sonst wie füllen.
Hoffe ich konnte helfen.
Gruß
Frank
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen