Encoder auswerten
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Encoder auswerten
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
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
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
Clones aus China bekommt man bei Ali-Express für ca 1,30 Euro/Stück Versandkostenfrei.
Re: Encoder auswerten
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...![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
lg und viel Erfolg
Jan
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...
![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
lg und viel Erfolg
Jan
Meine 3D-Designs für fischertechnik: www.printables.com/social/202816-juh www.thingiverse.com/juh
Re: Encoder auswerten
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
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
- MasterOfGizmo
- Beiträge: 2720
- Registriert: 30 Nov 2014, 07:44
Re: Encoder auswerten
Welche haben denn da solche Beschränkungen?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.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32
Re: Encoder auswerten
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/
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/
- fishfriend
- Beiträge: 1794
- Registriert: 26 Nov 2010, 11:45
Re: Encoder auswerten
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.
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
TX-Light: Arduino und ftduino mit RoboPro
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Re: Encoder auswerten
Bauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben.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.
Wir haben im zweiten Lehrjahr ein Labornetzteil entwickelt. Heute können die kein Widerstandsnetzwerk auflösen, wenn sie frisch aus der Lehre sind
![Traurig :-(](./images/smilies/icon_e_sad.gif)
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Re: Encoder auswerten
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???
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
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
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
Der Shop für viele Community Projekte
Re: Encoder auswerten
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
lg
Jan
Meine 3D-Designs für fischertechnik: www.printables.com/social/202816-juh www.thingiverse.com/juh
Re: Encoder auswerten
Wenn Sie schon wissen wie, bitte die Anleitung hier geben bekannt. Vielleicht interessiert esBauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben
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.
![Zwinkern ;)](./images/smilies/icon_e_wink.gif)
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Re: Encoder auswerten
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.Karl hat geschrieben:Wenn Sie schon wissen wie, bitte die Anleitung hier geben bekannt. Vielleicht interessiert esBauen lassen: Ja. Aber die Anleitung muss ich schon dazu geben
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.
Wenn alees klappt kann ich das hier schreiben.
>>>> und wenns nicht klappt melde ich mich sowieso
![Lächeln :-)](./images/smilies/icon_e_smile.gif)
Re: Encoder auswerten
Dankefür die nette Antwort. Wird sicherlich ein paar Foristen hier im Forum erfreuen.
Ähm.., "Stift", darf man es heute wieder sagen ?
Ähm.., "Stift", darf man es heute wieder sagen ?
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Re: Encoder auswerten
Er kann sich ja beschweren..... ![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
Einer hat mal angemerkt, das ich ihn nie lobe. Hab ich ihm gesagt: "Wenn ich nichts sage, soll es dir Lob genug sein"![Lächeln :-)](./images/smilies/icon_e_smile.gif)
Er hats als Spaß verstanden, wie´s auch gemeint war.
![Zwinkern ;-)](./images/smilies/icon_e_wink.gif)
Einer hat mal angemerkt, das ich ihn nie lobe. Hab ich ihm gesagt: "Wenn ich nichts sage, soll es dir Lob genug sein"
![Lächeln :-)](./images/smilies/icon_e_smile.gif)
Er hats als Spaß verstanden, wie´s auch gemeint war.
-
- Beiträge: 6
- Registriert: 12 Jun 2019, 04:42
Re: Encoder auswerten
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
https://translate.googleusercontent.com ... 3J_u5KKvsA