Forum: Mikrocontroller und Digitale Elektronik Drehencoder full step - half step


von Oliver R. (oliver_r)


Lesenswert?

Hallo zusammen,

ich habe hier ein Gerät bei dem ein wichtiger Eingabe-Drehencoder 
spinnt. Kurz gesagt, über etwa eine halbe Umdrehung gibt er fehlerhafte 
Pulse aus, so dass der Microcontroller die Drehung nicht registriert. 
Also ungefähr so: Drehe ich von 12 Uhr auf 6 Uhr zählt er brav hoch. 
Drehe ich dann weiter von 6 Uhr wieder auf 12 Uhr zählt er einfach 
nicht.
Man kann den Drehknopf sogar irgendwie zur Seite drücken, dann zählt er 
an der Stelle manchmal. Also der Encoder ist irgendwie hin.
Wichtig: Der Encoder ist ein Click-Encoder mit so etwa 25-30 Clicks pro 
Umdrehung.

Jetzt habe ich mich mal reingeschraubt und den Encoder ausgemessen und 
da sieht man, die AB-Signale liegen sehr knapp beisammen. Also kaum geht 
der A hoch kommt auch gleich schon der B. Das ist dem yC wahrscheinlich 
zu schnell.
Also bei halbwegs gleichmäßigem Drehen macht der nicht:
1
_AAAAAAAAAAAA____________AAAAAAAAAAAAAA_________
2
_____BBBBBBBBBBBBBB____________BBBBBBBBBBBB_____

Sondern eher:
1
_AAAAAAAAAAAA____________AAAAAAAAAAAAAA_________
2
__BBBBBBBBBBBB____________BBBBBBBBBBBBBB________

So jetzt habe ich mal probeweise eine EC11 Encoder von Amazon, den ich 
herumliegen hatte dran gelötet und siehe da. Alles funktioniert FAST 
prächtig. Auch bei schnellem Drehen verliert der yC jetzt keine Schritte 
mehr.
ABER er überspringt welche. Warum? Der original Encoder macht bei jedem 
Click einen HALBEN Schritt. Also:
1
_AAAAAAAAAAAA____________AAAAAAAAAAAA_________
2
__BBBBBBBBBBBB____________BBBBBBBBBBBB________
3
       click      click      click       click

Mein EC11 Encoder macht bei jedem Click einen VOLLEN Schritt. Also:
1
_AAAAAAAAAAAA____________AAAAAAAAAAAAAA_______
2
______BBBBBBBBBBBBBB____________BBBBBBBBBBBB__
3
       click                     click

Wenn ich also auf meinem EC11 Encoder einen Click weiter drehe, zählt 
der yC 2 Schritte.

Jetzt könnte ich das natürlich mit einem ATtiny85 halbieren. Ich könnte 
aber auch einfach einen passenden Encoder kaufen, der pro Click nur 
einen halben Schritt ausgibt. Aber wie findet man so etwas? Wie heißen 
diese Dinge? Wie erkenne ich das im Datenblatt?

Herzlichen Dank für eure Hilfe.

von c-hater (Gast)


Lesenswert?

Oliver R. schrieb:

> Wenn ich also auf meinem EC11 Encoder einen Click weiter drehe, zählt
> der yC 2 Schritte.

Dann taugt der Decoder offensichtlich rein garnix. Nimm' einen anderen. 
Ist easy, musst ja nur Software auszutauschen.

von Oliver R. (oliver_r)


Lesenswert?

Nein, es ist nicht ein Fehler des Decoders. Der arbeitet einwandfrei. 
Der Encoder muss ein anderer sein. Die Software von dem Teil kann ich 
nicht ändern.

von Wolfgang (Gast)


Lesenswert?

Oliver R. schrieb:
> ich habe hier ein Gerät bei dem ein wichtiger Eingabe-Drehencoder
> spinnt.

Ist innen alles sauber. Falls der Encoder optisch arbeitet, können Öl 
und Staub stören, falls er mit mechanischen Kontakten arbeitet, können 
die Kontakte verdreckt/korrodiert sein.

von c-hater (Gast)


Lesenswert?

Oliver R. schrieb:

> Nein, es ist nicht ein Fehler des Decoders. Der arbeitet einwandfrei.

Das ist doch offensichtlicher Schwachsinn! Er arbeitet offensichtlich 
eben nicht einwandfrei, sondern grob falsch! Er ist also entweder von 
Haus aus defekt oder zumindest falsch konfiguriert.

von Oliver R. (oliver_r)


Lesenswert?

Das Gerät sieht innen sehr sauber und Staubfrei aus.

von Oliver R. (oliver_r)


Lesenswert?

Ich weiß nicht, was du willst. Der Encoder ist hin und ein neuer soll 
rein. Den Decoder im yC kann ich nicht beeinflussen, aber mit dem EC11 
arbeitet er tadellos.

von Erst denken, dann machen (Gast)


Lesenswert?

Oliver R. schrieb:
> Nein, es ist nicht ein Fehler des Decoders. Der arbeitet einwandfrei.
> Der Encoder muss ein anderer sein.

Und du brauchst das Internet, um dir zu sagen, dass du dann einfach 
einen passenden Encoder kaufen sollst?

Aber na gut, manchmal ergeben sich die richtigen Gedanken halt erst beim 
"Gespräch"...

von Erst denken, dann machen (Gast)


Lesenswert?

Oliver R. schrieb:
> Aber wie findet man so etwas? Wie heißen
> diese Dinge? Wie erkenne ich das im Datenblatt?

UH! Jetzt habe ich meinen eigenen Ast abgesägt.
Beim einem Hersteller gucken, beim Distributor kaufen.

von Oliver R. (oliver_r)


Lesenswert?

Bitte den letzten Absatz meines Originalpostings nochmals lesen.

von Volker S. (vloki)


Lesenswert?

Oliver R. schrieb:
> Ich könnte
> aber auch einfach einen passenden Encoder kaufen, der pro Click nur
> einen halben Schritt ausgibt. Aber wie findet man so etwas? Wie heißen
> diese Dinge? Wie erkenne ich das im Datenblatt?

Bei Reichelt https://www.reichelt.de/drehimpulsgeber-c3714.html
stehen da immer Impulse und Rastungen. Im Datenblatt "pulse" und 
"detend"

von Oliver R. (oliver_r)


Lesenswert?

Super! Danke. Und ein "pulse" ist ein voller Schritt oder ein Halber?

von W.S. (Gast)


Lesenswert?

Oliver R. schrieb:
> Und ein "pulse" ist ein voller Schritt oder ein Halber?

Nö. Alle solche Angaben kommen eher aus der PR-Abteilung und haben nur 
eine recht indirekte Beziehung zum angebotenen Bauteil.

Sofern du zu so einem Bauteil ein Datenblatt kriegen kannst, lies dort. 
Ansonsten gilt nur: Ausprobieren.

W.S.

von Volker S. (vloki)


Lesenswert?

Pro Rastung gibt es (neu) einen kompletten Puls,
oder nur einen Pegelwechsel bzw. halben Puls (alt).

Die Decoderauswertung zählt entweder Pegelwechsel oder Pulse.
Bei deinem Gerät wohl Pegelwechsel. Darum ist ein Puls jetzt
sogar zwei (Zähl)Schritte ;-)

von Oliver R. (oliver_r)


Lesenswert?

Ok. Danke. "Puls" oder "Pegelwechsel", alt bzw. neu. Das hilft schon 
sehr. Werde dennoch die Reichelt-Leute wohl wieder am Telefon quälen 
müssen.

Besten Dank!

von Wolfgang (Gast)


Lesenswert?

Oliver R. schrieb:
> Super! Danke. Und ein "pulse" ist ein voller Schritt oder ein Halber?

Ein Puls ist ein Signal, dass einmal hoch und wieder runter geht. Bei 
einem Drehencoder mit voller Dekodierung führt ein Puls zu vier 
Schritten.

von Volker S. (vloki)


Lesenswert?

Oliver R. schrieb:
> Ok. Danke. "Puls" oder "Pegelwechsel", alt bzw. neu. Das hilft schon
> sehr.

Mit "alt" meine ich hier den original eingebauten Encoder, mit "neu" den 
getesteten ec11.

Der originale ist einer mit doppelt so vielen Rastungen wie Impulse.

von Oliver R. (oliver_r)


Lesenswert?

Herzlichen Dank. Besser könnte man's nicht erklären.

von Wolfgang (Gast)


Lesenswert?

Volker S. schrieb:
> Der originale ist einer mit doppelt so vielen Rastungen wie Impulse.

Dann rastet er also nur auf jedem zweiten Schritt.

von Volker S. (vloki)


Lesenswert?

Wolfgang schrieb i
> Dann rastet er also nur auf jedem zweiten Schritt.

Wolfgang schrieb:
> Dann rastet er also nur auf jedem zweiten Schritt

Wie ist Schritt definiert?

Bei den manuellen Dingern mit Rastung, würde ich sagen Schritt ist 
gleich Rastung egal ob sich daraus zwei oder vier Zustandswechsel 
ergeben.

von Wolfgang (Gast)


Lesenswert?

Volker S. schrieb:
> Wie ist Schritt definiert?

Schritt ist eine Änderung des Ausgangssignals

von Volker S. (vloki)


Lesenswert?

Wolfgang schrieb:
> Schritt ist eine Änderung des Ausgangssignals

Ausgangssignal des Encoders?
Encoder Signal A oder B, oder beider?

von Wolfgang (Gast)


Lesenswert?

Volker S. schrieb:
> Ausgangssignal des Encoders?
> Encoder Signal A oder B, oder beider?

Ausgang A und B bilden ein Codewort (2 Bit gespiegelten Gray-Code), der 
der Reihe nach 4 Zustände annimmt. Jede Änderung des Zustandes stellt 
einen Schritt dar.
Ein Referenzpulse (R) ist oft nicht vorhanden.
https://de.wikipedia.org/wiki/Inkrementalgeber#/media/Datei:AB_Signal_and_Ref.svg

von Volker S. (vloki)


Lesenswert?

Wolfgang schrieb:
> ...der Reihe nach 4 Zustände annimmt. Jede Änderung des Zustandes stellt
> einen Schritt dar.

Wolfgang schrieb:
> Dann rastet er also nur auf jedem zweiten Schritt.

Ja so betrachtet, rasten die mechanischen manuellen Drehgeber auf jedem 
zweiten bzw. vierten Schritt.

von W.S. (Gast)


Lesenswert?

Volker S. schrieb:
> Bei den manuellen Dingern mit Rastung, würde ich sagen Schritt ist
> gleich Rastung egal ob sich daraus zwei oder vier Zustandswechsel
> ergeben.

Stimmt genau. Eben so haben die Konstrukteure des DG es vorgesehen. Und 
selbst wenn man sich allergrößte Mühe gibt, wird man bei einem DG mit 
Rastungen es nicht oder nur sehr schwer zuwege bringen, zwischen den 
Rastungen befindliche Zustandswechsel einzeln anzusteuern. Es geht immer 
von einem Knack zum nächsten Knack, egal wie die dazwischeliegenden 
Zustandswechsel sind.

W.S.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Eigentlich sollte der Graycode durch Prellimpulse nicht 
durcheinandergeraten. Aber wenn die schnell genug sind, kann es sein, 
das die Auswertesoftware nicht mehr mitkommt. Dagegen helfen 
gelegentlich Kondensatoren an beiden Schaltern. Der Eingang sollte 
Schmitt-Trigger-Eigenschaften haben, das hilft auch noch.

von W.S. (Gast)


Lesenswert?

Volker S. schrieb:
> Wolfgang schrieb:
>> Schritt ist eine Änderung des Ausgangssignals
>
> Ausgangssignal des Encoders?
> Encoder Signal A oder B, oder beider?

Wie geschrieben: Ein Schritt ist von einer Rastung zur nächsten und 
nicht von einem Zustandswechsel zum nächsten.

Allerdings gibt es rein technisch einige Details, die man beachten 
sollte. Das sind nämlich die Positionen der Zustandswechsel relativ zu 
den Rastungen. Entweder ist der Weg zwischen den Rastungen in 3 Teile 
geteilt mit Zustandswechsel zwischen 1. und zweitem Teil für den eine 
Kanal und Zustandswechsel zwischen 2. und 3. Teil für den anderen Kanal 
- oder der Weg ist nur in 2 Teile geteilt mit Zustandswechsel für den 
einen Kanal im Bereich der Rastung und Zustandswechsel für den anderen 
zwischen 1. und 2. Teil.

Die Version mit 3 Teilen ist für einfachere Naturen bei den 
Programmierern besser, weil man damit zwei elektrisch gleichwertige 
Kanäle hat und Verwechselungen damit keine fatalen Folgen haben.

Die Version mit 2 Teilen ist elektrisch und mechanisch besser, weil der 
Weg zwischen den Rastungen nur zweigeteilt ist (weniger toleranz- und 
verschleiß-empfindlich).
Dafür sind beide Kanäle aber nicht mehr exakt gleichwertig, denn der 
Kanal, der im Rastbereich seinen Zustand wechselt, ist nur für die 
Richtungsbestimmung gut, und der andere (der mitten zwischen den 
Rastungen wechselt), ist derjenige, der für das Generieren von 
Drehereignissen zu gebrauchen ist.

W.S.

von Wolfgang (Gast)


Lesenswert?

W.S. schrieb:
> Volker S. schrieb:
>> Wolfgang schrieb:
>>> Schritt ist eine Änderung des Ausgangssignals
>>
>> Ausgangssignal des Encoders?
>> Encoder Signal A oder B, oder beider?
>
> Wie geschrieben: Ein Schritt ist von einer Rastung zur nächsten und
> nicht von einem Zustandswechsel zum nächsten.

Der Auswerteelektronik sind die Rastungen egal, die muss jeden 
elektrischen Zustand mitbekommen - sonst kommt Vorwärts/Rückwärts 
durcheinander.
Wie DU "ein Schritt" definierst, kannst du dir beliebig aussuchen.

von W.S. (Gast)


Lesenswert?

Wolfgang schrieb:
> Wie DU "ein Schritt" definierst, kannst du dir beliebig aussuchen.

Nö, es ist für jedermann das Gleiche. Ein rastender DG hat seinen 
Schritt von Rastpunkt zu Rastpunkt. Punkt. Das ist genau DAS, was beim 
Betätigen wichtig ist.

Wie du dein Denkschema hingegen aufbaust, ist deine Angelegenheit.

Etwas noch anderes ist der Signalverlauf während eines Schrittes. Der 
kann recht unterschiedlich sein. Hatte ich ja bereits erläutert.

W.S.

von Wolfgang (Gast)


Lesenswert?

W.S. schrieb:
> Etwas noch anderes ist der Signalverlauf während eines Schrittes. Der
> kann recht unterschiedlich sein.

Der Signalverlauf über den Drehwinkel ist nicht großartig 
unterschiedlich. Die Abweichungen entstehen durch die Parametrierung 
über die Zeit.

>  Hatte ich ja bereits erläutert.
Ein Pulsdiagramm statt langatmiger Beschreibungen wäre da deutlich 
hilfreicher

von batman (Gast)


Lesenswert?

Beim Drehencoder gibt es Phasen, Spuren und optional Rastungen. 2 Spuren 
-> 4 Phasen.
Schritte macht der Schrittmotor.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.