Analoger Encoder
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Analoger Encoder
Nachdem ich gemerkt habe, dass ich den tollen Thread "1986er Trainingsroboter-meine Version" mit meinen Versuchen zu Analog-Encodern gehijackt habe (sorry for that), hier nun ein Break-Out, um das Encoder-Thema separat weiterzuführen. Sobald ich doch mal es schaffen sollte, das in ein eigenes Modell des Trainingroboters einzubauen, werde ich es in dem anderen Thread posten.
Also hier ein Rotations-Encoder mit Abstandsmessung über eine IR-Reflex-Lichtschranke vom Typ CNY70. Die Stufenscheibe hat einen Hub von 5mm.
Wegen der 0.2mm-Stufung des 3D-Drucks habe ich den Gewindegang mit Papier "tapeziert". Zudem erhöht das Papier den Reflexionsgrad. Durch Verwendung von IR-Licht ist der Encoder sehr unempfindlich gegenüber Umgebungslicht.
Ich erreiche mit 4.7k Ohm Emitter gegen Masse, Kollektor: 5V und AnlaogRead-Messung mit Arduino-ADC einen Kontrast von 612 :167 - also etwas mehr als 8 Bit für eine Umdrehung, was i.A. ausreichen sollte.
Die Stufenscheibe kann man vielleicht auch direkt aus Papier basteln, wenn kein 3D-Drucker zur Hand.
Also hier ein Rotations-Encoder mit Abstandsmessung über eine IR-Reflex-Lichtschranke vom Typ CNY70. Die Stufenscheibe hat einen Hub von 5mm.
Wegen der 0.2mm-Stufung des 3D-Drucks habe ich den Gewindegang mit Papier "tapeziert". Zudem erhöht das Papier den Reflexionsgrad. Durch Verwendung von IR-Licht ist der Encoder sehr unempfindlich gegenüber Umgebungslicht.
Ich erreiche mit 4.7k Ohm Emitter gegen Masse, Kollektor: 5V und AnlaogRead-Messung mit Arduino-ADC einen Kontrast von 612 :167 - also etwas mehr als 8 Bit für eine Umdrehung, was i.A. ausreichen sollte.
Die Stufenscheibe kann man vielleicht auch direkt aus Papier basteln, wenn kein 3D-Drucker zur Hand.
- PHabermehl
- Beiträge: 2557
- Registriert: 20 Dez 2014, 22:59
- Wohnort: Bad Hersfeld
Re: Analoger Encoder
Die würde ich doch glatt mal mit 0,07mm Schichtstärke und einem Hub von 10mm auf eine Umdrehung drucken...
Das sollte für Auflösung verdoppeln..
Eiert die Scheibe eigentlich? Dann könnte man noch einen flachen Rand außen herum drucken und als Referenz mit einem zweiten Sensor erfassen...
Gruß peter
Das sollte für Auflösung verdoppeln..
Eiert die Scheibe eigentlich? Dann könnte man noch einen flachen Rand außen herum drucken und als Referenz mit einem zweiten Sensor erfassen...
Gruß peter
Re: Analoger Encoder
Schönes F+E-Projekt mal wieder von dir, Florian, ich sehe du bleibst deinem Thema Dreh- und Linersensor treu. Ich hätte nicht gedacht, dass man mit so wenig Hub schon diese Genauigkeit hinbekommt. Da kommt man ja fast schon auf den Gedanken, direkt an einem Schneckenende zu messen.
Hast du die Linearität schon angesehen? Ich hätte ja vermutet, dass das aufgeklebte Papier hier zusätzliche Ungenauigkeiten bewirkt und auch die Vibrationsanfälligkeit erhöhen könnte.
@Peter Wie kommst du auf die 0,07? Ich kenne immer nur 0,08 als Minimum und dann noch diese alte Legende (habe es nie überprüft), dass man immer Vielfache von 0,04 nehmen sollte, weil das dem technisch minimalen Z-Hub entspricht und man sonst durch Interpolation Interferenzen in Z-Richtung bekommt.
Hast du die Linearität schon angesehen? Ich hätte ja vermutet, dass das aufgeklebte Papier hier zusätzliche Ungenauigkeiten bewirkt und auch die Vibrationsanfälligkeit erhöhen könnte.
@Peter Wie kommst du auf die 0,07? Ich kenne immer nur 0,08 als Minimum und dann noch diese alte Legende (habe es nie überprüft), dass man immer Vielfache von 0,04 nehmen sollte, weil das dem technisch minimalen Z-Hub entspricht und man sonst durch Interpolation Interferenzen in Z-Richtung bekommt.
Meine 3D-Designs für fischertechnik: www.printables.com/social/202816-juh www.thingiverse.com/juh
- fishfriend
- Beiträge: 2168
- Registriert: 26 Nov 2010, 11:45
Re: Analoger Encoder
Hallo...
Ist schon lange her, das ich was mit der CNY70 was gemacht habe.
Mal so ein paar Fragen am Rande:
Mit wieviel mA betreibst du die IR Diode?
Die Kruve vom Empfänger ist ja nicht linear. Könnte man das nicht bei der Steigung ausnutzen oder ist es besser, wenn man das dann umrechnet?
Ob man einen Time of Flight distance Sensor, wie z.B. den Adafruit VL6180X nehmen könnte?
Mit freundlichen Grüßen
Holger
Ist schon lange her, das ich was mit der CNY70 was gemacht habe.
Mal so ein paar Fragen am Rande:
Mit wieviel mA betreibst du die IR Diode?
Die Kruve vom Empfänger ist ja nicht linear. Könnte man das nicht bei der Steigung ausnutzen oder ist es besser, wenn man das dann umrechnet?
Ob man einen Time of Flight distance Sensor, wie z.B. den Adafruit VL6180X nehmen könnte?
Mit freundlichen Grüßen
Holger
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro
TX-Light: Arduino und ftduino mit RoboPro
Re: Analoger Encoder
Hallo Peter,
Deinen Vorschlag habe ich teilweise umgesetzt. Nicht fein gedruckt. Denn das hätte bei mir 3 Stunden gedauert.
Aber jetzt hat die Schnecke eine Steigung von 10mm und der Kontrast ist jetzt: 1000 : 120
Hallo Holger,
Di IR-Diode betreibe ich mit 100 Ohm Vorwiderstand an 5V also grenzwertig 50mA.
Zur Linearität: Die Kurve müsste man vermutlich ohnehin linarisieren oder das Schneckenprofil entsprechend designen.
Einen VL6180X könnte man wohl auch verwenden, wobei ich nicht weiß, welche Auflösung der hat. Der ist ja für einen Abstand bis 100mm optimiert.
Ein Vorteil vom CNY70 ist, dass man ihn wie einen Spannungsteiler mit Poti mit analogRead auslesen kann.
Hallo Jan:
Die Response ist tatsächlich nichtlinear, was aber nicht stört, da man sie linearisieren kann. Ich werde das noch mal quantifizieren.
Und das Papier kann zusätzliche Ungenauigkeiten (z.B. Wellen) einbringen. Notfalls muss man für jeden Sensor eine Eichkurve messen.
Aber im Prinzip funktioniert es.
Der kritische Winkel ist bei dem Sprung, weil da das Signal verschmiert und nicht scharf ist. Aber bei einem Potentiometer hat man normalerweise auch einen Totbereich.
Vielleicht probiere ich auch mal eine Encoder-Schnecke auf einer Klopapier-Rolle. Das wäre dann interessant für die, die keinen 3D-Drucker haben.
Florian
PS 1: Wegen des unterschiedlichen Abstandes wird die Auflösung vermutlich auch vom Winkel abhängen.
PS 2: Hier die Reflexionswerte gegen Winkel gemessen mit einem AS5600-Winkel-Encoder (Die Achse mit dem Magneten eiert noch etwas
). Man erkennt hier die Nichtlinearität. Sieht fast quadratisch aus.
Deinen Vorschlag habe ich teilweise umgesetzt. Nicht fein gedruckt. Denn das hätte bei mir 3 Stunden gedauert.
Aber jetzt hat die Schnecke eine Steigung von 10mm und der Kontrast ist jetzt: 1000 : 120
Hallo Holger,
Di IR-Diode betreibe ich mit 100 Ohm Vorwiderstand an 5V also grenzwertig 50mA.
Zur Linearität: Die Kurve müsste man vermutlich ohnehin linarisieren oder das Schneckenprofil entsprechend designen.
Einen VL6180X könnte man wohl auch verwenden, wobei ich nicht weiß, welche Auflösung der hat. Der ist ja für einen Abstand bis 100mm optimiert.
Ein Vorteil vom CNY70 ist, dass man ihn wie einen Spannungsteiler mit Poti mit analogRead auslesen kann.
Hallo Jan:
Die Response ist tatsächlich nichtlinear, was aber nicht stört, da man sie linearisieren kann. Ich werde das noch mal quantifizieren.
Und das Papier kann zusätzliche Ungenauigkeiten (z.B. Wellen) einbringen. Notfalls muss man für jeden Sensor eine Eichkurve messen.
Aber im Prinzip funktioniert es.
Der kritische Winkel ist bei dem Sprung, weil da das Signal verschmiert und nicht scharf ist. Aber bei einem Potentiometer hat man normalerweise auch einen Totbereich.
Vielleicht probiere ich auch mal eine Encoder-Schnecke auf einer Klopapier-Rolle. Das wäre dann interessant für die, die keinen 3D-Drucker haben.
Florian
PS 1: Wegen des unterschiedlichen Abstandes wird die Auflösung vermutlich auch vom Winkel abhängen.
PS 2: Hier die Reflexionswerte gegen Winkel gemessen mit einem AS5600-Winkel-Encoder (Die Achse mit dem Magneten eiert noch etwas

Re: Analoger Encoder
Es muss nicht immer 3D-Druck sein:
Habe mal schnell einen Analog-Encoder aus Pappdeckel (Edelkarton von MINI PENNE RIGATE No 66) und einer Küchenrolle zusammengeklebt. Der funktioniert sogar sehr gut und ist schneller angefertigt als ein 3D-Druck.
Sollte nur nicht feucht werden
Habe mal schnell einen Analog-Encoder aus Pappdeckel (Edelkarton von MINI PENNE RIGATE No 66) und einer Küchenrolle zusammengeklebt. Der funktioniert sogar sehr gut und ist schneller angefertigt als ein 3D-Druck.
Sollte nur nicht feucht werden

Re: Analoger Encoder
alles gut, ich fands selbst durchaus spannend verschiedenes auszutesten, die idee mit der schnecke ist schon cool, da wäre ich nicht drauf gekommen. hat den vorteil das es nie verschleißt, wie gesagt ich werde die potis dranlassen, das funktioniert für meine zwecke gut genug. am einfachsten wäre es wahrscheinlich die nichtlinearität mit einem anderen schneckenprofil auszugleichen. bin gespannt auf deine version des roboters!atzensepp hat geschrieben: ↑05 Mai 2025, 16:07Nachdem ich gemerkt habe, dass ich den tollen Thread "1986er Trainingsroboter-meine Version" mit meinen Versuchen zu Analog-Encodern gehijackt habe (sorry for that), hier nun ein Break-Out, um das Encoder-Thema separat weiterzuführen. Sobald ich doch mal es schaffen sollte, das in ein eigenes Modell des Trainingroboters einzubauen, werde ich es in dem anderen Thread posten.
Grüße,
XG BC
Re: Analoger Encoder
Die Kurven lassen sich in ungefähr mit einer exponentiellen Formel fitten:
Aber das kann wahrscheinlich man noch besser hinbekommen. Blöd ist halt, dass die Faktoren vom jeweiligen Aufbau abhängen, was den Einsatz etwas schwieriger macht. Evtl. ADC-Werte an 3 Referenzpositionen (z.B. 0, 90, 180 Grad) messen und die Kurvenparameter bestimmen. Parameter müsste man dann irgendwie ins Eprom speichern, sonst muss man immer neu einmessen oder das Programm mit den bestimmten Parameterwerten versehen, kompilieren und hochladen.
Um den CNY70-Reflex-Sensor für ft besser handhabbarer zu machen habe ich eine entsprechende passgenaue Halterung gedruckt: Die Löcher sind für die Anschlusslitzen und dienen gewissermaßen der Zugentlastung.
Der Übergangsbereich ist nicht nutzbar und in der Nähe des Übergangsbereichs ist der Fehler der Winkelermittlung größer.Aber das kann wahrscheinlich man noch besser hinbekommen. Blöd ist halt, dass die Faktoren vom jeweiligen Aufbau abhängen, was den Einsatz etwas schwieriger macht. Evtl. ADC-Werte an 3 Referenzpositionen (z.B. 0, 90, 180 Grad) messen und die Kurvenparameter bestimmen. Parameter müsste man dann irgendwie ins Eprom speichern, sonst muss man immer neu einmessen oder das Programm mit den bestimmten Parameterwerten versehen, kompilieren und hochladen.
Um den CNY70-Reflex-Sensor für ft besser handhabbarer zu machen habe ich eine entsprechende passgenaue Halterung gedruckt: Die Löcher sind für die Anschlusslitzen und dienen gewissermaßen der Zugentlastung.
Re: Analoger Encoder
Hier zwei CNY70 auf "Abwegen": in ihren neuen Gehäusen für einen 2D Flex-Kraftsensor.
Das Flexure entkoppelt die X- und Y-Auslenkung, die dann von den Abstandssensoren gemessen werden.
Es ist noch etwas starr für die Minikräfte, die bei meinen Fischertechnikmodellen anfallen.
PS: Die "Nasen" links und unten sind für Gabellichtschranken, die noch kleinere Hübe auflösen können.
Die Idee: Über das Nutrad will ich mal Seilkräfte in 2 Richtungen messen können. Das Flexure entkoppelt die X- und Y-Auslenkung, die dann von den Abstandssensoren gemessen werden.
Es ist noch etwas starr für die Minikräfte, die bei meinen Fischertechnikmodellen anfallen.
PS: Die "Nasen" links und unten sind für Gabellichtschranken, die noch kleinere Hübe auflösen können.
Re: Analoger Encoder



Meine 3D-Designs für fischertechnik: www.printables.com/social/202816-juh www.thingiverse.com/juh