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
clickclickclickclick
Mein EC11 Encoder macht bei jedem Click einen VOLLEN Schritt. Also:
1
_AAAAAAAAAAAA____________AAAAAAAAAAAAAA_______
2
______BBBBBBBBBBBBBB____________BBBBBBBBBBBB__
3
clickclick
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.
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.
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.
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.
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.
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.
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"...
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.
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"
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.
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 ;-)
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!
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.
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.
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.
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.
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.
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.
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.
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.
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.
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