Für ein Projekt muss ich die Position einer Abtriebswelle ziemlich exakt erfassen, welche durch einen Regler maximal 1 Umdrehung anfahren kann. Aktuell benutze ich ein 10k Poti, welches ich an einem Ende der Welle adaptiert habe, allerdings gefällt mir die Lösung noch nicht ganz wegen zwei Problemen:
Auf die Welle wird eine axiale Kraft ausgeübt, welche auch auf das Poti wirkt wegen dem Reibschluss.
Im Fehlerfall wird gegen den Potianschlag gedreht. Dabei wird zwar nur der Adapter beschädigt, aber es nervt trotzdem. Der mechanische Anschlag ist nicht zwingend notwendig.
Grundsätzlich funktioniert meine Lösung bereits, aber ich möchte trotzdem lieber auf eine kontaktlose Erfassung umsteigen.
Könnt ihr mir da bewährte Sensoren empfehlen?
Ich habe relativ wenig dazu gefunden. Meind Idee wäre vielleicht ein GY271 mit Magnet am Wellenende, aber ich weiß nicht, ob der Sensor genaue Werte liefert in der Kombination mit dem nahen Magnetfeld, da ja eigentlich ein 3d-Kompass.
Vielleicht gibt's da was besseres.
Man kann das mit einem kleinen Ringmagneten machen und einem Hall Sensor.
Das wird in Fernsteuerungen benutzt z. B. Senderseitig am Steuerknüppel ( siehe hier ein Beispiel ).
In ( leider eher seltenen Fällen ) Fällen ersetzt man auch das Poti in Servos damit. Technisch hat sich das bewährt, es ist nur aufwendiger zu bauen und ein paar Cent teurer, daher machen es wenige Servohersteller. Ich hab ein "Hall-Servo" auf dem Heckrotor eines Helis, wo es auf hohe Stellgenauigkeit und präzise Steuerung ankommt. Das läuft seit Jahren klaglos und sehr präzise. Es hat so viele Laufstunden auf der Uhr, das es wohl schon mehrere Potis durchgeschliffen hätte. Es macht dort ja ständig sehr schnell minimale Bewegungen nahe der Mittelstellung.
Da macht sich die quasi Verschleißfreiheit ech bezahlt.
Angeschlossen wird der Hall Sensor wie ein Poti. ( auf max Spannung achten )
Für den Arduino kann du es versuchen mit einem KY24, wennn du dort den analogen Ausgang auf einen analog-in des Arduino legst.
Oder, wenn Ringmagnet vorhanden, kann man auch nen günstigen Sensor selbst positionieren, wie diesen hier z.B.
Hab ich nicht probiert, sollte aber gehen.
Man könnte auch einen digitalen Maßstab als absoluten Winkelmesser nehmen. Die Skala kann auf eine Scheibe oder direkt auf die Welle gemalt/gedruckt werden, wobei die Zeichenkunst und die Sensoren (Reflex-Lichtschranken) die Auflösung begrenzen (engstes Strichmuster für das niedrigste Bit). Siehe Gray Code Encoder.
Hatten hier vor geraumer Zeit einen AS5600 im Gespräch - der Thread ist aber glaube versandet.
(sollte glaube ein Servo werden mit dem AS5600 als Winkel-Sensor)
Ist ein 12bit Magnet-Rotations-Encoder (Vollkreis 4096 Schritte).
Auf das Wellenende kommt ein Magnet, davor der Sensor.
Auslesen per I²C oder als PWM-Signal - Letzteres könnte man versuchen per R-C zu glätten - vll. kannst Du So den Sensor direkt an Deine jetzige Lösung adaptieren.
Für ein interaktives Museumsprojekt (durch Kinder endlos drehbares Steuerrad) habe ich folgende Lösung gefunden: Kompass-Chip und Neodym-Magnet.
Die Kompass-Chips sind normalerweise so empfindlich, dass man den Winkel des Erdmagnetfeldes sicher detektieren kann. Aber selbst ein kleiner Neodym-Magent (2 x 2 x 5 mm) in 2..3 cm Entfernung ist bestimmt 1000x stärker und überspricht das Erdmagnetfeld völlig. Der Kompass-Chip liefert saubere Winkeldaten von 0-359 Grad in 1-Grad-Schritten ...
Vielen Dank euch allen, ich denke der As5600 wäre eine gute Lösung. Auch die I2C Schnittstelle gefällt mir, da die digitalen Pins eh immer zu wenig sind.
Allerdings scheint es diesen Sensor nur miehrwöchiger Lieferzeit zu geben aus China und Co.
Gibt's da nen Geheimtipp, wo man für angemessen teurer auch aus Deutschland bestellen kann?
Hab mittlerweile ein As5600 Modul und die Kommunikation läuft mit der As5600.h Bibliothek und den Beispielen.
Ich habe allerdings das Problem, dass der mitgelieferte 6mm Magnet irgendwie nicht richtig detektiert werden kann. Meist bewegt sich der Wert irgendwo im 40-50° Bereich etwas undefiniert hin und her.
Der Abstand von 0,5 - 3mm ist eingehalten. Die Halterung hab ich mit dem 3d Drucker gedruckt. Metallwelle und Magnet hab ich ebenfalls über einen kleinen Pla Adapter zusammengesteckt.
Alles ohne großes Spiel. Und theoretisch wären bis zu 0,5mm Abweichung zum Sensormittelpunkt erlaubt. Da alles recht straff sitzt, bleibt die Welle auch bei Drehung in Position.
Habt ihr andere Magneten verwendet oder wie habt ihr die Ausrichtung sichergestellt?
Funktioniert eine Detektierung mittels Ringmagnet und seitlicher Anordnung des Sensors?
Ist der Magnet diese runde Metallscheibe die man im schwarzen 3D Druckteil rechts von der Platine sieht?
wenn Ja wie sind die Magnetpole angeordnet? oben und unten auf den beiden großen Oberflächen:
Der mitgelieferte Magnet müßte schon richtig sein aber bevor man sich den Wolf sucht ist es besser mal mit einem anderen Magneten an den Magneten dranzufahren.
Uwe, kaum zu glauben aber alleine daran lags. Hab noch einen zweiten Magneten und beide ziehen sich an, unabhängig vom Drehwinkel zueinander. Nordpol und Südpol sind also an der Seite geteilt.
Hab den Magneten probeweise aufgestellt und nun wird der Drehwinkel deutlich besser erkannt.
Besten Dank!
I
m übrigen ist die Positionserkennung über I2C nun deutlich besser als mit Poti. Analog und PWM will ich aber auch noch testen.