Forum: Mikrocontroller und Digitale Elektronik Noise unterdrücken bei Potentiometern


von General E. (generalerror)


Angehängte Dateien:

Lesenswert?

Hallo,



ich habe 32x 10k-potentiometer, bei denen ich GND/3.3V in reihe 
geschaltet habe.

Wenn die diese nun lese, kommt keiner der potis auf 0. Zudem gibt es 
sehr viele sprünge, also noise.

was wäre der beste weg, dies zu unterdrücken?

LG

: Bearbeitet durch User
von Günter Lenz (Gast)


Lesenswert?

Wenn ich Potis habe, die beim betätigen kratzen, knistern
und rascheln, behandle ich sie mit Feinmechaniköl, das
hilft meistens.

von Soilentgreenday (Gast)


Lesenswert?

Vielleicht fehlt mir der Intellektuelle Zugang aber für mich sieht das 
nicht nach Reihenschaltung sondern nach Parallelschaltung aus.

Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach 
die unteren Bits weglassen.

von frühmorgens (Gast)


Lesenswert?

General E. schrieb:
> Wenn die diese nun lese, kommt keiner der potis auf 0. Zudem gibt es
> sehr viele sprünge, also noise.

Besorg dir eine bessere Brille ohne Sprünge und ein Paar Ohrenschützer. 
Mit einem richtigen Schaltplan und konkreter Beschreibung deines 
Problems könnte man das Problem auch von einer anderen Seite anfassen.

von Tom (Gast)


Lesenswert?

General E. schrieb:
> was wäre der beste weg, dies zu unterdrücken?

- GND und Vcc sternförmig verteilen
- ein kleines C (z.B. 100nF) zwischen Schleifer und GND
- niederohmige Potis verwenden (z.B. 1kOhm)
- Tiefpass per Software (z.B. gleitender Mittelwert)
- langsamer abtasten

Soilentgreenday schrieb:
> Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach
> die unteren Bits weglassen.
Das reduziert zwar die Zahl der möglichen 'Sprungstellen', aber 
eliminiert das Problem nicht.

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


Lesenswert?

General E. schrieb:
> Wenn die diese nun lese
Womit?
Und wie ist das angeschlossen? Wie sieht die Leitungsführung dorthin 
aus?
Und mit welcher Auflösung liest du da aus? Was sind "Sprünge", und wann 
treten die auf?
Und was siehst du, wenn du dort ein Oszilloskop oder wenigstens ein 
Multimeter anschließt?

: Bearbeitet durch Moderator
von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

Soilentgreenday schrieb:
> Vielleicht fehlt mir der Intellektuelle Zugang aber für mich sieht das
> nicht nach Reihenschaltung sondern nach Parallelschaltung aus.
>
> Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach
> die unteren Bits weglassen.

das liegt daran, dass man sowas nicht mit regulären Schaltzeichen zeigt

von Lifehacker (Gast)


Lesenswert?

> Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach
> die unteren Bits weglassen.
hä?
Das ist ja fast wie beim Staubsaugen wenn der rote Indikator "voll" 
anzeigt, und man dann die Luftöffnung aufschiebt, damit man weiter 
saugen kann. Lifehack 2018.

von Peter D. (peda)


Lesenswert?

General E. schrieb:
> Wenn die diese nun lese, kommt keiner der potis auf 0. Zudem gibt es
> sehr viele sprünge, also noise.

Erzähl mal näheres (Schaltung, welcher ADC, Software usw.).
Auch GND-Leitungen haben einen Widerstand, worüber Spannung abfällt.
Was sollen Sprünge sein (wann, wie hoch)?

von A. S. (Gast)


Lesenswert?

Fakten:

1) Auflösung des ADCs? Rauschen/Sprünge bei welchem Bit (gezählt vom 
MSB)?
2) Was zeigt ein Multimeter an? An der Versorgung eines Potis, an 
"Daten", am ADC-Eingang?
3) Was heisst "Daten"? Wenn, dann Schaltung (inclusive Werte der Potis, 
ggf. Spannnungsteiler, Abtastraten etc.
4) Sprünge nur beim schieben oder auch ohne (also Rauschen oder 
mechanisch)?
5) Was heisst "nicht 0"? Kommt der ADC denn überhaupt auf 0, wenn Du 
direkt am ADC mit GND kurzschließt? Hast Du den ADC unter Kontrolle?

von Stefan F. (Gast)


Lesenswert?

Abgesehen von diversen Verbesserungsmaßnahmen solltest du dich darauf 
einstellen, dass alle elektronischen Bauteile mehr oder weniger 
rauschen. Bei ADC mit mehr als 8 bit kann man keine stabilen Werte mehr 
erwarten, ganz egal welchen Aufwand man drumherum treibt.

von Organist (Gast)


Lesenswert?

Sind das Kanalfader und Balance eines Mischpults?
Sind Tiefpassfilter integriert?

von H.Joachim S. (crazyhorse)


Lesenswert?

Das ist ja noch schlimmer als fritzing :-)
Und wenn man schon kein richtiges Programm dafür hat oder bedienen kann, 
dann ist man mit ner Ascii-Zeichnung oder auch nem Foto einer Handskizze 
deutlich besser dabei als mit so einer Schrottsymbolik.
Da der Sachverhalt an sich trivial und auch nicht unbedingt neu ist, 
hätte auch ne die sprachliche Beschreibung gereicht, 99% hier hätten das 
verstanden. Sprich: du hast Arbeit in einen sinnlosen Kram vertan, die 
wirklich wichtigen Sachen aber weggelassen.

Und nun fange noch mal von vorne an, lässt sich alles lösen.

: Bearbeitet durch User
von General E. (generalerror)


Lesenswert?

Soilentgreenday schrieb:
> Vielleicht fehlt mir der Intellektuelle Zugang aber für mich sieht
> das
> nicht nach Reihenschaltung sondern nach Parallelschaltung aus.
>
> Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach
> die unteren Bits weglassen.

Hi,

ich muss zugeben ich habe noobhaft einfach mal so "in Reihe" geschrieben 
weil es für mich so aussah. Aber wenn es Parallelschaltung heisst, dann 
hab ich schon was gelernt jetzt :)

frühmorgens schrieb:
> General E. schrieb:
>> Wenn die diese nun lese, kommt keiner der potis auf 0. Zudem gibt es
>> sehr viele sprünge, also noise.
>
> Besorg dir eine bessere Brille ohne Sprünge und ein Paar Ohrenschützer.
> Mit einem richtigen Schaltplan und konkreter Beschreibung deines
> Problems könnte man das Problem auch von einer anderen Seite anfassen.

ja ich weiss, sorry.. ich dachte ich könnte so auf die schnelle das 
Problem besser erklären.

Tom schrieb:
> General E. schrieb:
>> was wäre der beste weg, dies zu unterdrücken?
>
> - GND und Vcc sternförmig verteilen
> - ein kleines C (z.B. 100nF) zwischen Schleifer und GND
> - niederohmige Potis verwenden (z.B. 1kOhm)
> - Tiefpass per Software (z.B. gleitender Mittelwert)
> - langsamer abtasten
>
> Soilentgreenday schrieb:
>> Mit geringerer Auflösung abtasten könnte auch schon helfen, oder einfach
>> die unteren Bits weglassen.
> Das reduziert zwar die Zahl der möglichen 'Sprungstellen', aber
> eliminiert das Problem nicht.

Super danke :) .. werd das gleich mal probieren.
Könnte es auch an zu dünnen Kabeln liegen?

Lothar M. schrieb:
> General E. schrieb:
>> Wenn die diese nun lese
> Womit?
> Und wie ist das angeschlossen? Wie sieht die Leitungsführung dorthin
> aus?
> Und mit welcher Auflösung liest du da aus? Was sind "Sprünge", und wann
> treten die auf?
> Und was siehst du, wenn du dort ein Oszilloskop oder wenigstens ein
> Multimeter anschließt?

Ich lese mit einem Teensy 3.6, der die Schiebepotis sind zum testen 
direkt an den Teensy angeschlossen. Auflösung ist standardmäßig 10bit. 
Oszilloskop besitze ich leider nicht, aber mit Sprünge meine ich, dass 
die gelesenen Werte sehr "instabil" sind..  habe ich den Poti ganz unten 
auf 0% sollte dieser ja 0 ausgeben, er gibt aber aus 0, 2, 0, 1, 2, 0, 
0, 1, ... die Werte springen also.

@ der Rest.. ich erstelle mal einen Schaltplan.. sorry, ich habe 
gehofft, dass es ein allgemein verbreitetes Problem ist (und ehrlich 
gesagt auch, dass die Lösung einfach ist :D )

von H.Joachim S. (crazyhorse)


Lesenswert?

General E. schrieb:
> @ der Rest.. ich erstelle mal einen Schaltplan.. sorry, ich habe
> gehofft, dass es ein allgemein verbreitetes Problem ist (und ehrlich
> gesagt auch, dass die Lösung einfach ist :D )

brauchst du nicht machen, es haben alle verstanden.

General E. schrieb:
> Ich lese mit einem Teensy 3.6, der die Schiebepotis sind zum testen
> direkt an den Teensy angeschlossen. Auflösung ist standardmäßig 10bit.
> Oszilloskop besitze ich leider nicht, aber mit Sprünge meine ich, dass
> die gelesenen Werte sehr "instabil" sind..  habe ich den Poti ganz unten
> auf 0% sollte dieser ja 0 ausgeben, er gibt aber aus 0, 2, 0, 1, 2, 0,
> 0, 1, ... die Werte springen also.

Das ist stabil für eine reale Welt. +/-1 sind von Hause aus prinzipiell 
immer drin.
Du musst dir mal vor Augen füheren dass du hier von wenigen mV redest. 
Die können allein schon durch Störungen eingekoppelt werden oder auch 
schon auf Wandlerseite selbst durch Schwankungen/Rauschen der Referenz 
entstehen. Jeder Widerstand rauscht, ein Poti durch den Schleifkontakt 
um Grössenordnungen mehr.
Dann kann man immer noch filtern, mehr oder weniger aufwendig. Auf der 
analogen Seite oder besser auf der digitalen Seite. Bei Potis hat man 
den Vorteil, dass Filterfrequenz sehr niedrig liegen kann, das Ding kann 
nun mal nur mit sehr wenigen Hz vertellt werden. Selbst die primitivste 
Mittelwertbildung liefert 6/8, was nach Ganzzahlarithmetik 0 ist.
Filtern ist das Mittel der Wahl, dafür gibts viele Verfahren.

von Soilentgreenday (Gast)


Lesenswert?

Lifehacker schrieb:
> hä?

Dein Gleichnis ist nicht zutreffend.

von Borsolino (Gast)


Lesenswert?

Soilentgreenday schrieb:
> Dein Gleichnis ist nicht zutreffend.

Gleichwohl ist der Einwand berechtigt, weil der Vorschlag, bits 
wegzulassen, die Auflösung weiter verschlechtert. Dann springt gfs ein 
bit weiter oben. Das ist eine sehr sehr schlechte Idee.

von Borsolino (Gast)


Lesenswert?

Peter D. schrieb:
> Erzähl mal näheres (Schaltung, welcher ADC, Software usw.).
> Auch GND-Leitungen haben einen Widerstand, worüber Spannung abfällt.
> Was sollen Sprünge sein (wann, wie hoch)?

Das ist im Grunde vollkommen unerheblich, woher das Rauschen kommt. 
Möglicherweise ist es der Funkmast von irgendeinem verrückten 
Amateurfunker in der Nachbarschaft. Das Rauschen muss weg und filtern 
ist der einzige Weg. Das Einfachste ist sicher ein RC-Glied am Ausgang 
der Potentiometermittelabgriffspunkte.

von Stefan F. (Gast)


Lesenswert?

> habe ich den Poti ganz unten auf 0% sollte dieser ja 0 ausgeben,
> er gibt aber aus 0, 2, 0, 1, 2, 0, 0, 1, ... die Werte springen also.

Das ist schon sehr gut. Wie gesagt kann man nur 8 stabile Bits erwarten. 
Dass bei Dir "nur" die unteren zwei Bits wackeln ist völlig normal.

> Das Rauschen muss weg und filtern ist der einzige Weg.
> Das Einfachste ist sicher ein RC-Glied am Ausgang
> der Potentiometermittelabgriffspunkte.

Das wird keine Lösung sein, denn auch RC Glieder rauschen und - was hier 
noch viel wesentlicher ist - der ADC und seine Referenzspannung rauscht.

Die unteren zwei Bits bekommst du nicht mit analogen Mitteln weg 
gefiltert. Das geht nur digital in Form von Algorithmen.

von H.Joachim S. (crazyhorse)


Lesenswert?

Stefanus F. schrieb:
> Das ist schon sehr gut. Wie gesagt kann man nur 8 stabile Bits erwarten.
> Dass bei Dir "nur" die unteren zwei Bits wackeln ist völlig normal.

Ein weitverbreiter Irrtum, da er eine Scheinlösung des Problems liefert.
Was passiert nach deinem Weglass-Prinzip, wenn der Wandlerwert zwischen 
sagen wir 3 und  4 wackelt?
Du kannst sogar 9bit weglassen und bist immer noch ohne immer stabiles 
Ergebnis (wackelt zwischen 511 und 512).

von Hugo E. (Gast)


Lesenswert?

H.Joachim S. schrieb:
> Stefanus F. schrieb:
>> Das ist schon sehr gut. Wie gesagt kann man nur 8 stabile Bits erwarten.
>> Dass bei Dir "nur" die unteren zwei Bits wackeln ist völlig normal.
>
> Ein weitverbreiter Irrtum, da er eine Scheinlösung des Problems liefert.
> Was passiert nach deinem Weglass-Prinzip, wenn der Wandlerwert zwischen
> sagen wir 3 und  4 wackelt?
> Du kannst sogar 9bit weglassen und bist immer noch ohne immer stabiles
> Ergebnis (wackelt zwischen 511 und 512).

Vor allem ist das "Wackeln" ja nicht das einzige Problem des TO.

General E. schrieb:
> Wenn die diese nun lese, kommt keiner der potis auf 0.

von Peter D. (peda)


Lesenswert?

Borsolino schrieb:
> Möglicherweise ist es der Funkmast von irgendeinem verrückten
> Amateurfunker in der Nachbarschaft.

Das würde ich als allerletztes in Betracht ziehen.
In der Regel sind es eine ungeschickte GND-Verdrahtung oder Ripple auf 
VCC/VREF.
Viele MCs haben deshalb einen Sleepmode für die AD-Wandlung, d.h. für 
die Wandlung wird die CPU angehalten, um selber keinen Ripple zu 
verursachen.

von Stefan F. (Gast)


Lesenswert?

> Ein weitverbreiter Irrtum, da er eine Scheinlösung des Problems liefert...

Ich hatte damit auch nicht gemeint, dass mann die unteren Bits einfach 
weg lassen soll. Du hast schon recht, je nach Werte betrifft das wackeln 
auch höhere Bits.

Was ich meinte ist, dass man bei 10 Bit schon damit rechnen muss, dass 
die Werte um bis zu 3 Schritte hoch und runter zappeln (0-3 entsprechend 
2 Bits).

Wenn man einen 12 Bit Wandler hätte, muss man mit Schwankungen bis +/- 
15 rechnen (0-15 entsprechend 4 Bits).

von Soilengreenday (Gast)


Lesenswert?

Borsolino schrieb:
> Das ist eine sehr sehr schlechte Idee

Nein ist es nicht. Die wackeligsten Bits werden weggelassen. Um eine 
Änderung an einem Höherwertigen Bit herbei zu führen ist unten herum 
mehr Änderung nötig. Klar kann einer auf der Kippe stehen, aber bis zur 
nächsten Änderung ist es deutlich weiter.
Es ist doch wohl offensichtlich, daß eine höhere Auflösung auch mehr 
Rauschen abbildet.
Es ist tatsächlich nur eine Reduktion der Auflösung.
Im Zweifelsfall hilft hier einfach mal Ausprobieren.

von Mittelwert-Experte (Gast)


Lesenswert?

um das Ganze zu beruhigen kannst du auch digital filtern. Einfach den 
Mittelwert von 100 Werten bilden. Dann sollte es sich ebenfalls 
beruhigen.

von Mikki M. (mmerten)


Lesenswert?

Auch sollte sich der TO seine Schaltung nochmals genau anschauen, 
Eingangsmultiplexer haben z.B. eine gewisse Umschaltzeit und der ggf. 
interne S/H Kondensator will auch entsprechend ge-/entladen werden, die 
man abwarten sollte. Ebenso ist der Irrglaube weit verbreitet das R/R 
Technik bei einfacher Spannungsversorgung real die Werte 0 und Vcc 
abgebildet werden können. Hier ist meistens ein unterer und oberer 
Offset zu berücksichtigen. Das Datenblatt schafft Klarheit.

von General E. (generalerror)


Lesenswert?

Hugo E. schrieb:
> H.Joachim S. schrieb:
> Vor allem ist das "Wackeln" ja nicht das einzige Problem des TO.
>
> General E. schrieb:
>> Wenn die diese nun lese, kommt keiner der potis auf 0.

ja das ist grade mein hauptproblem... keiner der potis kommt auf 0.. 
bleiben alle bei ~100 stehen wenn ich den poti auf 0% drehe.

Peter D. schrieb:
> Borsolino schrieb:
>> Möglicherweise ist es der Funkmast von irgendeinem verrückten
>> Amateurfunker in der Nachbarschaft.
>
> Das würde ich als allerletztes in Betracht ziehen.
> In der Regel sind es eine ungeschickte GND-Verdrahtung oder Ripple auf
> VCC/VREF.
> Viele MCs haben deshalb einen Sleepmode für die AD-Wandlung, d.h. für
> die Wandlung wird die CPU angehalten, um selber keinen Ripple zu
> verursachen.

ja das kam mir auch in den Sinn, ich habe diese gängigen (sehr dünnen) 
litzen verwendet.. sollte ich für GND und 3.3V dickere kabel, evtl mit 
verzinntem kern nehmen?

was bedeutet "Ripple auf VCC/VREF" ?

von Peter D. (peda)


Lesenswert?

General E. schrieb:
> ja das ist grade mein hauptproblem... keiner der potis kommt auf 0..
> bleiben alle bei ~100 stehen wenn ich den poti auf 0% drehe.

Ich sehe da überhaupt kein Problem. So ein µC kann doch rechnen, ziehste 
einfach 100 ab.

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


Lesenswert?

General E. schrieb:
> er gibt aber aus 0, 2, 0, 1, 2, 0, 0, 1, ... die Werte springen also.
Die "springen" nicht. Das ist normales Rauschen, das daher kommt, dass 
du vermutlich deinen Aufbau und vor allem die Leitungsführung nicht 
optimal ausgelegt hast. Deshalb meine Anregung mit dem Foto vom 
tasächlichen Aufbau.

General E. schrieb:
> gehofft, dass es ein allgemein verbreitetes Problem ist
Ist es auch. Das nennt sich EMV, Einkoppeln von Störungen, usw...

> (und ehrlich gesagt auch, dass die Lösung einfach ist :D )
Das ist sie auch:
1. du musst das Ganze EMV-tauglich aufbauen
2. du darfst nicht erwarten, dass da gar nichts zappelt

Was willst du denn mit dem Wert machen?
Wie genau und stabil muss der denn sein?

General E. schrieb:
> ja das ist grade mein hauptproblem... keiner der potis kommt auf 0..
> bleiben alle bei ~100 stehen wenn ich den poti auf 0% drehe.
Und was passiert, wenn du den Schleifer herunter schiebst und mit einer 
Drahtbrücke nach GND verbindest?

: Bearbeitet durch Moderator
von J. S. (engineer) Benutzerseite


Angehängte Dateien:

Lesenswert?

Soilengreenday schrieb:
> Nein ist es nicht. Die wackeligsten Bits werden weggelassen. Um eine
> Änderung an einem Höherwertigen Bit herbei zu führen ist unten herum
> mehr Änderung nötig. Klar kann einer auf der Kippe stehen,

Das ist aber keine gute Lösung. Das Spektrum des Rauschens wird damit 
tieffrequenter, weil es seltener kippt und zugleich absolut größer. Das 
sollte man anders lösen (s.u)

General E. schrieb:
> Wenn die diese nun lese, kommt keiner der potis auf 0.

Man kann die Potis mit Widerständen und negativen Spannungen trimmen, 
damit sie exakte Spannungen abgeben. Bei hochwertigen Analogpulten macht 
man das mit OPV-Schaltungen, die gleich filtern und die Verstärkung 
einstellen. Bei ditialer Verarbeitung kann man sich das schenken:

Du brauchst nur eine Skalierung, eine Offsetverschiebung und einen 
beidseitigen Limiter, um die digitalen Werte abzubilden und dann einen 
adaptiven Rauschfilter. All das macht man in SW. Das Rauschen auf den 
Leitungen sollte Dir helfen, die Auflösung des Potentiometers um 4 Bit 
hochzuschrauben, dass du gut Skalieren kannst.

Der Offset des Potis oder des Wandlers werden einfach unterdrückt.
Üblicherweise schneidet man die unteren digit weg und schiebt alles 
offsetmäßig auf Null. D.h. dein Potentiometer gibt schon auf den letzten 
Millimetern oben und unten das Maximum und die Null aus. Damit 
korrigiert man man eigentlich alles, wenn man will, sogar auch die 
Einbaulage, wenn sie nicht genau 270 Grad haben und gfs. auch 
Lichtlinearität.

http://www.96khz.org/htm/midicontroller16.htm

Ich verwende bei mir z.B. eine Abtastrate von knapp 1kHz für die Potis 
in meinem Controller, filtere sie mit einem RC-Filter individuell und 
schiebe sie über Analog-MUX in den ADC. Von da aus in ein IIR-Filter. Da 
kommen dann aus einem LTC-ADC mit 12/14 Bits effektiv 16Bits raus, die 
man fein genug auf 12 Bit skalieren kann. In Deinem Fall sollte es mit 
10+4 gehen. Wenn Du dann nach der ersten Filterung und Skalierung Werte 
von z.B. 10 bis 1050 fertig hast, kommt dann noch eine Hysterese drauf, 
z.B. gibt man eine Änderung erst weiter, wenn sie mindestens 2 oder 3 
finale digit waren. Dann wird der Offset abgezogen und auf 0 / 1000 
limitiert. Das Limiten und Skalieren kann man auch dynamisch machen, 
wenn man die Potis zu Beginn eintrainiert.

Habe mal ein Bild eingefügt: Blau ist der Winkel des Potis von 
theoretisch -135 Grad ... 135 Grad, das 10fach überzeichnete Rauschen 
des Wandlerwertes und die prozessierte Kurve (ebenfalls mit 10fach 
erhöhten Schritten).

: Bearbeitet durch User
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.