Archiv verlassen und diese Seite im Standarddesign anzeigen : Werte begrenzen
Martinius11
22.06.2010, 19:37
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
Martinius11
22.06.2010, 20:45
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
JoeBlack
23.06.2010, 00:26
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
Rabenauge
23.06.2010, 00:50
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.
Magelan1979
23.06.2010, 19:16
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.
Martinius11
23.06.2010, 20:28
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
Martinius11
24.06.2010, 00:13
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
Mc Delta
24.06.2010, 14:45
Ich würde es mal mit einer externen Stromversorgung versuchen.
Rabenauge
24.06.2010, 15:13
Möglicherweise hast du einfach die Servos nicht richtig angeschlossen, es gibt verschiedene Anordnungen der Kabel im Stecker.
Fabian E.
24.06.2010, 15:59
Wenn deine Akkus nicht super voll sind, brauchst du so oder eine externe Stromquelle.
Der interne Spannungswandler des RP6 schafft es nicht bei großen Verbrauchern die Spannung zu halten.
Sie sinkt dann zu stark ab und der Controller resettet.
Du musst also irgendwo anders etwa 5V herbekommen. Die müssen aber nicht stabilisiert sein.
Sinkt die Spannung, so haben die Servos einfach nur weniger Kraft.
Dazu musst du einfach deine Stromquelle mit dem Servo verbinden, also + zu + und - zu -.
Allerdings musst du nun noch - von der Stromquelle mit GND vom Roboter verbinden.
Den Steurpin verbindest du einfach mit dem Steuereingang vom Servo.
Das Thema Servos hatten wir hier schon paar mal.
Suchfunktion...
Du kannst die auch direkt an die 5V vom RP6 anschließen aber da muss ein LC Tiefpass dazwischen (Drosselspule und Kondensator) z.B. 10 bis 100µH mit Ferritkern in die 5V Leitung (in Serie) und vor den/die Servos ein Elko im Bereich 220 bis 1000µF... (also parallel zwischen +5V GND)
Die Spule muss natürlich den maximalen Strom + einiges an Reserve abkönnen.
Kommt natürlich auf die Last an, aber mehr als drei Servos sollte man so besser nicht gleichzeitig laufen lassen (sequentiell hintereinander gehen auch mehr - wenn die Filterung der Versorgungsspannung gut ist).
MfG,
SlyD
Martinius11
24.06.2010, 17:54
kannst du irgent ein Bild oder schaltplan hochladen
--> Suchfunktion (hab ich keine Zeit zu gerade)
Martinius11
24.06.2010, 22:45
ist die tief pas schaltung auf seite 10 richtig ?:
http://ap.physik.uni-konstanz.de/AP-public/Anleitungen/Schwingungssiebe.pdf
Ja - wie gesagt habe ich hier auch schonmal irgendwann im Forum gepostet.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.