Archiv verlassen und diese Seite im Standarddesign anzeigen : Incremental Drehgeber Funktioniert nicht E38S6G5-600B-G24N
Hi,
Nun habe ich den schon 2 mal gekauft und habe immer das selbe Ergebnis.
Es geht um den E38S6G5-600B-G24N
Den wollte ich per Arduino auslesen. Das Prinzip ist mir klar, wie ein Drehgeber funktionieren soll, aber dieser macht gar nichts.
0.06V kann ich zu VCC messen und 0.16V zu GND, wenn ich Weiß oder Grün messe. Egal wie ich drehe, es bleibt gleich.
Normale Arduino sketches die von vielen Youtubern für solche Encoder gegeben werden, reagieren nicht auf den Encoder.
Ist dieser Encoder eine ganz andere Art? Es gibt ja nicht mal nen Datasheet dazu. Ich hatte eins mal geöffnet. Ein Magnet ist über ein Chip. Also hier ist keine Lichtschranke genutzt worden.
oberallgeier
19.01.2022, 18:25
.. E38S6G5-600B-G24N .. aber dieser macht gar nichts .. 0.06V kann ich zu VCC messen und 0.16V zu GND ..Du hast ne Versorgung dran? Nach nem (ersten) Klick (https://ram-e-shop.com/product/dc5v-24v-600p-r-encoder-incremental-rotary-360-pulses-ab-2-phase-6mm-shaft/) im www gabs diese Liste:
DC5V-24V 600P/R Encoder Incremental Rotary 360 Pulses/R AB 2 Phase 6mm Shaft Features :
Part Number: E38S6G5-600B-G24N
600 p/r
Power source: DC5-24V
Shaft: 6*13mm
Size: 38*35.5mm
Output : AB 2phase output rectangular orthogonal pulse circuit, the output for the NPN open-collector output type
Maximum mechanical speed: 5000 R / min
Response frequency: 0-20KHz
Cable length: 1.5 meter
Notice: AB 2phase output must not be directly connected with VCC, otherwise, will burn the output triode, because different batches, and may not have the terminal
Holomino
19.01.2022, 18:36
...und in Oberallgeiers Liste steht was von Open Collector.
Also jeweils ein Pullup (typ. 1..10k) an die Ausgänge?
Versuch macht kluch.
Jetzt bin ich etwas stutzig geworden mit der 5 Volt. Nun habe ich es an die 12V angeschlossen und nun kann ich mit den Multimeter genau das messen, was ein Encoder auch machen soll. Weiß und Grün Wechsel von 0 auf 12V Wenn ich auf VCC messe. Auf GND sind es 0 bis 0.5 Volt. Je nach dem wie der Encoder steht.
Also, das funktioniert schon mal. Nur wie schließe ich das jetzt an das Arduino Leonardo Board an. Einfach nur den Weißen und Grünen an die Pin 2 und 3 hat schon mal nicht funktioniert. Interner Pullup ist im Board ein programmiert.
Da steht doch, dass die Ausgänge ein Rechtecksignal liefern. Und wenn das über Open Collector funktioniert, muss ein Pull-Up-Widerstand da dran. Arduino: INPUT_PULLUP. Wenn Grün und Weiß die beiden Kanäle sind, dann werden beide an einen Digitaleingang angeschlossen. Dann steht dort, es gibt eine Frequenz von 0 - 20khz. Ich würde bei dem Teil einfach eine Betriebsspannung von 5V anschließen, einen 10k-Widerstand gegen +5V und von dort weiter an einen Ausgang (Grün oder Weiß); diesen Punkt an einem Oszi anschließen und schauen, was es für ein Signal gibt. Dann sehe ich auch, ob das Teil funktioniert. Wenn die Frequenz variiert muss man die am Digitalpin des Arduino bestimmen.
Ich glaub ich muss mir auch endlich Mal so ein oszi anschaffen. Der encoder läuft leider nicht mit 5v. Den Input pullup nutze ich. Aber warum der arduino nicht reagiert, ist mir Grad rätselhaft. Da reicht mein Wissen nicht so weit aus.
Für solche Zwecke reichen einfache Oszi aus (DSO Shell Oszilloskop zum Beispiel). Man kann zumindest solche Frequenzsignale sichtbar machen. Die Dinger sind nicht so teuer und schnell lieferbar.
Arduino-Pin 2 und 3 sagt mir leider nicht so viel, am ATmega328P-PU ist Pin 2 und 3 RX und TX. Aber da gibt es oft unterschiedliche Bezeichnungen für die Pins. Es gibt einen Befehl mit dem kann die Pulsweite bestimmt werden, also zum Beispiel zwischen zwei HIGH-Signalen. Ob das brauchbar ist, hängt vom Anwendungsfall und vom Signal ab.
021aet04
20.01.2022, 10:12
Wenn du den DG schon offen hast, könntest du über die Bauteile eventuell die Schaltung nachvollziehen.
Danach Datenblätter der Teile studieren. Ich vermute das ein Spannungsregler drauf ist und deswegen das IC nicht mehr richtig funktioniert (Spannung zu niedrig).
Du könntest statt Pullup auch Vorwiderstände und LEDs einsetzen, dann siehst du, wenn du langsam drehst, ob es flackert. Wenn du drehst sollte aber auch die Helligkeit auf etwa die Hälfte absinken.
Ein weiterer Test wäre mit dem Multimeter, dort sollte ungefähr die halbe Spannung anliegen wenn du drehst.
Mfg Hannes
oberallgeier
20.01.2022, 11:23
.. wie schließe ich das jetzt an das Arduino Leonardo .. Weißen und Grünen an die Pin 2 und 3 hat schon mal nicht funktioniert ..Zur Präzisierung :
benutzes Board ist dieses (Arduino Leonardo (https://duino4projects.com/wp-content/uploads/2013/04/Ardunio_leonardo_pinout.jpg)) -bitte bestätige das- und bestätige die von Dir genannten Pin-Nummern. Stimmen die mit diesem Pinout überein? Im Pinout hat Pin 2 die Bezeichnung D1 (INT1) und Pin3 heißt D0 (INT0) -bitte bestätige das!
.. Einfach nur den Weißen und Grünen an die Pin 2 und 3 hat schon mal nicht funktioniert ..Ist ja auch klar. Du MUSST den arduino UND den Drehgeber mit Spannung versorgen UND dabei MÜSSEN beide GND - bei arduino UND Drehgeber - verbunden sein. Andernfalls funktioniert das schon mal elektrisch nicht.
Da ich jetzt nochmal die Zeit hatte in Ruhe alles zu prüfen, funktioniert fast alles. Wie gesagt, die Spannung war zu niedrig, also 5V reicht nicht aus, obwohl es so angegeben war und habe es mit 12V angeschlossen, dazu beide GND vom Netzteil mit Arduino verbunden.
Ich bekomme interrupts, leider geht die Zahl nicht in die richtige Richtung, sondern der weis nicht wo er hin soll und bleibt bei jeder Richtung fast in der gleichen Zahl stehen. Wird nur ein Kabel, Grün oder Weis angeschlossen, dann bewegt sich die Zahl in die Richtung, wofür der Pin programmiert ist. Es ist zu bemerken, dass die Interrupts ordentlich ausgelöst werden, aber leider nicht, wenn beide Kabel stecken. Also es ist nicht möglich Hoch oder Runter die Zahl zu bewegen.
Hat das jetzt was mit der Frequenz zu tun?
Diesen Sketch habe ich hochgeladen.
https://electricdiylab.com/how-to-connect-optical-rotary-encoder-with-arduino/
oberallgeier
21.01.2022, 00:09
.. geht die Zahl nicht in die richtige Richtung .. Diesen Sketch habe ich hochgeladen ..Is nu einfach ins Blaue geraten (schon kurz nach Mitternacht, bin total müde): der Sketch hat ne Unstimmigkeit: auf diesem Bild
......35733
steht oben der Text
......WHITE (OUT A): PIN3
......GREEN (OUT B): PIN2
Aber das Bild mit Encoder und Platine hat andere Leitungsfarben; der Text dagegen stimmt mit dem Encoderfoto (oberhalb) überein. Langer Rede kurzer Sinn - sind vielleicht Deine Kabel GRÜN und WEIß vertauscht? Steck die doch mal um und probiers noch Mal.
oberallgeier
25.01.2022, 16:12
Läufts ? 1234567890
Also ehrlich gesagt, ich hatte mal in den Code geschaut und mir versucht die beabsichtigte Funktion zu erklären. Was ich gesehen habe ist eine Funktion für Interrupts, die auf dem inneren Lochkreis ausgeführt wird und eine Funktion für den äußeren Lochkreis. Der äußere Kreis hat mehr Aussparungen, als der innere Kreis. Egal, in welcher Richtung man da dreht. Für den kleineren Kreis wird der Counter dekrementiert und für den äußeren inkrementiert. Da der äußere Kreis mehr Aussparungen hat, wird also mehr inkrementiert, als dekrementiert; in jeder Drehrichtung. Das schien mir etwas merkwürdig.
oberallgeier
27.01.2022, 15:31
.. Der äußere Kreis hat mehr Aussparungen, als der innere .. kleineren Kreis wird der Counter dekrementiert .. für den äußeren inkrementiert ..Das ist allerdings merkwürdig. Wo kannst Du sehen, dass der Drehgeber von Dj EKI zwei Signalkreise hat? Ich kenne incrementelle Encoder (fast) nur in der Bauweise mit einer Signalspur (~kreis). Die wird für ne Richtungserkennung mit zwei Sensoren abgefragt, die mit nem gewissen Phasenwinkel versetzt sind; üblich ist ne viertel Phase. Der Versatz ermöglicht eine Richtungserkennung und wenn der genau ist, kann die Auflösung erhöht werden.
Ein incrementeller (Dreh-) Kodierer mit zwei Signalspuren unterschiedlicher Teilung - wie macht denn das Sinn? Ausser wenn man ne Nullstelle braucht, ne zweite Auflösung oder so was.
Da wurde doch der Code verlinkt und dazu gab es eine bildhafte Darstellung, ich meine auf der Seite, wo der Code zu finden ist. Vielleicht habe ich da auch was falsch verstanden. Weiß ich nicht.
Ja, auf der Seite, habe nochmal geschaut. So wie ich das lese, soll das dort eine allgemeine Erklärung zur Funktionsweise eines solchen Encoders sein.
Hier noch mal: https://electricdiylab.com/how-to-connect-optical-rotary-encoder-with-arduino/
oberallgeier
28.01.2022, 00:18
Da wurde doch der Code verlinkt und dazu gab es eine bildhafte Darstellung ..Diese Seite, den Code und die Darstellung kenne ich. Dessen Funktion mit zwei verschiedenen Informationsspuren kommt mir untypisch vor mit ihren zwei unterschiedlichen Signalspuren . . .
Ich kenne optische Drehencoder z.B. aus Mausrädern, aus eigenen Motor(umbauten) mit Drehzahlmessung und -regelung, kenne magnetische Drehencoder von meinen Minimotörchen usf. Im Wesentlichen funktionieren die alle so, wie DigiKey (ein namhafter Elektronikhändler) in diesem Artikel beschreibt (https://www.digikey.de/de/articles/intelligence-comes-to-the-commutation-encoder) mit diesem Bildchen
......https://www.digikey.de/-/media/Images/Article%20Library/TechZone%20Articles/2015/June/Intelligence%20Comes%20to%20the%20Commutation%20En coder/article-2015june-intelligence-comes-to-fig2.jpg?la=en&ts=1492f0ff-6b10-47f7-b9d9-3db89442737a
......© DigiKey
......
und die machen Drehzahl und Drehrichtung mit einer Informationsspur und zwei um eine halbe Phase versetzten Abtastern. Manchmal noch mit nem Umdrehungsindex.
Na ja, vermutlich gibts auch andere Lösungen.
Nachtrag: die im Post #15 zitierte "allgemeine Erklärung zur Funktionsweise" hat sicherlich Probleme: u.a. Doppeldeutigkeit bei (zu) nahem (Winkel-)Abstand zweier "übereinander" liegender Signalöffnungen uam und damit Unklarheiten insbes. bei Drehrichtungsumkehr. Auch die genannte unterschiedliche Lochanzahl von Innen- und Aussenspur wäre Unfug - vor allem wenn eine Drehrichtung schneller zählt als die andere.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.