Forum: Offtopic Suche richtig miesen Drehimpulsgeber


von Cheffe (Gast)


Lesenswert?

Hallo,

eines vorweg: Dies ist kein Trollbeitrag und Freitag ist auch noch 
nicht!

Wie der außergewöhnliche Betreff ja schon sagt, bin ich auf der Suche 
nach richtig miesen Drehimpulsgebern.

Ich suche welche, die ordentlich Prellen, mal Spur A oder B nicht 
richtig ausgeben, weil der Kontakt nicht gut ist oder welche die 
ordentlich um den Rastpunkt pendeln.

Ich möchte diese als Anschauungsobjekt haben und damit meine 
Drehimpulsgeber-Routinen testen.

Ich habe hier einen STEC11B13. Liegt schon ewig in der Kiste. Der ist 
noch nicht schlecht genug. Gute optische von Burns oder magnetische 
(Alps) habe ich. Sind aber auf die Dauer zu teuer...


Gruß
Cheffe

: Verschoben durch Admin
von pegel (Gast)


Lesenswert?

Bau einen auseinander und verbiege die Schleifer bis sie nur noch über 
den Kontakten "schweben".

von korax (Gast)


Lesenswert?

Cheffe schrieb:
> Sind aber auf die Dauer zu teuer...

Na, dann besorg dir die billigsten ;o)

von Stefan F. (Gast)


Lesenswert?

Ich würde einfach einen billigen kaufen und eine Weile mit dem 
Akkuschrauber durchorgeln.

von MeierKurt (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ich würde einfach einen billigen kaufen und eine Weile mit dem
> Akkuschrauber durchorgeln.

Nach Murphy wird genau dieser nie kaputt gehen, nichtmal zu 
Fehlfunktionen neigen.

von Harald W. (wilhelms)


Lesenswert?

Cheffe schrieb:

> Wie der außergewöhnliche Betreff ja schon sagt, bin ich auf der Suche
> nach richtig miesen Drehimpulsgebern.

Du könntest im Tausch gegen einen neuen den Geber meiner Mikrowelle
haben, der funktioniert nur noch mit einem "Knack" pro Sekunde.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Bau dir selber einen und gib dir dabei keinerlei Mühe. Die Kontakte
kannst du aus einer nicht ausgespülten Konservendose herstellen, die du
vorher am besten noch ein paar Wochen im Freien reifen lässt.

von Achim H. (anymouse)


Lesenswert?

Nimm einen diskret aufgebauten optischen Drehimpulsgeber, bei dem man 
noch an die einzelnen Komponenten kommt, und reduziere die Leuchtkraft 
der LEDs (z.B. verringerter Strom, etc) bzw. die Empfindlichkeit der 
Empfänger.

von oszi40 (Gast)


Lesenswert?

Im Prinzip würde ich eine Lichtschranke und ein Papierzahnrad basteln. 
Anschließend Licht regulieren und später Zähne mißhandeln mit Bleistift 
und Schere?

von Dirk (Gast)


Lesenswert?

Selber künstlich altern mit Akkuschauber drehen?

von spiderman (Gast)


Lesenswert?

Zufallsgenerator?

von spiderman (Gast)


Lesenswert?

Scherz beiseite, Du muß die geforderte Disfunktionalität schon genauer 
spezifizieren. Disfunktionalitäten korreliert man im Allgemeinen mit 
einer Unwahrheitstabelle. Du muß aber aufpassen daß Du nicht in die 
Funktionalitätsfalle läufst, weil der Geber dann genau das nicht macht 
was er nicht machen soll.

von spiderman (Gast)


Lesenswert?

Als Workaround kannst Du Deinen Code einfach ohne Geber ins Leere laufen 
lassen. Dadurch kannst Du Dich unabhängig vom Geber vollständig auf 
Deinen Code konzentrieren.

von spiderman (Gast)


Lesenswert?

P.S.:

Geht das noch mieser oder hab ich was übersehen?

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

sehr sehr langsam drehen

Kontakte mit zuviel Strom schädigen, z.B. einen passenden Kondensator 
über die Kontakte legen, der sich dann beim Drehen immer wieder über die 
Kontakte entlädt. Das mögen die natürlich nicht und altern extrem.

von N. M. (mani)


Lesenswert?

Sich die verschiedenen Cases überlegen die man abtesten möchte. Für 
jeden Test eine Kurvenform definieren.
Mit einem Pattern Generator die Muster ausgeben und nach jedem Muster 
den Erwartungswert prüfen.

Ist zwar ohne Encoder, dafür aber reproduzierbar.

von ??? (Gast)


Lesenswert?

so richtig miese Dinger gabs mal bei Pollin. Die scheinen aber 
ausverkauft zu sein.

von Baendiger (Gast)


Lesenswert?

N. M. schrieb:
> Sich die verschiedenen Cases überlegen die man abtesten möchte. Für
> jeden Test eine Kurvenform definieren.
> Mit einem Pattern Generator die Muster ausgeben und nach jedem Muster
> den Erwartungswert prüfen.
> Ist zwar ohne Encoder, dafür aber reproduzierbar.

Sowas in die Richtung würde ich auch vorschlagen. Wie wär's ein kleines 
Tool mit einem Mikrocontroller zu basteln? Dann kann man auch nicht 
funktionierende Fälle wiederholen und debuggen.

von Peter D. (peda)


Lesenswert?

Wenns nicht so aufwendig wäre, könnte ich die Drehgeber ausm Hameg, ausm 
Agilent, aus der Jura ausbauen, die ärgern mich schon jahrelang.
Der im Agilent Generator ist völlig unbenutzbar, da ist nur noch die 
Eingabe über die Zifferntasten möglich.

Ich vermute allerdings, die sind gar nicht defekt, sondern werden per 
Flankeninterrupt eingelesen, also ein Firmwarefehler.

von DANIEL D. (Gast)


Lesenswert?

Also ich habe die Erfahrung gemacht dass die nur mit äußerer 
Beschaltung, Kondensatoren und Widerständen gescheit funktionieren.

Da einfach mal ein paar Werte weglassen oder verschlechtern.

von Harald (Gast)


Lesenswert?

Vielleicht mit Schleifpapier ein wenig Messingstaub erzeugen und diesen 
in einen Drehencoder kippen. Das dürfte auch schon ein wenig künstliche 
Alterung simulieren und trägt zusätzlich zur Alterung bei.

von Εrnst B. (ernst)


Lesenswert?

??? schrieb:
> so richtig miese Dinger gabs mal bei Pollin. Die scheinen aber
> ausverkauft zu sein.

Die haben halt ein wenig um den Rastpunkt gewackelt und geprellt. Kann 
man in der Software berücksichtigen, funktionieren dann tadellos.
Ganz im Gegensatz zu den Drehgebern in meinen elektronischen 
Heizkörperthermostaten, die inzwischen nur noch zufällig hoch und 
runterspringen, wenn man dran dreht. Egal in welche Richtung.
Da hat wohl so ein Superhirn den Drehgeber per Flankeninterrupt 
auszuwerten versucht.

Insofern ist das hier schon ein guter Plan:

Cheffe schrieb:
> Wie der außergewöhnliche Betreff ja schon sagt, bin ich auf der Suche
> nach richtig miesen Drehimpulsgebern.

Das Teil drückt man den Firmware-Programmierern in die Hand, und wenn 
das Gerät damit bedienbar bleibt ist alles Gut.

Spart ewige Diskussionen wie:

Chef: "Mach das per Timer-Interrupt und Polling"
Progger: "Nee"
Chef: "Doch!"
Progger: "Aber per Flanke ist das viel einfacher"
Chef: "Geht aber nicht mehr, wenn der Geber prellt"
Progger: "Meiner prellt nicht. Und wenn, dann packen wir halt 
Kondensatoren dran"
Chef: "Nö, mach das gleich richtig, per Timer"
Progger: "Aber, aber, aber, der 12-Jährige pickelgesichtige 
Arduino-Jünger auf dem 1337-Hardware-Haxxx0r Youtube-Channel hat gesagt, 
dass Polling böse ist..."

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


Lesenswert?

Peter D. schrieb:
> Wenns nicht so aufwendig wäre, könnte ich die Drehgeber ausm Hameg, ausm
> Agilent, aus der Jura ausbauen, die ärgern mich schon jahrelang.
Die Dinger aus alten Ford-Autoradios taugen irgendwann auch nur als 
Zufallsgenerator.

Allerdings vermute ich dort und allgemein in mehr als 9 von 10 Fällen, 
dass wie üblich einfach die auswertende Software schlecht ist, weil der 
Programmierer die 10000underste Variante zur Drehgeberauswertung selbst 
programmiert hat.

DANIEL D. schrieb:
> Also ich habe die Erfahrung gemacht dass die nur mit äußerer
> Beschaltung, Kondensatoren und Widerständen gescheit funktionieren.
Welche "die"?

von Rainer V. (a_zip)


Lesenswert?

Warum nicht einfach ein "Progrämmchen" schreiben, das schlechte, 
verhunzte Pulsfolgen erzeugt und deine Auswertesoftware so richtig ins 
Schwitzen bringt? Bevor ich da mit der Feile auf ein Teil losgehe :-)
Gruß Rainer

von Marek N. (Gast)


Lesenswert?

Vielleicht ein Stereo-Poti per ADC einlesen und die LSB(s) auswerten?

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


Lesenswert?

Marek N. schrieb:
> Vielleicht ein Stereo-Poti per ADC einlesen und die LSB(s) auswerten?
Ja, da hätte man dann natürlich völlig unabhängige Bitfolgen und die 
Software würde beliebig hin- und herzählen. Man wüsste dann trotzdem 
nicht, ob sie tut oder nicht.
Ich würde da eher mit einem µC Impulsfolgen mit variablem Tastverhältnis 
und "Zufallsrauschen" aus einer Tabelle auf den Spuren ausgeben. Dann 
kann man sich im Fehlerfall auch recht leicht an diesen Fehlerfall 
herantasten, weil man den Fehlerfall jederzeit reproduzieren kann.

Und man kann die Auswertung leicht automatisieren und im Fehlerfall 
anhalten, denn wenn der "Geber-µC" behauptet, er habe 1000 Schritte in 
einer Richtung gemacht, dann muss der "Empfägner-µC" trotz Rauchen und 
Störimpulsen 1000 Schritte weiter gezählt haben.

von Rolf M. (rmagnus)


Lesenswert?

MeierKurt schrieb:
> Stefan ⛄ F. schrieb:
>> Ich würde einfach einen billigen kaufen und eine Weile mit dem
>> Akkuschrauber durchorgeln.
>
> Nach Murphy wird genau dieser nie kaputt gehen, nichtmal zu
> Fehlfunktionen neigen.

Etwas genauer: Der Akkuschrauber wird zuerst kaputt gehen.

Lothar M. schrieb:
> Peter D. schrieb:
>> Wenns nicht so aufwendig wäre, könnte ich die Drehgeber ausm Hameg, ausm
>> Agilent, aus der Jura ausbauen, die ärgern mich schon jahrelang.
> Die Dinger aus alten Ford-Autoradios taugen irgendwann auch nur als
> Zufallsgenerator.

Hmm, ich weiß nicht, welche im Waldorf Blofeld verbaut sind. Dessen 
Drehgeber sind bekannt für Fehlfunktionen. Da ist die Welle eingefettet, 
um schön leichtgängig zu sein. Leider läuft das Fett mit der Zeit auf 
die Kontakte und stört diese.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Cheffe schrieb:
> Ich möchte diese als Anschauungsobjekt haben und damit meine
> Drehimpulsgeber-Routinen testen.

Ich würde eher ein Test-Drehencoder verwenden, bei dem man nichts dreht 
sondern wo ein µC die Signale mit entsprechender Fehler-Abfolge sendet 
und dann entsprechende Tests schreiben.
Vorteil: das Fehlverhalten wird dann reproduzierbar und man kann den 
Fehler gezielt beheben.
Und der Test ist jederzeit wiederholbar, nicht abhängig von Zufällen, 
die genau morgens um 9:43 auf treten wenn die Sonne gerade in den 
Schlitz scheint und die Sensorik stört.

Daher kann ich von einem "miesen Drehimpulsgeber" nur abraten. Damit 
verliert man nur Zeit.
Auch macht der "miesen Drehimpulsgeber" sicher nicht alle Fehlerfälle 
die es gibt und auf die man reagieren möchte.

von DANIEL D. (Gast)


Lesenswert?

Also das waren diese hier.
https://www.amazon.de/gp/product/B0085I4D5C/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1

Hab ich jetzt aber noch nicht so viel benutzt,aber wie gesagt ohne 
Kondensatoren und Widerstände, mit irgend so einer Arduino library keine 
Funktion.

von Rolf M. (rmagnus)


Lesenswert?

Markus M. schrieb:
> Cheffe schrieb:
>> Ich möchte diese als Anschauungsobjekt haben und damit meine
>> Drehimpulsgeber-Routinen testen.
>
> Ich würde eher ein Test-Drehencoder verwenden, bei dem man nichts dreht
> sondern wo ein µC die Signale mit entsprechender Fehler-Abfolge sendet
> und dann entsprechende Tests schreiben.
> Vorteil: das Fehlverhalten wird dann reproduzierbar und man kann den
> Fehler gezielt beheben.

Dafür ist das dann allerdings eben künstlich erstellt, so wie man sich 
vorstellt, dass ein schlechter Drehencoder sich verhalten könnte. Aber 
woher weißt du, ob deine programmierte Fehler-Abfolge überhaupt 
realistisch ist?

> Auch macht der "miesen Drehimpulsgeber" sicher nicht alle Fehlerfälle
> die es gibt und auf die man reagieren möchte.

Das ist aber eben auch ein Problem: Dein programmierter 
Encoder-Simulator deckt nur die Feherfälle ab, auf die du reagieren 
möchtest, also an die du vorher explizit gedacht hast. Das sind aber 
nicht unbedingt auch die, auf die du auch reagieren musst.

: Bearbeitet durch User
von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Rolf M. schrieb:
> also an die du vorher explizit gedacht hast

Diese "möglichen Fehler" muss sich ja nicht nur eine Person aus den 
Fingern saugen, man kann das Problem sicher auch mit mehreren Leuten 
angehen oder auch hier im Forum fragen.
Da wird man dann sicher so ziemlich alle Möglichkeiten dann zusammen 
bekommen, die man anschließend gezielt/reproduzierbar testen kann.

Es hat ja niemand gesagt dass so ein Test vom Aufwand her einfach ist. 
Meist ist der Test deutlich aufwändiger als wie die eigentliche 
Programmierung, schon alleine deshalb weil man nach jeder 
Programmänderung Tests gezielt wiederholen muss. (So kenne ich das aus 
der Medizintechnik.)
Mit so einem "zufällig Defekt" Encoder schafft man sinvolle Tests 
niemals, weil man nie genau weiß wann welches Fehlverhalten auftritt.

von MaWin (Gast)


Lesenswert?

Cheffe schrieb:
> bin ich auf der Suche nach richtig miesen Drehimpulsgebern.

Ich kenn da einen in einer Heizungsanlage.

Richtig mies sind Drehimpulsgeber auf Schleifkontaktbasis beispielsweise 
mit Kontakt nach Masse und plus über pull up, wenn die Kontaktbahn 
oxidiert bzw. verdreckt ist und nur noch sporadisch Kontakt ergibt  Dann 
bekommst du folgende Signale
1
A ++++++++---+-+--++++++++-+--+---++++++++
2
B --+-+++++++++-+--+--++++++++--+-----++++
Die Signale können so schnell werden, dass auch der richtige 
Auswertecode damit nichts mehr anfangen kann. So lange die Aussetzer auf 
der Kontaktbahn nur kurz sind, kann ein Kondensator die peaks filtern. 
Ist aber die Kontaktbahn überwiegend oxidiert und gibt nur noch 
seltendst Kontakt, hilft auch das nicht mehr.

von Anja (Gast)


Lesenswert?

Kauf Dir ein Korad-Netzteil. KA3005D o.ä.

nach 2-3 Jahren werden garantiert zufällige Spannungen eingestellt. Egal 
in welche Richtung Du drehst.

Gruß Anja

von oszi40 (Gast)


Lesenswert?

> garantiert zufällige Spannungen

Der TO wird nicht nur die Spannungshöhe, sondern auch Aussetzer haben 
wollen. Dazu fällt mir z.B. noch ein prellender Relaiskontakt ein. 
Relais über Ruhekontakt Spannung unterbrechen ergibt schönen Wagnerschen 
Hammer..

Das Leben ist ein Kompromiss. Die Auswerte-SW muß entweder total träge 
reagieren oder es kommen noch Fehler? Was heute gut geht, kann schon 
morgen durch Staub anders sein.

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


Lesenswert?

Rolf M. schrieb:
> Das ist aber eben auch ein Problem: Dein programmierter
> Encoder-Simulator deckt nur die Feherfälle ab, auf die du reagieren
> möchtest, also an die du vorher explizit gedacht hast.
Mitnichten.
Der, den ich meine, der erzeugt per Zufall eine Quadraturfolge, die von 
50:50 bis zu 5:95 gehen kann, mal mit Flankenwechseln in der Mitte und 
mal knapp beim Wechsel der anderen Spur (zu den X siehe den letzten 
Abschnitt im Post):
1
1: optimal
2
A --------________--------________--------________--------________
3
B ____--------________--------________--------________--------____
4
5
6
2: verschoben
7
A --------________--------________--------________--------________
8
B _______--------________--------________--------________--------____
9
         X       X       X       X       X       X       X
10
11
3: asymmetrisches TV
12
A ----------____------------____------------____------------____--
13
B ________----____________----____________----____________----_______
14
15
16
4: verschoben und asymmetrisch
17
A -----------____------------____------------____------------____--
18
B ________----____________----____________----____________----_______
19
             X               X               X               X

Und darüber wird ein berechnetes und zwischengespeichertes Zufallmuster 
mit Störungen gelegt.

Dann wird das Ganze laufen gelassen und wenn der Empfänger-µC nur 999 
oder auch 1001 Schritte statt 1000 hat, dann wird das 
fehlerproduzierende Muster im Nachtlauf einfach mal abgespeichert.

Danach gehts weiter.

Und am nächsten Morgen kann man dann in aller Ruhe die bis dahin 
angefallenen kritischen Muster durch die Mangel drehen und bewerten.

Am Rande: ich würde hier nur in den Fällen 2 und 4 Probleme erwarten, 
weil nur dort jeweils bei der Position X zwei Flanken auf beiden Spuren 
sehr dicht beieineinader sitzen. Und überraschenderweise ist das 
"unschönere" Signal 4 sogar weniger kritisch als das "hübsche" Signal 
2... ;-)

: Bearbeitet durch Moderator
von Yalu X. (yalu) (Moderator)


Lesenswert?

MaWin schrieb:
> Dann
> bekommst du folgende Signale
1
A ++++++++---+-+--++++++++-+--+---++++++++
2
B --+-+++++++++-+--+--++++++++--+-----++++

> Die Signale können so schnell werden, dass auch der richtige
> Auswertecode damit nichts mehr anfangen kann.

Die von dir gezeigten Beispielsignale können aber mit dem richtigen
Auswertecode noch problemlos verarbeitet werden, ohne dass ein
bleibender Fehler in der Schrittzahl entsteht. Ein Fehler kann höchstens
dann entstehen, wenn sich die Aussetzer auf beiden Kanälen auf
ungeschickte Weise überlappen. Da üblicherweise jeder der beiden
Kontakte mindestens zwei Kontaktzungen hat, müssten vier Kontaktzungen
zeitlich überlappend und in einer ganz bestimmten Reihenfolge abheben,
um einen Fehler zu erzeugen. Das ist selbst bei einem gealterten
Drehgeber äußerst unwahrscheinlich. Wenn der Drehgeber schon so kaputt
ist, dass dieser Fall häufiger auftritt, helfen auch Tiefpässe,
Schmitt-Trigger und dergleichen nicht mehr.

Die allerallermeisten Fehler bei Drehgebern sind wirklich auf
Softwarefehler zurückzuführen.

von MaWin (Gast)


Lesenswert?

Yalu X. schrieb:
> Die von dir gezeigten Beispielsignale können aber mit dem richtigen
> Auswertecode noch problemlos verarbeitet werden, ohne dass ein
> bleibender Fehler in der Schrittzahl entsteht.

Nein.
Denn der klassische Auswertecode braucht eine bestimmte 
Abtastgeschwindigkeit passend zur Strichgeschwindigkeit, sonst kann er 
nicht mehr folgen. Die wird hier aber überschritten.

> Ein Fehler kann höchstens
> dann entstehen, wenn sich die Aussetzer auf beiden Kanälen auf
> ungeschickte Weise überlappen

Das tun sie, denn 1/4 der Position waren beide Kontakte A und B 
geschlossen, kratzen aber.

von Yalu X. (yalu) (Moderator)


Lesenswert?

MaWin schrieb:
> Yalu X. schrieb:
>> Die von dir gezeigten Beispielsignale können aber mit dem richtigen
>> Auswertecode noch problemlos verarbeitet werden, ohne dass ein
>> bleibender Fehler in der Schrittzahl entsteht.
>
> Nein.
> Denn der klassische Auswertecode braucht eine bestimmte
> Abtastgeschwindigkeit passend zur Strichgeschwindigkeit, sonst kann er
> nicht mehr folgen. Die wird hier aber überschritten.

Ich bin davon ausgegangen, dass die Striche und die Lücken jeweils 8
Abtastperioden lang sind und die beiden Signale um 4 Abtastperioden
gegeneinander verschoben sind, also so:

1
gestörte Signale:
2
A ++++++++---+-+--++++++++-+--+---++++++++
3
B --+-+++++++++-+--+--++++++++--+-----++++
4
5
ungestörte Signale:
6
  <--8--->        <4->    <--8--->
7
A ++++++++--------++++++++--------++++++++
8
B ----+++++++++-------++++++++--------++++
9
      <--8--->        <4->    <--8--->

Die einzelnen zusätzlichen "+" in den gestörten Signalen sind nicht
schlimmer als das Kontaktprellen, das bei jedem mechanischen Drehgeber
(auch bei neuen) auftritt.

MaWin schrieb:
>> Ein Fehler kann höchstens dann entstehen, wenn sich die Aussetzer auf
>> beiden Kanälen auf ungeschickte Weise überlappen
>
> Das tun sie, denn 1/4 der Position waren beide Kontakte A und B
> geschlossen, kratzen aber.

Kratzen dürfen sie ja, sie dürfen nur nicht überlappend kratzen, und das
tun sie in deinem Beispiel auch nirgends.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Ein weiterer Fehlerfall wäre wenn eine oder 2 der 3 Spuren ausfallen (A 
 B  0) z.B. wegen Wackelkontakt.

Oder die Siganle A und /A vertauscht anschließt.

Der Fehler kommt relativ oft bei der Installation vor, wenn man was 
falsch anschließt. Ich habe da schon die tollsten Facharbeiten gesehen - 
was jedes mal ein paar Stunden kostete.

von MaWin (Gast)


Lesenswert?

Yalu X. schrieb:
> Die einzelnen zusätzlichen "+" in den gestörten Signalen sind nicht
> schlimmer als das Kontaktprellen, das bei jedem mechanischen Drehgeber
> (auch bei neuen) auftritt.

Doch, wenn sie nicht nur an den Übergängen auftreten, so dass die 
Abtastung auf jeden Fall nochmal einen ungestörten Zustand mittendrin 
erwischt,
sondern vor allem im 1/4 Bereich wo beide Kontakte geschlossen sein 
sollten munter auf beiden Kanälen fast gleichzeitig auftreten. Dann 
wurde nur dann richtig gezahlt werden, wenn beide Kanâle so schnell 
gesampelt werden, dass zwischen 2 einzelben Storungen noch ein 
ungestörter Zustand erwischt wird.

Sooo schnell ist dann aber kaum eine Softwareauswertung, es wären ja 
Mikrosekunden.

Yalu X. schrieb:
> Ich bin davon ausgegangen, dass die Striche und die Lücken jeweils 8
> Abtastperioden lang sind und die beiden Signale um 4 Abtastperioden
> gegeneinander verschoben sind

Ja.

Yalu X. schrieb:
> sie dürfen nur nicht überlappend kratzen, und das
> tun sie in deinem Beispiel auch nirgends.

Na ja, wenn jedes Zeichen ein Abtastpunkt ist (das wäre sogar 4 mal mehr 
als bei idealen Drehgebern nötig) dann zeigt es Problemstellen wo A+B- 
auf A-B+ und A-B+ auf A+B- wechselt  bzw. A+B+ auf A-B-oder A-B- auf 
A+B+ .

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


Lesenswert?

MaWin schrieb:
> dann zeigt es Problemstellen wo A+B- auf A-B+ und A-B+ auf A+B- wechselt
Problemstellen sind immer da, wo zwei Flanken gleichzeitig wechseln, 
denn das bedeutet für die Auswertung, dass seit der letzten Abtastung 
zwei Schritte gemacht wurden. Und blöderweise ist dabei die Richtung 
unbekannt.
Und natürlich gibt es Probleme, wenn der Drehgeber do kaputt ist, dass 
er aufgrund von Störungen komplette "Pseudozyklen" vorgaukelt:
1
ideal:
2
A ----____________________--------------------____________________-----
3
B --------------____________________--------------------_______________
4
Z 0   1         2         3         4         5         6         7
5
6
real:
7
A ----___-________________--------------------_____________--_____-----
8
B --------------___--_______________---____-------------___--__________
9
Z 0   1  21     2  3 2    3         4  3   4  5         5  ? ?    ?
10
11
kompletter Quadraturyklus durch gestörtes Signal:
12
A ----____________--_______-------------------_____________--______-----
13
B --------------___--_______________--------------------____--__________
14
Z 0   1         2 3456     7        8         9        10   9876   7
15
                                                        
16
gestörte Störung:
17
A ----____________----_____--------------------_____________---____-----
18
B --------------___--________________--------------------____-__________
19
Z 0   1         2 34 32    3         4         5         6  5456   7
Das Fazit dürfte sein, dass es schlechte Geber gibt, die schon ab Kauf 
nur suboptimale Signale (Flanken verschoben und Tastverhältnis 
asymmetrisch) liefern und deshalb richtig abgetastet werden müssen.

Und dass es defekte Geber gibt, die irgendwann halt nur noch Blösdinn 
liefern, aus dem man mit einer guten Auswertung noch was "herausfischen" 
kann.

Aber wenn man eben echt so einen kaputten Geber hat, dass er gültige 
"Pseudo-Impulsfolgen" oder "gleichzeitige Flankenwechsel" erzeugt, dann 
wird die Auswertung zum Ratespiel. Klar könnte man bei zwei 
"gleichzeitigen" Flanken dann sagen: "da tun wir dann erst mal nichts". 
Oder auch "bisher hat er nach rechts gedreht, dann werden das jetzt wohl 
zwei schritte nach rechts sein". Aber eigentlich wird dann erst die 
nähere Zukunft die Wahrheit weisen.

von Yalu X. (yalu) (Moderator)


Lesenswert?

MaWin schrieb:
> Yalu X. schrieb:
>> Die einzelnen zusätzlichen "+" in den gestörten Signalen sind nicht
>> schlimmer als das Kontaktprellen, das bei jedem mechanischen Drehgeber
>> (auch bei neuen) auftritt.
>
> Doch, wenn sie nicht nur an den Übergängen auftreten, so dass die
> Abtastung auf jeden Fall nochmal einen ungestörten Zustand mittendrin
> erwischt,
> sondern vor allem im 1/4 Bereich wo beide Kontakte geschlossen sein
> sollten munter auf beiden Kanälen fast gleichzeitig auftreten. Dann
> wurde nur dann richtig gezahlt werden, wenn beide Kanâle so schnell
> gesampelt werden, dass zwischen 2 einzelben Storungen noch ein
> ungestörter Zustand erwischt wird.

Du denkst also bspw. an den folgenden Fall:

1
  0123
2
A -+--
3
B --+-

Jedes Zeichen (+/-) stehe für eine Abtastung, die Abtastungen sind von 0
bis 3 durchnummeriert.

In Abtastschritt 1 wird inkrementiert, Abtastschritt 2 wird wegen des
ungültigen Zustandswechsels komplett ignoriert, und in Abtastschritt 3
wird dekrementiert. Durch die Korrektur in Abtastschritt 3 stimmt der
Zählerstand wieder, und es entsteht kein bleibender Fehler.

Die Korrektur findet auch dann statt, wenn eine der beiden Störungen so
kurz ist, dass sie nicht registriert wird. Wird keine der beiden
Störungen registriert, entsteht sowieso kein Problem.

Problematisch ist nur der folgende Fall, bei dem sich die Störungen (aus
der Sicht des Abtastsystems) überlappen:

1
  01234
2
A -++--
3
B --++-

In den Abtastschritten 1 bis 4 wird jeweils inkrementiert. Dadurch ist
der Zählerstand am Ende um 4 zu hoch. Dieser Fehler wird auch nirgends
korrigiert und bleibt deswegen dauerhaft bestehen.

Das Problem in diesem Beispiel ist, dass die Zustandsfolge kaum von
einer "echten" Drehung um 4 Inkremente unterscheidbar ist. Man könnte im
Auswertealgorithmus allenfalls die High/Low-Zeiten (absolut und relativ
zu den jeweiligen Nachbarn) nach irgendwelchen Heuristiken (die von der
Anwendung abhängen) auf Plausibilität prüfen, um damit zumindest einen
Teil der Störungen zu erkennen. Wie ich aber oben bereits schrieb, ist
dieser Fall so unwahrscheinlich, dass sich eine spezielle Behandlung
kaum lohnt.

MaWin schrieb:
> Na ja, wenn jedes Zeichen ein Abtastpunkt ist (das wäre sogar 4 mal mehr
> als bei idealen Drehgebern nötig) dann zeigt es Problemstellen wo A+B-
> auf A-B+ und A-B+ auf A+B- wechselt  bzw. A+B+ auf A-B-oder A-B- auf
> A+B+ .

Und genau diese ungültigen Zustandswechsel müssen von der Software
erkannt und richtig behandelt werden, dann lassen sich zwar immer noch
nicht alle, aber doch die allermeisten Störungen kompensieren.

von MaWin (Gast)


Lesenswert?

Yalu X. schrieb:
> Du denkst also bspw. an den folgenden Fall:
>   0123
> A -+--
> B --+-

Oder an:
1
A -++-
2
B --+-
als Störungen in einem Bereich wo beide auf Masse kontaktieren sollten.

Yalu X. schrieb:
> dann lassen sich zwar immer noch
> nicht alle, a

So lange Störungen nur kurze Aussetzer der Schleifkontakte sind, und die 
Drehzahl nicht zu hoch ist, helfen kleine Kondensatoren als RC Glied vor 
den Eingängen, langsam aufladen per pull up, schnelles Entladen durch 
Kontakt, die Asymmetrie passt gut zum Fehler, denn dass Kontakte die 
über Isolatoren streifen doch Kontakt geben, kommt eher nicht vor. Bei 
sehr hoher Drehzahl wäre deren Zeitkonstante aber vielleicht zu hoch.

von Tom (Gast)


Lesenswert?

Bei Aliexpress einen bestellen. Das meiste an Elektronik von da ist doch 
immer kaputt.

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


Lesenswert?

MaWin schrieb:
> So lange Störungen nur kurze Aussetzer der Schleifkontakte sind
Ich musste da bei einem mal den Kontaktstrom deutlich auf 25mA erhöhen. 
Das sorgte für ausreichend hohen Fritstrom und die Dinger, die vorher 
kritisch herumzickten, laufen seither wie Butter. Weil ich den 
positionsabhängigen Sromverbrauch von bis zu 50mA nicht dauernd haben 
wollte, wurden die Pullups per IO-Pin nur zur Messung eingeschaltet.

https://de.wikipedia.org/wiki/Frittspannung

von Yalu X. (yalu) (Moderator)


Lesenswert?

MaWin schrieb:
> Oder an:
1
A -++-
2
B --+-

Das sind überlappende Störungen. Dass diese ein Problem darstellen
können, habe ich oben ja schon geschrieben. In deinem ursprünglichen
Beispiel tauchen solche überlappenden Störungen aber nicht auf, weswegen
es dort auch keine Probleme gibt. Deswegen schrieb ich oben

Yalu X. schrieb:
> Die von dir gezeigten Beispielsignale können aber mit dem richtigen
> Auswertecode noch problemlos verarbeitet werden, ohne dass ein
> bleibender Fehler in der Schrittzahl entsteht.

Das willst du mir aber partout nicht glauben, obwohl es ein Leichtes
wäre, die einzelnen Abtastschritte einfach einmal durchzuspielen.

MaWin schrieb:
> So lange Störungen nur kurze Aussetzer der Schleifkontakte sind, und die
> Drehzahl nicht zu hoch ist, helfen kleine Kondensatoren als RC Glied vor
> den Eingängen

Die Kondensatoren wirken sich aber negativ auf die maximal verarbeitbare
Impulsfrequenz des Drehgebers aus. Wenn man bereit ist, dies zu
akzeptieren, kann man die kurzen Aussetzer genauso gut per Software
eliminieren. Die Softwaremethode spart nicht nur die Kondensatoren ein,
sondern funktioniert auch zuverlässiger, weil sie nicht von Streuungen
der Kapazitäten und der Eingangshysteresen beeinflusst wird.

Wer Drehgeber per Software auswertet und dennoch meint, Kondensatoren
und ähnliche Krücken an den Eingängen zur Unterdrückung von Störungen zu
benötigen, hat – wie auch die meisten Mitglieder der Interrupt-Fraktion
– das Prinzip der richtigen Auswertung noch nicht verstanden.

von Holger D. (hodoe)


Lesenswert?

> Wer Drehgeber per Software auswertet und dennoch meint, Kondensatoren
> und ähnliche Krücken an den Eingängen zur Unterdrückung von Störungen zu
> benötigen, hat – wie auch die meisten Mitglieder der Interrupt-Fraktion
> – das Prinzip der richtigen Auswertung noch nicht verstanden.

Hallo, hinsichtlich der Kondensatoren sehe ich das auch so. Ich habe 
nichts außer die internen Pull-Ups. Ich habe hier etwas mit einem 
ATMEGA644 gemacht und arbeite mit Tabelle und Auswertung beider Spuren. 
Mit einem Akkuschrauber in höchster Stufe bringe ich das nicht aus dem 
Tritt. Die Spuren A und B liegen an PC0 und PC1. Ich kann in die 
Auswerteroutine über einen Timer jede 1/1000 Sekunde springen oder aber 
Pin Change Interrupt. Das geht genauso gut. Allerdings muss eine kurze 
Pause nach der Auswertung vor dem RETI rein. Aber 50 µS reichen.

In Assembler keine 200 Bytes. Ich brauche fünf Speicher (Register)

Holger

: Bearbeitet durch User
von Stefan H. (Firma: dm2sh) (stefan_helmert)


Lesenswert?

Nimm das Mausrad einer Razer-Orochi-Maus.

von Tobias (. (Gast)


Lesenswert?

Rolf M. schrieb:
> Hmm, ich weiß nicht, welche im Waldorf Blofeld verbaut sind. Dessen
> Drehgeber sind bekannt für Fehlfunktionen. Da ist die Welle eingefettet,
> um schön leichtgängig zu sein. Leider läuft das Fett mit der Zeit auf
> die Kontakte und stört diese.

Könnte sich aber mit Kontaktspray reinigen lassen, meine ich. Die alten 
Geräte scheinen aber wirklich allesamt besser zu sein. Ich konnte 
letzterdings einen antesten und bin begeistert. Technik aus den 1990er 
Jahren, die noch tadellos funktioniert. Das gilt auch für die Konkurrenz 
von E-mu. Wobei der Händer die Drehgeber wahrscheinlich alle mal 
gesäubert hat.

Leider ist die Technik unerschwinglich geworden. In der Bucht wird 
gerade ein Waldorf Q Rack für sage und schreibe fast 1.700,00 gehandelt. 
Und das für einen 16 Stimmen-Klangerzeuger. Unfassbar.

von Stefan F. (Gast)


Lesenswert?

Holger D. schrieb:
> Ich habe nichts außer die internen Pull-Ups.

Versuche mal heraus zu finden, wie viel Strom die Kontakte der Drehgeber 
mindestens haben wollen. Wenn es dazu keine Angabe gibt, liegt man mit 
1-2 mA meist auf der sicheren Seite.

Wenn der Strom zu gering ist, bildet sich (je nach Material) eine Oxid 
Schicht auf den Kontakten, die nach einigen Jahren zu Fehlfunktionen 
führt.

Das Stichwort dazu ist: Wetting Current

von Holger D. (hodoe)


Lesenswert?

Hier ist ein unschlagbares Angebot zum Testen von Auswerteroutinen ;-)

https://www.pollin.de/p/sort-encoder-inkrementalgeber-drehimpulsgeber-800513

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.