Encoder auswerten

Für Microcontroller und sonstige "echte" Technik-Themen, die sonst nichts mit ft zu tun haben
Everything technical that has nothing to do with ft
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Encoder auswerten

Beitrag von AchimMeyer » 12 Jun 2019, 05:10

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

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

Re: Encoder auswerten

Beitrag von uffi » 12 Jun 2019, 13:11

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.

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

Re: Encoder auswerten

Beitrag von uffi » 12 Jun 2019, 13:12

Clones aus China bekommt man bei Ali-Express für ca 1,30 Euro/Stück Versandkostenfrei.

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

Re: Encoder auswerten

Beitrag von juh » 12 Jun 2019, 14:32

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

davidrpf
Beiträge: 252
Registriert: 14 Jul 2015, 14:27
Kontaktdaten:

Re: Encoder auswerten

Beitrag von davidrpf » 12 Jun 2019, 17:38

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
Polarkoordinaten Plotter https://youtu.be/u6XwKxZuxqk
Autofabrik: https://youtu.be/mX9JWcca6kQ

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: Encoder auswerten

Beitrag von MasterOfGizmo » 12 Jun 2019, 18:12

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?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

davidrpf
Beiträge: 252
Registriert: 14 Jul 2015, 14:27
Kontaktdaten:

Re: Encoder auswerten

Beitrag von davidrpf » 12 Jun 2019, 18:32

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/
Polarkoordinaten Plotter https://youtu.be/u6XwKxZuxqk
Autofabrik: https://youtu.be/mX9JWcca6kQ

Benutzeravatar
fishfriend
Beiträge: 1791
Registriert: 26 Nov 2010, 11:45

Re: Encoder auswerten

Beitrag von fishfriend » 12 Jun 2019, 19:26

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.
ft Riesenräder PDF: ftcommunity.de/knowhow/bauanleitungen
TX-Light: Arduino und ftduino mit RoboPro

AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Re: Encoder auswerten

Beitrag von AchimMeyer » 12 Jun 2019, 22:13

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 :-(

AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Re: Encoder auswerten

Beitrag von AchimMeyer » 12 Jun 2019, 22:16

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???

Benutzeravatar
Bjoern
Beiträge: 630
Registriert: 04 Jan 2018, 12:34

Re: Encoder auswerten

Beitrag von Bjoern » 12 Jun 2019, 22:49

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
https://gundermann-software.de/shop/
Der Shop für viele Community Projekte

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

Re: Encoder auswerten

Beitrag von juh » 12 Jun 2019, 23:56

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

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

Re: Encoder auswerten

Beitrag von Karl » 13 Jun 2019, 00:07

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. ;)

AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Re: Encoder auswerten

Beitrag von AchimMeyer » 13 Jun 2019, 16:49

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 :-)

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

Re: Encoder auswerten

Beitrag von Karl » 13 Jun 2019, 17:07

Dankefür die nette Antwort. Wird sicherlich ein paar Foristen hier im Forum erfreuen.
Ähm.., "Stift", darf man es heute wieder sagen ?

AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Re: Encoder auswerten

Beitrag von AchimMeyer » 13 Jun 2019, 22:44

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.

AchimMeyer
Beiträge: 6
Registriert: 12 Jun 2019, 04:42

Re: Encoder auswerten

Beitrag von AchimMeyer » 17 Jun 2019, 17:05

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

Antworten