Encodermotor - Anschlußbelegung

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Encodermotor - Anschlußbelegung

Beitrag von H.A.R.R.Y. » 13 Nov 2013, 08:03

Für meinen 9V-Encodermotor 135484 suche ich einen Anschlußplan für den 'Encoder' - diese kleine Stiftleiste in die das 3-polige Kabel 137125 reingehört. Kann mich freundlicherweise jemand aufschlauen, welcher Anschlußstift (Pin) wo hin gehört?

Ich denke am sichersten ist die Zuordnung über die Kabelfarben zu machen:
Pin 1: grün
Pin 2: rot
Pin 3: schwarz

Wie hoch die angelegten Spannungen maximal sein dürfen und prinzipiell wie die Ausgangsstufe (open collector ??) aussieht wäre auch interessant, da ich Selbstbauelektronik anstelle RoboTX anschließen möchte. Eine Typnummer des Sensors würde mir für diese Daten natürlich auch helfen, aber hier wird es wahrscheinlich zu "intim"?

Hintergrund: der Motor war ein Geschenk; ohne Anleitung ... (trotzdem einen satten Dank an den Stifter)

Und da wir schon dabei sind aus Neugier noch: wieso sind am 24V-Encodermotor 144643 vier Anschlüsse an dieser Stiftleiste? Hat der etwa einen echten Inkrementalgeber mit Richtungsinfo?

Danke
H.A.R.R.Y.
[42] SURVIVE - or die trying

thkais
Beiträge: 381
Registriert: 31 Okt 2010, 21:45

Re: Encodermotor - Anschlußbelegung

Beitrag von thkais » 13 Nov 2013, 09:41

Hallo,

ich bin mal so frei und antworte ;-)

Grundsätzlich ist alles beim Encoder-Motor 135484 für 9V ausgelegt.
grün = Masse
rot = +9V
schwarz = Ausgang
Es handelt sich um einen Open-Collector Ausgang, d.h. er schaltet gegen Masse durch und es wird ein externer Pull-Up Widerstand benötigt. Der Sensor darf mit max. 20 mA belastet werden, ein Pull-Up von 1k-10k gegen 9V funktioniert gut. Natürlich kann der Pull-Up auch an eine geringere Spannung gelegt werden - das erspart die Pegelwandlung.

Der 24V-Encoder-Motor hat tatsächlich einen Quadratur-Encoder, d.h über die Phasenverschiebung lässt sich die Richtung ermitteln (hier nicht mit Open-Collector sondern mit Push-Pull Endstufen).
Gruß
Thomas

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: Encodermotor - Anschlußbelegung

Beitrag von H.A.R.R.Y. » 13 Nov 2013, 10:04

Danke für die prompte Antwort.
H.A.R.R.Y.
[42] SURVIVE - or die trying

Masked
Beiträge: 500
Registriert: 18 Okt 2010, 18:19

Re: Encodermotor - Anschlußbelegung

Beitrag von Masked » 13 Nov 2013, 11:53

Verschoben, passt hier besser hin.
Grüße, Martin

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: Encodermotor - Anschlußbelegung

Beitrag von H.A.R.R.Y. » 13 Nov 2013, 12:19

Hi, mir ist da noch etwas eingefallen:

Die 9V-Versorgung: welchen Toleranzbereich hat die denn? Geht 3V bis 12V mit Funktion und ohne Schaden oder liegen die Grenzen enger?

Danke
H.A.R.R.Y.
[42] SURVIVE - or die trying

Benutzeravatar
Fischer-Micha
Beiträge: 106
Registriert: 15 Feb 2023, 17:27

Re: Encodermotor - Anschlußbelegung

Beitrag von Fischer-Micha » 07 Apr 2023, 18:35

Altes Thema... passt aber :)

ich möchte gerne die "modernen" roten Encoder Motoren am alten C64 Interface anschliessen.
Dieses wird eigentlich mit 6,8V betrieben.. und es geht aber auch 6-9V Motoren damit..

Die Eingänge E1-E8 sind ja "normalerweise" 5V
Der Encodermotor hat ja "open collector" Schaltung..

Die genannte 1k Ohm funktionieren bei mir nicht.. (da ich hier ja keine 9V sondern 5V benutze)
ich habe jetzt einfach 2 x 1k Ohm parallel geschaltet und mit 500 Ohm als Pull-Up Widerstand scheint es zu funktionieren..
DSCN0026.JPG
DSCN0026.JPG (2.5 MiB) 2160 mal betrachtet
spricht da irgendwas dagegen ?? als Software werde ich zuerst einmal die vom Trainings Roboter testen...
(da haben die Motoren ja die 32/Impuls Räder...)

Es wird anscheinend richtig gezählt, wenn der Nachlauf derzeit etwas hoch ist...
DSCN0034.JPG
DSCN0034.JPG (3.2 MiB) 2160 mal betrachtet

Benutzeravatar
uffi
Beiträge: 404
Registriert: 24 Jan 2014, 16:21
Wohnort: München

Re: Encodermotor - Anschlußbelegung

Beitrag von uffi » 07 Apr 2023, 19:08

Soweit ich weiß hat das C64 Interface an den Digitaleingängen 1kOhm Pull-down Widerstände gegen Masse. Deshalb funktioniert es bei Dir nicht mit 1kOhm-Pull-up. Besser wäre sicherlich, die Pull-down Widerstände auszubauen

Gruß, uffi

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 07 Apr 2023, 21:53

thkais hat geschrieben:
13 Nov 2013, 09:41
Hallo,

ich bin mal so frei und antworte ;-)

Grundsätzlich ist alles beim Encoder-Motor 135484 für 9V ausgelegt.
grün = Masse
rot = +9V
schwarz = Ausgang
Es handelt sich um einen Open-Collector Ausgang, d.h. er schaltet gegen Masse durch und es wird ein externer Pull-Up Widerstand benötigt. Der Sensor darf mit max. 20 mA belastet werden, ein Pull-Up von 1k-10k gegen 9V funktioniert gut. Natürlich kann der Pull-Up auch an eine geringere Spannung gelegt werden - das erspart die Pegelwandlung.

Der 24V-Encoder-Motor hat tatsächlich einen Quadratur-Encoder, d.h über die Phasenverschiebung lässt sich die Richtung ermitteln (hier nicht mit Open-Collector sondern mit Push-Pull Endstufen).
Danke für diese Info. Ich habe hier https://www.kreativekiste.de/encoder-mo ... o-tutorial eine falsche Belegung gefunden.

Ich versuche gerade, eine Positionssteuerung von Encodermotoren mit PID-Regler auf Arduino zu stricken. Ich zähle die Impulse mit Pin-Change-Interrupt
(0-1 und 1-0) hoch bzw. runter, je nachdem in welcher Richtung der Motor gedreht wird. Leider gehen mir ab und zu Pulse verloren, so dass sich der Ursprung bei mehreren Up-Down-Zyklen verschiebt. Noch keine Ahnung, woran das liegt.
Gibt es ein Musterprogramm für Arduino? Letztendlich möchte ich auch mehrere Motoren ansteuern. Da habt Ihr doch bestimmt schon was gemacht.

Übrigens: es scheint auch schwarze Encodermotoren zu geben. Die sind wohl etwas kräftiger und sollen "wettkampftauglich" sein. Was ist da der genaue Unterschied zu den Roten?

juh
Beiträge: 906
Registriert: 23 Jan 2012, 13:48

Re: Encodermotor - Anschlußbelegung

Beitrag von juh » 07 Apr 2023, 22:43

atzensepp hat geschrieben:
07 Apr 2023, 21:53
Leider gehen mir ab und zu Pulse verloren, so dass sich der Ursprung bei mehreren Up-Down-Zyklen verschiebt. Noch keine Ahnung, woran das liegt.
Gibt es ein Musterprogramm für Arduino?
Könnte hieran liegen: Warum Sparvarianten nicht gut sind. Die RotaryEncoder Library berücksichtigt das und tut bei mir gute Dienste.

vg
Jan

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 07 Apr 2023, 23:23

Hallo Juh,

würde das bedeuten, dass in den ft-Encodermotoren Sparversionen verbaut sind?
Die Library werde ich mir mal ansehen. War genau, was ich gesucht habe. Danke für den Link!

Ich habe mal einem grauen ft-Motor und einem 2-Kanal-Encoder (AEDS-962x) aus dem alten Office-Jet-Drucker einen PID-Positionsregler gebaut.
Die Kombination funktioniert schon sehr anständig und regelt sehr schnell. Allerdings ist der Motor vermutlich nicht kräftig genug für meinen Anwendungsfall. Es gibt praktisch keine Regelschwingungen wie bei den Power-Motoren. Wenn ich diese an den Aufbau "schnalle" entsteht wieder wildes Zittern. Es sei denn, ich gehe mit der Spannung runter auf 4.5V. Ich nehme an, dass im Power-Motor noch ein Getriebe ist, das Verzögerung und Schlupf mit einbringt.
EM1.JPG
EM1.JPG (1.21 MiB) 2065 mal betrachtet
Also Encoder-Motoren zeigen mit PID kein Zittern. Ich schließe daraus, dass man den Encoder vor einem Getriebe anbringen muss. Damit sind die Power-Motoren nicht optimal. Mit Power-Motoren kann man Positionierung machen, wenn man sie langsamer fährt.

Allerdings habe ich bei mir noch das Problem mit den verlorenen Pulsen bei den Encoder-Motoren. Oder habe ich da wogmöglich einen Achs-Schlupf?

Viele Grüße
Florian

PS: Datenblatt vom AEDS_962x https://www.farnell.com/datasheets/20481.pdf

juh
Beiträge: 906
Registriert: 23 Jan 2012, 13:48

Re: Encodermotor - Anschlußbelegung

Beitrag von juh » 08 Apr 2023, 01:23

atzensepp hat geschrieben:
07 Apr 2023, 23:23
würde das bedeuten, dass in den ft-Encodermotoren Sparversionen verbaut sind?
Die Library werde ich mir mal ansehen. War genau, was ich gesucht habe. Danke für den Link!
Nein, "Sparvarianten" im Link bezieht sich nicht auf die Hardware, nur auf den Algorithmus, der in den meisten Einführungen zu trivial abgehandelt wird. State-machine und polling sind zuverlässiger als Pegelauswertung von B bei Interrupt auf A. Die Library setzt das schon um und ist bewährt, daher habe ich sie auch bei I2Cwrapper und dem Quadraturencoder verwendet.

vg
Jan

Benutzeravatar
Fischer-Micha
Beiträge: 106
Registriert: 15 Feb 2023, 17:27

Re: Encodermotor - Anschlußbelegung

Beitrag von Fischer-Micha » 08 Apr 2023, 10:51

atzensepp hat geschrieben:
07 Apr 2023, 21:53
eine falsche Belegung gefunden.
naja.. was heißt falsche Belegung... ich selbst mache mit dem Arduino selbst nichts... der 10K Ohm Widerstand wirkt für mich aber etwas hoch gegriffen..

was "Fehl-Impulse" angeht,.. so muss man auch verstehen, wie ein "Industrie-Dreber" überhaupt funktioniert..!

das werden immer (mind.) 2 Spuren betrachtet,.. also einmal für A und einmal für B...
(diese sind 90 grad Phasenversetzt, daher bekommt man auch durch A/B Auswertung (wer kommt zuerst) automatisch auch eine Richtungserkennung geliefert..

in dem gezeigtem Foto sehe ich nur ein Strichrad (Bild ist an der Scheibe leider verschwommen)..
(die roten Encodermotoren von FT sind ja aber auch nicht "besser")

und das ist das Hauptproblem,... wenn ein "normales" Strichrad sich dreht, dann muss es irgendwann ja mal Stoppen,..
dabei kann einmal genau der letzte Strich womöglich "zittern",.. und dadurch bekommst du zuviele Signale...
oder, bei jeder neuen An-Fahrt, steht die Scheibe ja auf einem Strich/Schlitz, und genau die Breite kann ja genau gerade am "Kipppunkt" stehen, sodass dieser Weg bei jeder Bewegung sich aufaddiert...
=> das alles würde bei einer richtigen A/B Auswertung nicht passieren..

Deswegen machen die einfachen Fischertechnik Modelle ja immer eine "0-Null-Referenz-Fahrt" nach jedem Job,..
damit das System nach einem Durchgang wenigstens wieder auf Null stecht...

wenn du dir ein Testaufbau baust, wo ein Plotterstift immer von Pos1. nach Pos.2 fährt... kannst du ja "zuschauen" wie der Weg größer wird..

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 08 Apr 2023, 14:15

Hallo Micha,

ja, der verwendete Encoder ist ein A-B-Encoder. Die Teilung der Disk ist so fein, dass man sie nur unter der Lupe gut sehen kann.
es.JPG
es.JPG (1015.47 KiB) 1952 mal betrachtet
Wenn die Motoren zittern, kommen das etwa 10-30 Impulse.

Grüße
Florian

Karl
Beiträge: 2212
Registriert: 24 Sep 2016, 17:28

Re: Encodermotor - Anschlußbelegung

Beitrag von Karl » 08 Apr 2023, 15:01

Hallo Florian,
vielleicht für Fischertechnik übertrieben feine Auflösung der Strich-Disk.
Vielleicht mal jeden "X"ten Impuls auswerten.

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 08 Apr 2023, 16:23

Hallo,

die Schwingungen hängen sehr vom Motor und von der Spannung ab. Hier ein Beispiel eines starken (nicht-ft Motors), der bei 5 V betrieben wird.
PID.png
PID.png (74.88 KiB) 1926 mal betrachtet
Das System zeigt sehr starke Schwingungen, die ab etwa 5V einsetzen. Bei geringern Spannungen ist alles ruhig. Auch, wenn der PWM-Limit runter gesetzt wird. Evtl. sind das diese "limit cycle oscillations", von denen immer wieder berichtet wird (z.B. https://www.researchgate.net/publicatio ... e_approach oder https://link.springer.com/article/10.10 ... 020-0599-y)
Evtl. braucht man einen nichtlinearen PID-Controller oder halt einen stärkeren Motor, den man im unteren Bereich betreibt.

Grüße
Florian

Benutzeravatar
Fischer-Micha
Beiträge: 106
Registriert: 15 Feb 2023, 17:27

Re: Encodermotor - Anschlußbelegung

Beitrag von Fischer-Micha » 08 Apr 2023, 19:59

Hallo Florian...

danke fürs zeigen... :) eh wau.. hätte ich den letzten Multifunktionsdrucker doch nicht so einfach entsorgen sollen ;)

Laut dem Datenblatt ist die Doppel Gabelichtschranke ja als A/B Signal ausgestattet...
und dieses wertest du wirklich eindeutig als A/B Signal aus ?

Sprich: du bekommst eine eindeutige Richtungserkennung ??

und A ist immer gleich B (von der Anzahl).. ? (abgesehen wenn sich wieder "verzählt wird" ? (wenn es nicht schwingt)..

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 09 Apr 2023, 00:10

Fischer-Micha hat geschrieben:
08 Apr 2023, 19:59
Hallo Florian...

danke fürs zeigen... :) eh wau.. hätte ich den letzten Multifunktionsdrucker doch nicht so einfach entsorgen sollen ;)
Das ist nur ein Screenshot vom Arduino-Plotter.
Fischer-Micha hat geschrieben:
08 Apr 2023, 19:59
Laut dem Datenblatt ist die Doppel Gabelichtschranke ja als A/B Signal ausgestattet...
und dieses wertest du wirklich eindeutig als A/B Signal aus ?

Sprich: du bekommst eine eindeutige Richtungserkennung ??

und A ist immer gleich B (von der Anzahl).. ? (abgesehen wenn sich wieder "verzählt wird" ? (wenn es nicht schwingt)..
Ja, das habe ich mit dem Oszi angeschaut. Die Software ist im Wesentlichen daher: https://electricdiylab.com/arduino-pid- ... op-system/. Ich will nicht ausschließen, dass die sich hin- und wieder mal verzählt. Da sollte ich lieber die Library, auf die Jan hingewisen hat verwenden. Die Oszillationen kommen aber nicht vom Verzählen.

Die ft-Encodermotoren (bis auf die 24V-Typen) haben keine Richtungserkennung. Da muss man selber wissen, in welche Richtung sie sich bewegen. Da könnte ich mir vorstellen, dass es zu Schwierigkeiten kommt, wenn man die Motor-Richtung schlagartig umkehrt: Dann läuft der Motor wegen seiner Trägheit noch in eine Richtung und man zählt die Impulse falsch. Evtl. schaukeln sich die fehler bei den Oszillationen dann hoch. Da hiflt dann nur ein externer Refereznz-Impuls, der den Zählerstand dann wieder nullt.
Ob dieser Verzähl-Effekt bei den ft-Encodermotoren auftritt, müsste ich mit dem Quadratur-Encoder feststellen können.

Lieber wäre es mir, diese Zähl-Sache in einem IC zu haben. Als z.B. ein Quadratur-Decoder IC wie LS7366R oder den IC-MD von IC-Haus.
Oder noch einfacher ein Attiny mit Jan's Counter-Software.

Benutzeravatar
Fischer-Micha
Beiträge: 106
Registriert: 15 Feb 2023, 17:27

Re: Encodermotor - Anschlußbelegung

Beitrag von Fischer-Micha » 12 Apr 2023, 10:23

Mit der Schwingung ist natürlich komisch und störend ?!
atzensepp hat geschrieben:
09 Apr 2023, 00:10
Die ft-Encodermotoren (bis auf die 24V-Typen) haben keine Richtungserkennung. Da muss man selber wissen, in welche Richtung sie sich bewegen. Da könnte ich mir vorstellen, dass es zu Schwierigkeiten kommt, wenn man die Motor-Richtung schlagartig umkehrt: Dann läuft der Motor wegen seiner Trägheit noch in eine Richtung und man zählt die Impulse falsch
Bei dem alten Interface wird die Zählrichtung durch die Ansteuerung definiert und die Impulsüberwachung (Zählen) passiert auch noch eine
kurze Zeit, nachdem die Ansteuerung "weg genommen" wurde..
ich muss mit meinem roten Motoren mal ein Dauertest machen und schauen, wie weit sich die Mechanik "verfährt"...

was einen Arduino angeht,.. (ich selbst habe davon leider keine Ahnung),.. ist mir nur folgendes Video
positiv aufgefallen, hier ist die Programmierung (zwar ein Lego Motor,.. aber auch A/B Signal) sehr gut beschrieben und erklärt:

https://youtu.be/yeAyGiE1Fn0?t=187

hier werden auch die Programm-Zeilen erklärt.. vielleicht hilft dir das...

VG Micha

juh
Beiträge: 906
Registriert: 23 Jan 2012, 13:48

Re: Encodermotor - Anschlußbelegung

Beitrag von juh » 12 Apr 2023, 12:13

Fischer-Micha hat geschrieben:
12 Apr 2023, 10:23
was einen Arduino angeht,.. (ich selbst habe davon leider keine Ahnung),.. ist mir nur folgendes Video
positiv aufgefallen, hier ist die Programmierung (zwar ein Lego Motor,.. aber auch A/B Signal) sehr gut beschrieben und erklärt:

https://youtu.be/yeAyGiE1Fn0?t=187

hier werden auch die Programm-Zeilen erklärt.. vielleicht hilft dir das...
Das ist genau die "Sparvariante" wie man es nicht machen sollte, s. meine Links oben.

vg
Jan

atzensepp
Beiträge: 660
Registriert: 10 Jul 2012, 21:40
Wohnort: Uttenreuth

Re: Encodermotor - Anschlußbelegung

Beitrag von atzensepp » 12 Apr 2023, 22:47

Nach weiteren Versuchen neige ich zu dem Schluss, dass die normalen Encoder-Motoren mit nur einem Impulsausgang für eine PID-Regelung nicht geeignet sind. Hat das eigentlich schon jemand gemacht? Wenn ja, würde mich interessieren wie.

Ich habe einen Encoder-Motor mit dem feinen Quadratur-Encoder geregelt und das vom Encoder kommende Signal ausgewertet:
Dabei habe ich die Zählrichtung bei Ausgabe des PWM-Wertes an den Motor je nach Vorzeichen geändert.
Es hat sich herausgestellt, dass der Single-Encoder-Wert sich immer sehr stark verschiebt, wohingegen der Quadratur-Wert genau passt. Auch der Achsenwinkel wird gut eingehalten. Ich betreibe den ft-Encoder mit 5V. Ist das evtl. zu wenig für ein stabiles Signal?
Ich wiederhole meine Vermutung, dass Fehlzählungen der Impulse an den Umkehrpunkten auftreten, die sich im Laufe der Zeit summieren.

Des weiteren habe ich einen Motor geöffnet und festgestellt, dass man mit einem weiteren Hall-Sensor, den man "dazuschnallt" auch ein Quadratursignal erzeugen kann. (Ich hatte zufällig einen Hall Magnetfeld Sensor, A3141 für Arduino zur Hand; der liefert schon Digitalsignal)
Die neueren Motoren (mit der Ausbuchtung hinten) haben ein Board, bei dem ein Pfostenfeld-Pin übrig ist, über den man das zweite Signal rausführen könnte.

Eine weitere Erfahrung ist, dass meine magnetischen AS5600-Encocder offenbar stark fluktuieren, was auch die Regel-Schwingungen "begünstigt".

Hier mein vorläufiges Fazit:
1. PID mit ft-Encoder-Motoren funktioniert bei mir nicht - ich lasse mich gerne eines Besseren belehren
2. AS5600-Encoder-Signale fluktuieren und begünstigen daher Regelschwingungen
3. Eine Regelung mit einem externem (optischen) Quadratur-Encoder liefert brauchbare Ergebnisse. D.h. auch normale Motoren lassen sich damit regeln
4. Die ft-Encodermotoren könnten durch Einbau eines weiteren Hall-Sensors ein Quadratur-Signal liefern
Offener Encodermotor mit zusätzlichem Hall-Sensor für Quadratursignal. Der Hall-Sensor muss nur in die Nähe gebracht werden und so, dass die Phasen der Signale um 90 Grad auseinander sind.
Offener Encodermotor mit zusätzlichem Hall-Sensor für Quadratursignal. Der Hall-Sensor muss nur in die Nähe gebracht werden und so, dass die Phasen der Signale um 90 Grad auseinander sind.
EM2.JPG (1.38 MiB) 1516 mal betrachtet
Wie betreibt man eigentlich Encoder-Motoren in ft-Modellen?
Motor ein, bis Anzahl von gewünschten Impulse erreicht ist und dann schlagartig ausschalten?
Wenn man die Zählrichtung umdreht, wenn sich der Motor nicht bewegt, sollte es besser sein.

Oder kann man die Drehrichtung irgendwie anders erkennen?

Antworten