-
Werte begrenzen
Liebes Forum,
ich habe mir für den RP6 einen Arm gebaut und will in jetzt mit Funktionen programmieren aber das er sich nicht selbst zerstören kann muss ich einige Servowerte speren sodass ersich nicht selbst zerstören kann aber wie macht
man das ?Es soll auch in abhängigkeit von anderen Werten abhängen.
-
If(servowert > erlaubterServowert){
servowert = erlaubterServowert;
errorFlag = 1;
}
Oder so ähnlich.
Gruß, Yaro
-
muss ich dann nach errroFlag fragen oder gibt das der Komplier aus?
-
Das errorFlag kann z.B. eine globale Variable sein, die du ab und zu abfragst und wenn die gesetzt ist z.B. eine LED anschaltest. Das ist nur dazu da, zu erkennen, das du deine Servobegrenzung erreicht hast. Du kannst es auch weglassen, dann kannst du aber schlecht erkennen, ob der Servo so sein muss, oder ob die Begrenzugn gerade aktiv geworden ist.
Gruß, Yaro
-
Der Vollständigkeit halber sei noch gesagt, dass diese Überprüfung zwischen die eigentliche Werteberechnung und die Ausgabe muss um zu verhindern dass zu grosse Werte vor der Fehlerabfrage ausgegeben werden.
MfG JoeBlack
-
Ich habe mir, gleich im Programmkopf, zwei Konstanten abgelegt, die während dem Programmablauf nicht verändert werden:
const int servo_maxLeft= Wert für Maximalausschlag links
const int servo_maxRechts= Wert für Maximalausschlag rechts
So kann man leicht mal die Maximalausschläge verändern, um z.B. zu testen, wie weit es wirklich geht.
Wann auch immer dann eine Berechnung der Position nötig ist, wird aufgepasst dass der errechnete Wert zwischen diesen beiden liegt, so kann nichts passieren.
-
Moin, vielleicht erzählst Du uns noch etwas mehr über Deine geplante Abhängigkeit von anderen Werten. Eventuell könntest Du/Wir dann "einfach" eine Funktion erstellen, die die Bedingungen erfüllt.
-
Nun ja wenn der Servo 1 auf position 12 ist darf Servo 2 nicht auf 10 sein
Aber ich hab grad noch einganz anderes Problem wenn ich den Arm anschließe verhält sich der RP6 wie bei einem Kurzschluss.
das passiert auch wenn ich nur einen Servo anschließe was kann man da tun ?
-
Ich gehe mal davon aus, dass der Servo deinem µC den Strom wegfrisst.
Da hilft z.B. Entkoppeln des µC mit schottky und Kondensator.
Poste mal deinen Schaltplan.
Gruß, Yaro
-
dagibts eigentlich keinen großen schaltplan ich hab halt nur die Anschlüße
entsprechent verbunden und beim signal 10kOhm dazwischen als Signale hab ich INT1, ADC0, IO2 und IO3