Seite 1 von 1

Encoder auswerten

Verfasst: 12 Jun 2019, 05:10
von AchimMeyer
Hallo zusammen,
ich heiße Achim, bin neu hier, gelernter Kommunikationselektroniker, aber seit 25 Jahren Betriebselektriker bei einem Automobilzulieferer.

Ich habe hier die Fischertechnik Fabrik Simulation 24V ohne Steuerung/SPS stehen.
Sie ist für Ausbildungszwecke gedacht und soll an verschiedene Steuerungen (Siemens S7, Logo, Easy, Raspberry Pi,....) angeschlossen werden können.
Die theoretische Planung ist soweit fertig.... bis auf die Encoder der Motoren. (Das Funktionsprinzip der Encoder ist mir hinreichend bekannt). Die Auswertung der Encoder würde ich gerne extern, also nicht in den (Haupt)Steuerungen machen.
Je nach Steuerung und/oder Programmierung hab ich zu viel Sorge, das Schritte verlohren gehen.
Die Werte sollen dann über I2C oder parallel an die Steuerungen übertragen werden.

Gibt es jemand, der das schon gemacht hat? Vorschläge?

Ich schwanke im Moment zwischen einem ESP8266 oder einer (geätzten) Platine mit D-Flipflops für die Auswertung.

Hat jemand noch weitere Ideen?

Danke für Eure Tips,

Achim

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 13:11
von uffi
Man könnte einfach einen Arduino Nano nehmen und den die Schritte über Interrupts zählen lassen. Den Arduino kann man auch als I2C- oder SPI- Slave programmieren.

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 13:12
von uffi
Clones aus China bekommt man bei Ali-Express für ca 1,30 Euro/Stück Versandkostenfrei.

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 14:32
von juh
Aber eine Arduino-Lösung wäre ja nicht anders als per ESP8266, nur dass der ein gutes Stück moderner (schneller, mehr Speicher, polyvalentere Pins) ist.

Achim, willst Du nur die Zählfunktionalität auslagern oder gleich den Motortreiber mit? Sowas würde mir nämlich vorschweben, ein kombinerter Encoder und Motortreiber, der das low-level Interrupt und PWM Zeugs abkapselt und nach Außen per I2C nur Funktionen wie "konstante Geschwindikeit X", "fahre X Schritte" etc., ggf. mit Beschleunigungsrampen, anbietet. In diese Richtung hatte mich früher schon mal ein wenig umgesehen, vielleicht bringt Dich das noch auf neue Ideen:

https://www.robot-r-us.com/vmchk/motor- ... coder.html - sehr interessant, aber wohl schon retired

https://www.hackster.io/Saimon/i2c-encoder-v2-377670 - für manuelle Encoder, müsste man sehen, ob die schnell genug sind

https://hackaday.io/project/158429-smar ... r-robotics - dummerweise hardwareseitig fest mit einem N20 Motor gekoppelt

Ich meine, es gab auch dezidierte Zähler-Chips mit I2C, konnte ich auf Anhieb aber nicht mehr finden.

Und Frans (fotoopa) hätte sicher noch tolle Lösungen auf FPGA-Basis auf Lager... ;-)

lg und viel Erfolg
Jan

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 17:38
von davidrpf
Hallo zusammen,

bezüglich der Arduino Boards sollte noch gesagt werden, dass viele Boards nur einige wenige (meist zwischen 2 und 4) der I/O Pins tatsächlich als Interrupts für Encoder nutzen können. Der ESP hat diese Restriktion afair nicht. Ein Upgrade auf einen modernen ESP32 lohnt sich sicherlich, die gibts auch für unter 10€ aus China.

Gruß
David

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 18:12
von MasterOfGizmo
davidrpf hat geschrieben: bezüglich der Arduino Boards sollte noch gesagt werden, dass viele Boards nur einige wenige (meist zwischen 2 und 4) der I/O Pins tatsächlich als Interrupts für Encoder nutzen können.
Welche haben denn da solche Beschränkungen?

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 18:32
von davidrpf
Eine Übersicht gibt es hier: https://www.arduino.cc/reference/en/lan ... interrupt/

Wobei man dazu sagen muss, dass das diejenigen sind, denen eine eigene ISR zugeordnet werden kann. Einfache Pin Change Interrupts kann man mit etwas Tricksen auch für die übrigen Pins erhalten, da muss nur in der ISR geklärt werden, welcher Pin den Interrupt ausgelöst hat: https://playground.arduino.cc/Main/PinChangeInterrupt/

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 19:26
von fishfriend
Hallo...
nur so wegen dem Lernen: Selberbauen? ...
Und einen I2C Port Expander nehmen und einen Zähler IC (seriell-parallel) nehmen und den dann abfragen?
Gruß
fishfriend
Holger Howey
PS
Ein Arduino Mega hat drei interne Zähler.

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 22:13
von AchimMeyer
fishfriend hat geschrieben:Hallo...
nur so wegen dem Lernen: Selberbauen? ...
Und einen I2C Port Expander nehmen und einen Zähler IC (seriell-parallel) nehmen und den dann abfragen?
Gruß
fishfriend
Holger Howey
PS
Ein Arduino Mega hat drei interne Zähler.
Bauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben.

Wir haben im zweiten Lehrjahr ein Labornetzteil entwickelt. Heute können die kein Widerstandsnetzwerk auflösen, wenn sie frisch aus der Lehre sind :-(

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 22:16
von AchimMeyer
Mal doof in die Runde:
Ob jetzt ESP32, ESP8266 oder Arduino: Warum brauche ich einen Interupt? Ich kann doch zwei "normale" Eingänge nehmen und die abfragen. Oder etwa nicht???

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 22:49
von Bjoern
Wenn du normale Eingänge nimmst, musst du schnell genug pollen, um Low und High erkennen zu können.

Dann kannst du natürlich auch normale Eingänge nutzen. Musst dann eben selber zählen. Beim Interrupt kommt bei jeder passenden Flanke eben der Aufruf, du machst dein Inkrement und machst den Interrupt wieder scharf.

Björn

Re: Encoder auswerten

Verfasst: 12 Jun 2019, 23:56
von juh
Ergänzend zu Björn: Es kommt halt drauf an, was der µC außer dem Zählen noch machen soll. I2C-Kommunikation z.B. braucht ja auch ihre Zeit. Wenn man per polling zählt, muss man halt gewährleisten, dass man zwischendurch keinen Puls verpasst. D.h. alles außer Zählen darf nicht länger dauern als die minimale Dauer zwischen zwei Flanken. Lässt man das Zählen den Interrupt erledigen, muss man sich darum nicht weiter kümmern.

lg
Jan

Re: Encoder auswerten

Verfasst: 13 Jun 2019, 00:07
von Karl
Bauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben
Wenn Sie schon wissen wie, bitte die Anleitung hier geben bekannt. Vielleicht interessiert es
jemand die Hardware nachzubauen. Attraktiver wäre es, die Sache erstmal selbst umzusetzen
und den Erfolg hier mitzuteilen. Die meisten hier im Forum sind nur Hobbyelektroniker.
Möglich wäre es auch erstmal auf einem Steckbrett. ;)

Re: Encoder auswerten

Verfasst: 13 Jun 2019, 16:49
von AchimMeyer
Karl hat geschrieben:
Bauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben
Wenn Sie schon wissen wie, bitte die Anleitung hier geben bekannt. Vielleicht interessiert es
jemand die Hardware nachzubauen. Attraktiver wäre es, die Sache erstmal selbst umzusetzen
und den Erfolg hier mitzuteilen. Die meisten hier im Forum sind nur Hobbyelektroniker.
Möglich wäre es auch erstmal auf einem Steckbrett. ;)
Kann ich gerne machen. Dafür muss mein Stift aber erstmal von seinen Lehrgängen zurück sein. Und dann wird der da ein paar Wochen dran sitzen.
Wenn alees klappt kann ich das hier schreiben.

>>>> und wenns nicht klappt melde ich mich sowieso :-)

Re: Encoder auswerten

Verfasst: 13 Jun 2019, 17:07
von Karl
Dankefür die nette Antwort. Wird sicherlich ein paar Foristen hier im Forum erfreuen.
Ähm.., "Stift", darf man es heute wieder sagen ?

Re: Encoder auswerten

Verfasst: 13 Jun 2019, 22:44
von AchimMeyer
Er kann sich ja beschweren..... ;-)

Einer hat mal angemerkt, das ich ihn nie lobe. Hab ich ihm gesagt: "Wenn ich nichts sage, soll es dir Lob genug sein" :-)

Er hats als Spaß verstanden, wie´s auch gemeint war.

Re: Encoder auswerten

Verfasst: 17 Jun 2019, 17:05
von AchimMeyer
Hier ein Link zu einem Hardware-Encoderzähler. In dem Link sind zwar die Verbindungen zwischen den beiden Zähl-IC falsch gezogen. Aber das wird weiter unten beschrieben.

https://translate.googleusercontent.com ... 3J_u5KKvsA