Ich will mit einem Servo eine Scheibe drehen, und davon die Ist-Position messen.
Problem dabei: Ich komme nicht axial an die Messstelle dran.
Das Poti vom Servo wird schon von dessen Elektronik verwendet. Das fällt also auch flach.
Hat jemand noch eine gute Idee, wie man mit möglichst einfachen Mitteln absolut die Position bestimmen kann?
Ich habe z.B. mal gehört, dass es einen Magnetsensor geben soll, mit dem man quasi die Lage des Magnetfelds bestimmen kann?!
Vielleicht ein Kompassmodul und einen kleinen Magneten in die Scheibe oder so?!
Was stört Dich am Servo-Poti?
OpAmp als Spannungsfolger oder passend runter geteilt auf AnalogIn.
GND sind bei Arduino und Servo identisch (... äh ... wenn der Arduino das Servo ansteuert !!!).
Sonst müsste man die GNDs zusammen bringen.
Dann hast Du am Poti-Schleifer maximal mit der Versorgungsspannung des Servo zu rechnen - Das kann man runter teilen, um auf einen Arduino-freundlichen Bereich zu kommen.
Ist halt auch die Frage, wie 'genau' dieses Poti ist - sowohl relative und absolute Winkel könnten hier wackeln, wie ein Lämmerschwanz.
themanfrommoon:
Ich will mit einem Servo eine Scheibe drehen, und davon die Ist-Position messen. ...
Je nach Servo ist es ja möglich, diesen ziemlich exakt zu drehen/bewegen. Ist das nicht genau genug? Musst Du nur bestimmte Positionen mit hoher Genauigkeit anfahren?
Ich wüsste gerne ein bisschen mehr über das zugrunde liegende Problem. Kannst Du ein wenig Licht ins Dunkel bringen?
Also, versuche ich das mal zu erklären.
Letztendlich will ich eine Prozessgeschwindigkeit optimieren.
In Summe handelt es sich um zwei Servos. Das erste Servo hat eine Scheibe drauf mit einer Weiche, die fünf Positionen annehmen kann.
Diese fünf Positionen der Weiche führt auf fünf weitere Scheiben, mit je fünf Positionen. Diese 5 Scheiben sind mechanisch über Gestänge gekoppelt.
So habe ich also ein Weichenstellwerk mit zwei Servos und 25 Ausgängen.
Oben fällt was rein, das unten in 25 verschiedene Ausgänge geleitet werden kann.
Je nach voriger Stellung ist die Stellgeschwindigkeit zur neuen Position unterschiedlich.
Und nun kam die Idee zu detektieren wann die Sollposition erreicht ist, um die Durchlaufzeiten zu minimieren.
Möglichst einfach definiere ich wie folgt:
Keine zusätzlichen Zahnräder oder Zahnriemen.
Nicht 5 Sensoren für 5 Positionen pro Scheibe
Es muss nicht unbedingt auf 1° genau sein, ich schätze mal 1-3° genau dürfte reichen
Optimal wäre z.B. sowas wie ein Magnetfeldsensor.
Wenn man das vorhandene Servopoti nitzen könnte wäre das die beste Variante.
Ich hätte vermutet, dass wenn man versucht dieses anzuzapfen, das die Servoelektronik gestört wird?!
Versuch macht Kluch - das Anlöten einer weiteren Litze an das Servo sollte nicht das Problem darstellen.
Kurz bevor ich Das irgendwo anschließen würde, wäre eine Messung, was Da wirklich anliegen kann, sinnvoll.
Wenn Du im Bereich der Versorgungsspannung des Arduino bleibst, solltest Du Das auch direkt an einen A-I anschließen können - auch hier wird Versuch Kluch machen.
Wenn Das - wider Erwarten - doch nicht sauber klappt oder Du eh die Spannung runter teilen musst, einen OpAmp als Spannungsfolger/Teiler dahinter geklemmt (theoretisch unendlicher Eingangswiderstand - zumindest im MegaOhm-Bereich wird's in der Praxis auch sein) und ggf. so runter teilen, daß man satt den A-I-Bereich abdeckt, daß man also nicht unnötig Messbereich verschenkt.
MfG
PS: Das Servo kann bei dem Versuch auch zerstört werden - da Du aber selber daran rumfingerst, hast Du den Schuldigen zumindest in Deiner Nähe
PPS: Wenn Direktanschluss am Arduino, sollte tunlichst verhindert werden, daß dieser Pin als AUSGANG geschaltet wird - Das könnte die Servo-Elektronik wirklich durcheinander bringen.