Hallo zusammen,
Ich bin aktuell dabei, zwei 3-Pin Drehgeber in mein Arduino Projekt zu implementieren.
Diese sollen später eine durch zwei Motoren erzeugte, lineare Bewegung synchronisieren.
Anders als „herkömmliche“ Encoder hat meiner lediglich nur einen Output Pin, auf dem je nach Drehung, prozentual von 10-90% die Spannung der Eingangsspannung (5V) anliegen.
Weiß jemand, ob es hierfür bereits eine fertige Library gibt?
Der hat nen PWM CW-Ausgang. Die 10-97% beziehen sich auf den Pegel des Signales ggü. Vsupply.
Typebezeichnung aufgelöst:
0 - Umlaufende Rotation ohne Anschlag
B - Genauigkeit +-0,5%
4 - Umalauf 360°
W - Mit Anschlüsse A - Analog CW
Also doch Pegel direkt am AnalogPin auslesen.
Gibt es hierfür bereits eine Library? Ich konnte leider nichts finden.
Das Auslesen ist das eine, das Verarbeiten und somit Synchronisieren zweier Motoren, das andere…
Ja, das sehe ich auch...
Du bräuchtest dann zwei von den Dingern und müsstest beiden jeweils einen AnalogPin spendieren.
Der analog hat eine Auflösung von 0-1023, davon gehen unten 10% und oben 10% weg. Bleiben Dir ca. 819 auswertbare Werte.
Bei 360° macht das ca. 0.5° ein neuer Wert.
Das dürfte reichen.
Also nur ne Funktion schreiben, das Du beide Analog ausliest und den Wert vergleichst und je nach Abweichung drauf reagierst.
Hi Uwe,
so ähnlich soll das aussehen.
Im Detail geht es um eine Kleine Hebevorrichtung (ähnlich wie eine Scherenhebebühne).
Habe hierzu bisher leider keinen passenden Code gefunden.
Um ehrlich zu sein fehlt mir hier die Erfahrung, um überhaupt etwas brauchbares aufzustellen. Ich habe mich mal in die PID Thematik eingelesen aber komme nicht voran.
Ich habe es geschafft, die Encoder auszulesen und mir grafisch im Serial Plotter anzeigen zu lassen
Ich denke, die brauchst du auch nicht, wenn du zwei Motoren synchron laufen lassen willst und deren Bewegung aus den beschriebenen Analog-Gebern ermittelt wird.
Nehmen wir mal an, du hast es geschafft, beide Geber auszulesen und zu vergleichen.
Geht es jetzt darum, dass beide Motoren gleich weit drehen, oder um deren Drehgeschwindigkeit? Oder drehen sie mehrere Umdrehungen und du musst den blinden Fleck bei +-10 % (324° ... 36°) überbrücken?
Die Encoder werden über die Übersetzung keine gesamte Drehung ausführen. Der Blind Spot muss also nicht überbrückt werden.
Sie sollen den Ablauf regeln, dass die beiden Scheren in gleicher Geschwindigkeit verfahren und unter Berücksichtigung einer gewissen Toleranz, auch stetig auf selber Position bleiben. Die Motoren werden über ein Relais Board angesteuert.
Also nur vor/aus/zurück, und beide nur in die gleiche Richtung, bis beide am Ziel sind. Sehr einfach. Dazu hast du nur max. 819 Zielpositionen (1024*80%) , die du anfahren kannst.
Ich würde mal sagen, dass es per Relais sinnlos ist, bei ungleich schnellen Motoren den schnelleren stottern zu lassen, um den Unterschied auszugleichen. Lieber laufen sie nicht unbedingt auf die Zehntelsekunde gleich lang, bis sie jeweils am Ziel sind.