Forum: Mikrocontroller und Digitale Elektronik Drehgeber Rasterpositionen nicht stabil / nicht eindeutig


von Solocan Z. (solocan)


Angehängte Dateien:

Lesenswert?

Ich habe ein ganz seltsames Problem mit den Drehgebern in meinem 
Projekt.

Erwartetes Verhalten eines Drehgebers beim Drehen ist ist ja Erzeugung 2 
phasenversetzter Rechtecksignale. Dann hat man im Ruhezustand, also im 
gerasteten Zustand immer High  (nehmen wir Pull-Up Konfig. an). Das 
heißt, der gerasteter Zustand muss immer stabil sein.

Genau da ist mein Problem. Ich bekomme zwar erwartete Rechtecksignale. 
Schön und gut. Aber nach den "Clicks" bleibt ganz sporadisch der Zustand 
des einen oder anderen Pins auf "Low", da der innere Fühler 
wahrscheinlich noch kontaktiert.

Ich habe das ganze im Logik-Analyser wie im Multimeter untersucht. Da 
sieht man ganz genau, dass man mit leichten Bewegungen den Zustand eines 
Pins innerhalb vom Raster(!) bleibend auf Low oder High ziehen kann. Man 
kontaktiert den Fühler mit kleinen Bewegungen innerhalb vom Raster quasi 
hin und her, dass es so bleibt.

Siehe LA-Screenshot: Erst gibt's schöne Quadratursignal, dann springt 
der erste Pin irgendwann auf Low...Das passiert eben sporadisch. Das 
heißt, dieser Encoder ist im gerasteten Zustand einfach nicht stabil.

Encoder sind diese 
Standardencoder:https://www.reichelt.de/drehimpulsegeber-24-impulse-24-rastungen-vertikal-stec12e08-p73923.html

Habe mehrere davon aufm Board und alle leiden unter demselben Problem. 
Manche mehr, manche weniger.

Sind die Encoder absoluter Müll oder habe ich einen Verständnisfehler? 
Oder was mache ich falsch?

Dankbar für jeden Tipp!

: Bearbeitet durch User
von Bernd (Gast)


Lesenswert?

> (Gray-Code Implementierung)

Low hin, High her. So wie ich es sehe hast du einen definierten Zustand. 
Deine Drehgeber gehen von Zustand zu Zustand.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Im Datenblatt (von 1997), Seite 5 steht:

> (The dent position will always be alignet with A-phase
> but B-phase has no specification.

Ich lese das so, dass das B-Signal irgendwo rumhängen kann wenn der 
Encoder eingerastet ist.

von Drehcode (Gast)


Lesenswert?

Bernd schrieb:
> (Gray-Code Implementierung)
>
> Low hin, High her. So wie ich es sehe hast du einen definierten Zustand.
> Deine Drehgeber gehen von Zustand zu Zustand.

Und was nutzt das wenn der dann  im gerasteten Zustand sporadisch um1 
pendelt? Das doch je nach Anwendung sehr beschissen...

von Peter D. (peda)


Lesenswert?

Es gibt 2 Sorten von Drehgebern. Die einen sind immer zwischen den 
Rastungen stabil und die anderen wechseln einen Anschluß genau auf der 
Rastung. Diese sind dann so zu schalten, daß das Zählen immer auf dem 
stabilen Anschluß erfolgt, d.h. der wackelnde Anschluß ist egal. 
Rastende Drehgeber benötigen ja immer 2 oder 4 Phasen für einen 
Zählschritt, also ist das einfach durch Umpolen möglich.

von Olaf (Gast)


Lesenswert?

> Sind die Encoder absoluter Müll oder habe ich einen Verständnisfehler?
> Oder was mache ich falsch?

Abstastung im TimerIRQ oder bist du so dumm die Flanken auszuwerten?

Es gibt kein Problem bei den Teilen ein stabiles Ausgangssignal zu 
erhalten wenn man richtig, also mit TimerIRQ, auswertet.

Allerdings ist auch mir schon aufgefallen das der mit den Fingern 
gefuehlte Pegelwechsel nicht der tatsaechlich ausgegeben Rastung folgt. 
Es gibt also bei manchen Encodern einen Winkelversatz. Da hab ich mich 
auch schon gefragt was der Entwickler davon geraucht hat.

Olaf

von Walter T. (nicolas)


Lesenswert?

Olaf schrieb:
> Allerdings ist auch mir schon aufgefallen das der mit den Fingern
> gefuehlte Pegelwechsel nicht der tatsaechlich ausgegeben Rastung folgt.
> Es gibt also bei manchen Encodern einen Winkelversatz.

Rastpunkte mechanisch zu designen ist nicht so einfach, wie es klingt. 
Das ist einfach Toleranz.

von Solocan Z. (solocan)


Angehängte Dateien:

Lesenswert?

Olaf schrieb:
> Abstastung im TimerIRQ oder bist du so dumm die Flanken auszuwerten?

Bisher habe ich im TimerIRQ von STM32 ausgewertet (Die haben ja 
Quadraturzähler) Das funktioniert eben nicht einwandfrei. Daher wollte 
ich jetzt eine Zustandsmaschine (Gray-Code) implementieren und komplett 
auf Polling gehen. Dieser Ansatz kann aber bei diesen Drehgebern nicht 
klappen, da eben am Ende nicht immer (1-1) oder (0-0) stehen muss. 
Stimmt's?

Hier übrigens eine neuere Doku:
https://cdn-reichelt.de/documents/datenblatt/B400/STEC12E.pdf
Da ist auf der letzten Seite das Ausgangssignal beschrieben.

Da
Peter D. schrieb:
> Es gibt 2 Sorten von Drehgebern. Die einen sind immer zwischen den
> Rastungen stabil und die anderen wechseln einen Anschluß genau auf der
> Rastung. Diese sind dann so zu schalten, daß das Zählen immer auf dem
> stabilen Anschluß erfolgt, d.h. der wackelnde Anschluß ist egal.
> Rastende Drehgeber benötigen ja immer 2 oder 4 Phasen für einen
> Zählschritt, also ist das einfach durch Umpolen möglich.

Das wusste ich so nicht. Dann fasse ich mal mein Verständnis zusammen:

1. A ist stabil, B ist instabil.
2. Im gerasteten Zustand, können die Pins(besonders B) da stehen, wo sie 
wollen.
3. Wenn ich drehe, gibt es ein Flankenwechsel auf B. (Ähnlich wie ein 
CLK Signal).
4. Ich muss einfach im Zeitpunkt dieses Flankenwechsels den Zustand von 
A auswerten, um die Drehrichtung zu ermitteln.
5. Danach wenn der Drehgeber wieder im nächsten Raster gerastet ist, 
gammelt der Pin B auf Low oder High.

Frage: Wenn der Pin B im Rasterzustand undefiniert ist, kann er aber 
beim "im Raster hin und her wackeln" unerwünschte Flanken erzeugen und 
da werte ich wieder Bullshit aus. Stimmt's? Wie löse ich das denn?

: Bearbeitet durch User
von Olaf (Gast)


Lesenswert?

> Das wusste ich so nicht. Dann fasse ich mal mein Verständnis zusammen:

> 1. A ist stabil, B ist instabil.

Nein. Es kann jederzeit mal passieren das einer der beiden seinen 
Zustand aendert. Das ist vollkommen okay so, passiert auch beim drehen 
oft wenn der Schalter prellt. Allerdings eben nur bei einem der 
schalter, der andere ist stabil. Das mittelt dir dann dein TimerIRQ 
wieder raus.

> 4. Ich muss einfach im Zeitpunkt dieses Flankenwechsels den Zustand von
> A auswerten, um die Drehrichtung zu ermitteln.

Nein, genau das nicht! Es gibt keinen definierten einmalig auftretenden 
Flankenwechsel. Das musst du verstehen!

Olaf

von marais (Gast)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Ich sehe grad, daß meine Encoderroutine dafür nicht geeignet ist. Es 
fehlt die Synchronisation beim Einschalten, so daß nur bei 
Flankenwechsel auf A gezählt wird.
Ich hatte nur solche Encoder verwendet, wo beide Anschlüsse stabil sind.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Solocan Z. schrieb:
> nach den "Clicks" bleibt ganz sporadisch der Zustand
> des einen oder anderen Pins auf "Low"
Bleibt der stabil auf Low?
Dann ist die ursprüngliche Forderung ja erfüllt:
> Das heißt, der gerasteter Zustand muss immer stabil sein.

Solocan Z. schrieb:
> Bisher habe ich im TimerIRQ von STM32 ausgewertet (Die haben ja
> Quadraturzähler) Das funktioniert eben nicht einwandfrei.
Warum nicht? diese Hardware ist doch genau für diese Signale 
ausgelegt...

> Daher wollte ich jetzt eine Zustandsmaschine (Gray-Code) implementieren
> und komplett auf Polling gehen. Dieser Ansatz kann aber bei diesen
> Drehgebern nicht klappen, da eben am Ende nicht immer (1-1) oder (0-0)
> stehen muss.
> Stimmt's?
Nein. Wegen der Qaudraturauswertung bekommst du ja 4 Schritte pro 
Rastung. Und manchmal macht der Drehgeber jetzt halt nur 3 Schritte und 
dann bei der nächsten Rastung eben irgendwann mal 5.

> Genau da ist mein Problem.
Warum?
Was ist denn jetzt das eigentliche Problem?

BTW: es ist eine schlechte Idee, direkt mit dem Geber einen Wert 1:1 zu 
ändern. Denn dann kann es sein, du triffst den gewünschten Wert 
einfacher, wenn du eine "Beschleunigung" mit ins Spiel bringst.

von Solocan Z. (solocan)


Lesenswert?

Lothar M. schrieb:
> Nein. Wegen der Qaudraturauswertung bekommst du ja 4 Schritte pro
> Rastung. Und manchmal macht der Drehgeber jetzt halt nur 3 Schritte und
> dann bei der nächsten Rastung eben irgendwann mal 5.
>
>> Genau da ist mein Problem.
> Warum?
> Was ist denn jetzt das eigentliche Problem?
>
> BTW: es ist eine schlechte Idee, direkt mit dem Geber einen Wert 1:1 zu
> ändern. Denn dann kann es sein, du triffst den gewünschten Wert
> einfacher, wenn du eine "Beschleunigung" mit ins Spiel bringst.

Genau da eben! Ich muss doch immer diese 4 Schritte bekommen, damit es 
funktioniert. Sonst kann ich nicht sagen: Ok, eine vollständige Drehung 
hat erfolgt!

Ich glaube, ich habe vergessen, meinen Use-Case zu erläutern. Ich nehme 
diese Encoder nicht als Motordrehgeber (, wo er kontinuierlich dreht und 
egal ist, wo es beim Rasten steht.) sondern als Benutzerschnittstelle! 
Daher muss bei mir eben "1:1" ausgewertet sein. Sprich, ein Tick 
Uhrzeigersinn-> Wert hoch, ein Tick Gegenuhrzeigersinn->Wert runter. Das 
nicht sporadisch sondern IMMER.

Wenn ich manchmal 3 und manchmal 5 Ticks habe, funktioniert es eben 
nicht, da ich nie eine einzige Rastung sauber ermitteln kann. (Bei der 
zweiten Rastung wird's von mir aus ausgeglichen aber das ist mir egal, 
weil der Anwender es ehe wieder runterdrehen möchte)

: Bearbeitet durch User
von Axel S. (a-za-z0-9)


Lesenswert?

Solocan Z. schrieb:
>
> Bisher habe ich im TimerIRQ von STM32 ausgewertet (Die haben ja
> Quadraturzähler)

Dieser Satz ergibt IMHO keinen Sinn. Entweder verwendest du einen 
Quadraturzähler oder du machst was im Interrupt.

> Das funktioniert eben nicht einwandfrei. Daher wollte
> ich jetzt eine Zustandsmaschine (Gray-Code) implementieren und komplett
> auf Polling gehen. Dieser Ansatz kann aber bei diesen Drehgebern nicht
> klappen, da eben am Ende nicht immer (1-1) oder (0-0) stehen muss.
> Stimmt's?

Nein, stimmt nicht. Eine korrekt implementierte Zustandsmaschine wertet 
alle 4 möglichen Zustände des Encoders aus. Nehmen wir mal das 
Impulsdiagramm von dir. Dann gibt es 4 Zustände:
1
A  B  Zustand
2
-------------
3
H  H  Z1
4
L  H  Z2
5
L  L  Z3
6
H  L  Z4

Beim Drehen des Encoders werden diese 4 Zustände zyklisch durchlaufen. 
Entweder vorwärts Z1 -> Z2 -> Z3 -> Z4 -> Z1 ... oder rückwärts. In 
keinem Fall werden Zustände übersprungen. Nach Z1 kann nur entweder Z2 
oder Z4 folgen, niemals Z3.

Wenn du jetzt anschaust, wo die Rastpunkte dieses Encoders liegen, dann 
ist das der Übergang Z4 -> Z1 (bzw. Z1 -> Z4). Durch 
Fertigungstoleranzen kann der Rastpunkt mal kurz davor oder kurz danach 
liegen. Oder man kann durch Wackeln an der Achse diesen Übergang 
beliebig überqueren. Die anderen drei Zustandsübergänge sind aber 
stabil. Da der Encoder mechanisch (per Rastung) ohnehin nur 1/4 der 
elektrischen Auflösung hat, brauchst du also nur einen dieser anderen 3 
Zustandsübergänge zum Herauf- bzw. Herunterzählen des Geber-Wertes zu 
verwenden. Zweckmäßigerweise nimmst du den Übergang in der Mitte (Z2 <-> 
Z3).

Der Code im Artikel Drehgeber kann das übrigens alles. Mit den dort 
gewählten Worten ist dein Encoder ein "four step encoder".

von Solocan Z. (solocan)


Lesenswert?

Axel S. schrieb:
> brauchst du also nur einen dieser anderen 3
> Zustandsübergänge zum Herauf- bzw. Herunterzählen des Geber-Wertes zu
> verwenden. Zweckmäßigerweise nimmst du den Übergang in der Mitte (Z2 <->
> Z3).

Gut, danke, dann war das mein Verständnisfehler bisher. Ich hatte für 
mich vorausgesetzt, dass ALLE dieser 4 Zustände durchlaufen sein MÜSSEN, 
damit ich von einer erfolgreichen Drehung ausgehen kann.

Wenn ich aber einmal in der Mitte auswerten soll, dann kann es 
vielleicht klappen.

Ich muss mir dann nur Gedanken machen, wie ich den Zustand 
initialisiere. (Weiß ich zum Startpunkt nämlich nicht oder?) und wie ich 
mit Fehlern umgehe: Wenn nämlich irgendwann ein unerlaubter 
Zustandswechsel auftritt und ich es resetten möchte, weiß ich nicht, wo 
ich stehe.

Weil wahr sind nur die Wechsel und nicht die absoluten Zustände.

: Bearbeitet durch User
von Solocan Z. (solocan)


Angehängte Dateien:

Lesenswert?

Axel S. schrieb:
> Der Code im Artikel Drehgeber kann das übrigens alles. Mit den dort
> gewählten Worten ist dein Encoder ein "four step encoder".

Das in diesem Artikel gewählte Beispiel ist eben für mich nicht gültig. 
Bei diesem sind die Rasterpunkte auf stabilen Zuständen, bei meinem 
Encoder genau auf einer Flanke! Also undefiniert. Siehe Bild von meinem 
Encoder oben.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Solocan Z. schrieb:
> Sind die Encoder absoluter Müll

Ja, schrecklich, die Hersteller sind alle dumm und dreist.

Solocan Z. schrieb:
> oder habe ich einen Verständnisfehler

Wohl eher. Bei korrekter Auswertung eines Drehgebers stört das Verhalten 
kein bischen. Daher sind die alle so gebaut.

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29

Solocan Z. schrieb:
> Siehe Bild von meinem Encoder oben.

Man kann Signal A per Hardware entprellen und Signal B dann zur 
Richtungsentscheidung nutzen

oder alle 4 Positionen durch sampling erfassen und geschickt durch 2 
teilen und bekommt dieselbe Positionsauflösung.

von Solocan Z. (solocan)


Lesenswert?

MaWin schrieb:
> Ja, schrecklich, die Hersteller sind alle dumm und dreist.

Ne, stellen sondern auch Encoder für andere Zwecke her, die für meine 
Anwendung ggf. Müll sind. Ist aber wohl nicht der Fall, stimmt.

MaWin schrieb:
> Wohl eher. Bei korrekter Auswertung eines Drehgebers stört das Verhalten
> kein bischen. Daher sind die alle so gebaut.

Offensichtlich nicht. Es gibt welche mit stabilen eingerasteten 
Zuständen und instabilen.

MaWin schrieb:
> Man kann Signal A per Hardware entprellen und Signal B dann zur
> Richtungsentscheidung nutzen

Entprellung hat nichts, rein gar nichts mit dem Thema zu tun. Meine sind 
auch wunderbar hardwareentprellt und gibt's kein Flackern. Hat aber 
nichts mit dem problem zu tun.

MaWin schrieb:
> oder alle 4 Positionen durch sampling erfassen und geschickt durch 2
> teilen und bekommt dieselbe Positionsauflösung.

Dass dieser naiver Ansatz nicht funktioniert, habe ich eben festgestellt 
und oben ausführlich beschrieben, warum es bei solchen Encodern nicht 
funktioniert.

von Axel S. (a-za-z0-9)


Lesenswert?

Solocan Z. schrieb:
> Axel S. schrieb:
>> brauchst du also nur einen dieser anderen 3
>> Zustandsübergänge zum Herauf- bzw. Herunterzählen des Geber-Wertes zu
>> verwenden. Zweckmäßigerweise nimmst du den Übergang in der Mitte (Z2 <->
>> Z3).
>
> Gut, danke, dann war das mein Verständnisfehler bisher. Ich hatte für
> mich vorausgesetzt, dass ALLE dieser 4 Zustände durchlaufen sein MÜSSEN,
> damit ich von einer erfolgreichen Drehung ausgehen kann.

Das verstehst du immer noch falsch. Die Zustandsmaschine soll schon alle 
4 Zustände erfassen und nur bei korrekter Reihenfolge zählen. Nur ist 
das, was die Zustandsmaschine zählt, nicht der zum restlichen Programm 
hin sichtbare Geber-Wert. Denn der sollte sich von Rastpunkt zu 
Rastpunkt nur um +1 oder um -1 ändern.

Solocan Z. schrieb:
> Axel S. schrieb:
>> Der Code im Artikel Drehgeber kann das übrigens alles. Mit den dort
>> gewählten Worten ist dein Encoder ein "four step encoder".
>
> Das in diesem Artikel gewählte Beispiel ist eben für mich nicht gültig.
> Bei diesem sind die Rasterpunkte auf stabilen Zuständen, bei meinem
> Encoder genau auf einer Flanke! Also undefiniert.

Dann vertausche die Anschlüsse A und B deines Encoders. Oder verwende 
gleich den Code aus dem Abschnitt "Drehgeber mit wackeligen 
Rastpunkten". Wenn du da die Decoder-Tabelle mal als 4x4 Matrix 
formatierst, siehst du auch gut, bei welchen Zustandsübergängen um +1 
bzw. -1 gezählt wird. Und du kannst die Tabelle notfalls auch anpassen.

von Solocan Z. (solocan)


Lesenswert?

Axel S. schrieb:
> Das verstehst du immer noch falsch. Die Zustandsmaschine soll schon alle
> 4 Zustände erfassen und nur bei korrekter Reihenfolge zählen. Nur ist
> das, was die Zustandsmaschine zählt, nicht der zum restlichen Programm
> hin sichtbare Geber-Wert. Denn der sollte sich von Rastpunkt zu
> Rastpunkt nur um +1 oder um -1 ändern.

Das ist klar. Zustandsmaschine soll schon alle Zustände erfassen und bei 
korrekter Reihenfolge zählen. Aber was er zählt ist hier die Frage. Beim 
Beispiel im Artikel wird einfach das Zählen beim Z1->Z4 und Z4->Z1 
weggeschmissen, da dies unbrauchbar ist. Es zählt also nur bei Z2->Z3 
und Z3->Z2. Mehr magic ist da nicht.

von Axel S. (a-za-z0-9)


Lesenswert?

Solocan Z. schrieb:
> Axel S. schrieb:
>> Das verstehst du immer noch falsch. Die Zustandsmaschine soll schon alle
>> 4 Zustände erfassen und nur bei korrekter Reihenfolge zählen. Nur ist
>> das, was die Zustandsmaschine zählt, nicht der zum restlichen Programm
>> hin sichtbare Geber-Wert. Denn der sollte sich von Rastpunkt zu
>> Rastpunkt nur um +1 oder um -1 ändern.
>
> Das ist klar. Zustandsmaschine soll schon alle Zustände erfassen und bei
> korrekter Reihenfolge zählen. Aber was er zählt ist hier die Frage.

Eigentlich ist die Frage, wann gezählt wird.

> Beim
> Beispiel im Artikel wird einfach das Zählen beim Z1->Z4 und Z4->Z1
> weggeschmissen, da dies unbrauchbar ist. Es zählt also nur bei Z2->Z3
> und Z3->Z2.

Fast. Im Artikel Drehgeber ist das Impulsdiagramm (und der Code) für 
einen Drehgeber mit zwei Rastpunkten pro Zyklus. Da muß man bei jedem 
zweiten Zustandsübergang zählen, wenn man ein Inkrement/Dekrement pro 
Rastpunkt haben will. Je nach mechanischer Auslegung des Encoders sind 
entweder alle 4 Übergänge stabil oder nur zwei. Entsprechend wählt man 
die Zustandsübergänge so aus, daß sie möglichst weit von einem evtl. 
instabilen Rastpunkt liegen. Was in der Praxis einfach dadurch erledigt 
wird, daß man die Phasen vertauscht.

Dein Encoder hat aber sogar nur einen Rastpunkt pro Zyklus. Es kann 
demnach nur einer von 4 Zustandsübergängen instabil sein. Jeder der 
anderen 3 wäre geeignet, um zu zählen. In der Decoder-Matrix darf für 
deinen Drehgeber nur eine +1 und nur eine -1 stehen. Nicht zwei wie 
im Artikel.

von Maxim B. (max182)


Lesenswert?

Solocan Z. schrieb:
> Sind die Encoder absoluter Müll oder habe ich einen Verständnisfehler?
> Oder was mache ich falsch?

Hallo,
ich hatte so ähnlich mit China-Drehgeber.
Ein gutes Ergebnis habe ich mit Variante von Herrn Dannegger bekommen 
(https://www.mikrocontroller.net/articles/Drehgeber#Beispielcode_in_C), 
wenn ich statt
1
const char table[16] PROGMEM = {0,0,-1,0,0,0,0,1,1,0,0,0,0,-1,0,0};
1
const char table[16] PROGMEM = {0,0,-1,0,0,0,0,1,0,0,0,0,0,0,0,0};
benutzte.

Viele Grüße.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

Ja, in der Tabellenvariante kann man bequem auswählen, wann gezählt 
wird.

von MaWin (Gast)


Lesenswert?

Solocan Z. schrieb:
> Dass dieser naiver Ansatz nicht funktioniert, habe ich eben festgestellt
> und oben ausführlich beschrieben, warum es bei solchen Encodern nicht
> funktioniert

Da du offenkundig zu blöde bist, den verlinkten keineswegs naiven sonder 
fachlich treffenden Erklärungen zu folgen und sie zu lesen und zu 
verstehen,
wird das auch so bleiben.

von Bernd N (Gast)


Lesenswert?

Ich kann dir ganz klar bestätigen das die Tabellenvariante zum Ziel 
führt. Es hat mich auch ein wenig Zeit gekostet den Artikel für mich 
auszuarbeiten aber dort steht eigentlich für jeden Drehgebertyp der mir 
untergekommen ist auch der entsprechende Code. Insbesondere dein Typ 
ließ sich nur mit der Tabellenvariante verwenden und auch der Anschluß 
der Phasen ist hier eben nicht egal.

Ansonsten würde ich empfehlen einen anderen Drehgeber zu verwenden.

von Solocan Z. (solocan)


Lesenswert?

MaWin schrieb:
> Solocan Z. schrieb:
>> Dass dieser naiver Ansatz nicht funktioniert, habe ich eben festgestellt
>> und oben ausführlich beschrieben, warum es bei solchen Encodern nicht
>> funktioniert
>
> Da du offenkundig zu blöde bist, den verlinkten keineswegs naiven sonder
> fachlich treffenden Erklärungen zu folgen und sie zu lesen und zu
> verstehen,
> wird das auch so bleiben.

Schimpf bitte beim nächsten Aldi Parkplatz rum und nimm nicht dieses 
Forum in Geisel.

von gerhard (Gast)


Lesenswert?

Mir hat das geholfen:
Beitrag "Re: Drehgeber auslesen"
Gerhard

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.