mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Poti Werte glätten


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Jan (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Hallo Zusammen,

ich habe ein 10Gang-5k Poti... das ganze nimmt von einem Garagentor die 
Stellung ab

momentan ist das Stur an einem Arduino mit 5V angeschlossen,... die 
Kabel sind keine 10cm lang.

dennoch habe ich gut Störungen und die zahl schwankt nicht nur im 
einstelligen bereich sondern macht auch "hin und wieder" komische 
Sprünge.
> Der tausch des Potis hilft zwar etwas, aber ganz bekomme ich die "Fehler" nicht 
weg.

nun meine Fragen:
1. was kann ich Hardwaremäßig verbessern => Widerstände / Kondensatoren
2. wie kann ich Softwaremäßig das ganze so Glätten, dass ich eine 
konstante Zahl habe

auf die "Genauigkeit" kommt es hier nicht an, ob das Tor nun 10cm weiter 
oben erkannt wird oder 10cm weiter unten spielt keine Rolle... dennoch 
sollten die (etwa 7 gebrauchen) Umdrehungen möglichst gut zurückgegeben 
werden.

Vielen Dank
- Jan

Autor: Jan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja... ein kleiner Nachtrag noch:

der Messintervall wird mit einem kleinen Delay von ~20ms künstlich 
reduziert!

Autor: Niine (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Mit einem gleitenden Mittelwert in Software zum Beispiel

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Du sammelst z.B. 16 Werte, addierst sie auf und teilst nach 16 Messungen 
die Summe durch 16. Das wäre dann eine einfache Mittelung. Es schadet 
aber sicher nicht, zwischen ADC Eingang und Masse noch einen 
Glättungskondensator zu schalten, z.B. 10nF - 100nF. Auf Geschwindigkeit 
kommts ja hier nicht an.

: Bearbeitet durch User
Autor: Ach Du grüne Neune (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Jan schrieb:
> 1. was kann ich Hardwaremäßig verbessern

Mit einem RC-Glied.

Jan schrieb:
> 2. wie kann ich Softwaremäßig das ganze so Glätten

Mit einem Datenvorratsspeicher von max. 0,5 Sekunden. Ist aber 
wahrscheinlich zu aufwendig. Ich würde mir dabei selber die Karten 
legen.

Autor: PeterL. (Gast)
Datum:

Bewertung
-10 lesenswert
nicht lesenswert
Du darfst einen Eingang nicht so einfach laufen lassen. Da sollte immer 
ein Pullup Widerstand mit dran hängen. Irgend etwas zwischen 4,4k und 
10k. Ein Bein auf 5V das andere an den Eingang.
Dann noch einen 100nF Keramikkondensator, ein Bein auf GND und das 
andere ebenfalls an den Eingang.

Du solltest dich generell mit dem ganzen Thema Entstörung etwas mehr 
befassen, so ein Arduino stürzt auch gerne mal ab bei Störungen. Nicht 
genutzte Pins am Arduino z.B. als Ausgang konfigurieren.

Dann suche noch nach einer Anleitung für den Reset Pin vom Arduino. Auch 
der hätte gerne noch einen Widerstand + Kondensator.

Zwischen mal fix auf dem Steckbrett für 5min, oder irgendwo eingebaut 
über Monate, ist schon ein gewaltiger Unterschied.

Was für eine Stromversorgung hast du? Da schadet der eine oder andere 
Kondensator meist auch nicht.

Autor: Wolfgang (Gast)
Datum:

Bewertung
3 lesenswert
nicht lesenswert
PeterL. schrieb:
> Du darfst einen Eingang nicht so einfach laufen lassen. Da sollte immer
> ein Pullup Widerstand mit dran hängen. Irgend etwas zwischen 4,4k und
> 10k. Ein Bein auf 5V das andere an den Eingang.

Solange das Poti am Eingang hängt, wird der Eingang wohl nicht offen 
laufen.

Ein Schaltplan, der die momentane Verschaltung wiedergibt, wäre nicht 
die schlechteste Möglichkeit, um zu erfahren, wie das Poti mit dem 
Arduino angeschlossen ist?

Dann kann man mehr sagen.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
9 lesenswert
nicht lesenswert
PeterL. schrieb:
> Du darfst einen Eingang nicht so einfach laufen lassen. Da sollte immer
> ein Pullup Widerstand mit dran hängen. Irgend etwas zwischen 4,4k und
> 10k. Ein Bein auf 5V das andere an den Eingang.

Das ist Unsinn. Damit verfälscht man nur die Messung und hat kein 
bisschen geglättet.
Ein 5k 10-Gang Poti ist ja nun auch keine besonders hochohmige Quelle. 
Der RC Tiefpass ist da die richtige Wahl, zusätzlich eine Mittelung in 
Software.

Autor: Netzbrummen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das RC-Glied und eine saubere Versorgungsspannung wurden bereits 
erwähnt.

Oft vorhandene Fehler durch eingestreute 50Hz-Felder können per Software 
praktisch vollständig herausgefiltert werden:

Viele Messungen Über genau 20ms (oder Vielfache davon) mitteln.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Der RC Tiefpass ist da die richtige Wahl, zusätzlich eine Mittelung in
> Software.

Bevor man mit irgendwelchen Filtern auf die Störungen einschlägt, sollte 
man erstmal klären, wieso die Messwerte überhaupt so extrem rumzappeln. 
Bei 10cm Leitungslänge und 5kΩ Potiwiderstand muss irgendetwas oberfaul 
sein. Da sollte man das Übel an der Wurzel packen und nicht 
irgendwelchen Dreck mit unbekannter Ursache einfach platt bügeln.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan schrieb:
> dennoch habe ich gut Störungen und die zahl schwankt nicht nur im
> einstelligen bereich sondern macht auch "hin und wieder" komische
> Sprünge.

Ob mehr als einstellige Schwankungen einer Zahl ernst sind, hängt davon 
ab, wie groß die Zahl ist.

Schaltung, Log von Messdaten, Oszibild vom Eingangssignal - das würde 
jetzt weiter helfen.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Du sammelst z.B. 16 Werte, addierst sie auf und teilst nach 16 Messungen
> die Summe durch 16. Das wäre dann eine einfache Mittelung.

Zusätzlich werfe ich die beiden Grenzwerte weg, also Minimum und Maximum 
(man schaue in die Befehlsreferenz "min" und "max").

Aus mir unklaren Gründen habe ich auch schon mehrfach eine sinnlose 1023 
bei der ersten Messung bekommen, ich werfe diese generell weg.

> zwischen ADC Eingang und Masse noch einen Glättungskondensator zu schalten, z.B. 
10nF - 100nF.

Das sollte Standard sein?

> Auf Geschwindigkeit kommts ja hier nicht an.

Genau, die Tormechanik ist so langsam, dass man sich eine 
Mehrfachabtastung problemlos leisten kann.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manfred schrieb:
> Aus mir unklaren Gründen habe ich auch schon mehrfach eine sinnlose 1023
> bei der ersten Messung bekommen, ich werfe diese generell weg.

Und du bist sicher, dass die Wandlung bereits beendet war, als du diese 
Zahl ausgelesen hat.

AVCC und VCC sind entkoppelt, AVCC ist separat abgeblockt, das Poti 
hängt mit an AVCC, an ARef hängt ein Pufferkondensator - dann ist ja 
gut.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
>> Aus mir unklaren Gründen habe ich auch schon mehrfach eine sinnlose 1023
>> bei der ersten Messung bekommen, ich werfe diese generell weg.
>
> Und du bist sicher, dass die Wandlung bereits beendet war, als du diese
> Zahl ausgelesen hat.

Ich wüsste nicht, dass man das in der Arduino-Umgebung abfragen kann. 
Ich mache irgendwann im Programmablauf ein "analogRead(Pinnummer)" und 
muß hoffen, dass der Wert passt. Da mein Zeug relativ zeitunkritisch 
ist, hatte ich noch keine Not, das beforschen zu müssen.

Int Irgendwas = analogRead(Pinnummer)
delay(1)
Danach habe ich noch nie eine unpassende 1023 bekommen.

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso verwendet man nicht einfach einfach eine Gabellichtschranke mit 
Encoderscheibe oder einen Drehencoder statt Poti?

Autor: Analog OPA (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens schrieb:
> Wieso verwendet man nicht einfach einfach eine Gabellichtschranke mit
> Encoderscheibe oder einen Drehencoder statt Poti?

Teuer und nicht besser, denn die prellt auch ein bischen. Ein Poti mit 
RC ist schon die richtige Lösung. Dann dahinter aber ein 
Hysteresefilter, das erst nach Erreichen einer minimalen Differenz einen 
Wert weitergibt. Dann ist das Rauschen wech.

Autor: Istdochso (Gast)
Datum:

Bewertung
-4 lesenswert
nicht lesenswert
Alles Quatsch was hier geschrieben wird, leider.

Folgendes; Du speicherst 16 Werte in eine Liste, sortierst sie, löschst 
jeweils die zwei höchsten und zwei niedrigsten Werte. Anschließend 
addierst du die Einzelwerte deiner Liste in einer Schleife auf, teilst 
diesen Wert durch 12 und hinterlegst den in einer Variable (zb 
AlterWert)

Im nächsten Schritt tust du das gleiche noch einmal mit dem Unterschied, 
dass du den neuen gemittelten Wert in einer zweiten Variablen 
hinterlegst (zb NeuerWert)

Nun berechnest du:

AlterWert= NeuerWert*(1-Filterfaktor) + AlterWert*(Filterfaktor);

Mit einem Filterfaktor (zb 0.001 bis 0.999) deiner Wahl.

Gruß

Autor: Wolfgang (Gast)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
Vielleicht kratzt das Poti und der niedrigste Wert ist der richtige 
Wert. Dann ist der Median richtiger Bockmist, weil der richtige Wert 
dabei weggeschmissen wird.

Vielleicht sammelt es sich Störungen von Sonstwas ein und beim Störer 
muss nur der Gehäuseschirm mal wieder festgeschraubt werden.

Vielleicht liegt auch ein elementarer Schaltungsfehler vor.

Hier ist URSACHENFORSCHUNG und nicht SCHÖNRECHNEREI gefragt.

Autor: A. S. (achs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jan, es hört sich an, als gibt es da einen oder mehrere FEHLER in deinem 
System. Finde die, bevor du darüber nachdenkst, sie zu kaschieren.

Miss den Eingang mit oszi, um zu sehen, ob es Probleme im Analogteil 
gibt.Geh  Mal mit konstanter Spannung rein, ließ das Datenblatt zum 
ADC-eingang, Übersprechen der Nachbarn etc.

Printe lle rroh-adc-werte aus, um da Muster zu entdecken.

Einfach mitteln ist Quatsch.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vor dem Eingang eines AD-Wandler kommt immer ein Aliasing filter:

http://www.ti.com/lit/an/slyt626/slyt626.pdf

Danach kannst du eventuell noch einen FIR Filter per Software machen 
oder den Mittelwert bilden.

Falls dein Poti Spruenge macht so bezeichnet man das als Ausreisser.
Dafuer gibt es statistische Verfahren wie man soetwas erkennt und aus 
seinen Daten rauswirft.

https://de.wikipedia.org/wiki/Ausreißertest_nach_Grubbs

Olaf

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Hier ist URSACHENFORSCHUNG und nicht SCHÖNRECHNEREI gefragt.

So isses.
Die erste Frage ist mal, wie das Poti angeschlossen ist. Es sollte 
direkt mit AGND, AIN, AREF des MC verbunden sein und nirgends sonst. Am 
besten über ein geschirmtes Kabel. Dann müßte eigentlich jede Messung 
stehen wie ein Fels.

Autor: Bernhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Istdochso schrieb:
> Nun berechnest du:
>
> AlterWert= NeuerWert*(1-Filterfaktor) + AlterWert*(Filterfaktor);
>
> Mit einem Filterfaktor (zb 0.001 bis 0.999) deiner Wahl.

Was soll das bewirken?

Autor: Apollo M. (Firma: @home) (majortom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
diese art filter ist bekannt als linear recursive exponential filter.
der genannte "filterfaktor" ist die gewichtung alt gegen neuen wert.
je nach gewichtung stellt sich somit ein neuer stationärer wert erst 
nach x interationen ein und somit werden ausreiser/sprünge nicht 
durchgereicht. die "kunst" ist jetzt die gewichtung passend zur 
gewünschten systemantwortzeit zu defininieren.

diese art filter wird oft und gerne eingesetzt, wenn die latenzzeit im 
sinne von echtzeit kein problem darstellt.

wie man leicht erkennt ist bei weight = 1 der filter wirkungslos, daher 
der neue wert wird direkt durchgereicht und umgekehrt bei weight = 0 
geblockt. beide fälle wären im sinne eines filter eigentlich sinnlos.

weight < 0.5 "bevorzugt" den alten wert, daher dauert es länger bis ein 
neuer wert sich am ausgang zeigt und der smooth faktor is noch größer.


mt

---
float expFilter (float weight, float *currentValue, float newValue) {
  //linear recursive exponential filter, weight e.g. 0.3=30%
  //y(t)=(1-w)*y(t-1)+w*x(t)
  *currentValue = (1 - weight) * (*currentValue) + weight * newValue;
  return *currentValue;
}

: Bearbeitet durch User
Autor: m.n. (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Apollo M. schrieb:
> diese art filter wird oft und gerne eingesetzt,

Ich suche noch ein Filter, was mir aus Zufallszahlen die richtigen Werte 
für den ADC generiert. Dann könnte man sich das Poti doch komplett 
sparen?

Autor: Wolfgang (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Olaf schrieb:
> Vor dem Eingang eines AD-Wandler kommt immer ein Aliasing filter:
>
> http://www.ti.com/lit/an/slyt626/slyt626.pdf

Auch Quatsch. Wenn in dem Eingangssignal keine (nennenswerten) 
Signalanteile oberhalb der halben Abtastfrequenz sind, braucht man kein 
Anti-Aliasing Filter. Und wenn die darüberliegenden Anteile so klein 
sind, dass einen Aliasing nicht stört, braucht man es auch nicht.

Die Position eines Garagentores sollte nur relativ niederfrequente 
Signalanteile enthalten, solange das Tor beim Bewegen nicht fürchterlich 
schwingt.

Autor: chris (Gast)
Datum:

Bewertung
-1 lesenswert
nicht lesenswert
Manfred schrieb:
> Aus mir unklaren Gründen habe ich auch schon mehrfach eine sinnlose 1023
> bei der ersten Messung bekommen, ich werfe diese generell weg.

Jajaa das allg. Problem wenn man nur Arduino macht ohne Kenntnisse! 
Schaue er ins Datenblatt, da ist erklärt, unter ADC, was zu beachten ist 
wenn man Kanalumschaltung betreibt, ebenso wenn man den ADC-Kanal per 
Software mit 0000 auf GND legt, ist die erste Messung grundsätzlich 
Schrott.


Manfred schrieb:
> Ich wüsste nicht, dass man das in der Arduino-Umgebung abfragen kann.
> Ich mache irgendwann im Programmablauf ein "analogRead(Pinnummer)" und
> muß hoffen, dass der Wert passt. Da mein Zeug relativ zeitunkritisch
> ist, hatte ich noch keine Not, das beforschen zu müssen.

Ernsthaft?????????
Wie wertest du denn es aus das der ADC fertig ist ? Polling oder mit 
Interrupt ?

Und ja wenn man sich mal das DB angeschaut hätte, wüsstest du das man 
nicht einfach wild den ADC ausliest....


Zur Auswertung selbst gibt es zB. evtl. andere Verfahren wie die Nutzung 
einer Impulsscheibe am Motor was die gesamte Auswertung deutlich 
einfacher macht als mit nem Poti.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Apollo M. schrieb:
> diese art filter ist bekannt als linear recursive exponential filter.

Was für ein toller Name.

Früher (tm) hätte man das "Tiefpass 1. Ordnung" genannt. Nur wurde es 
damals z.B. mit einer simplen Widerstand-Kondensator Kombination 
realisiert und nicht mit tausenden von Transistoren ;-)

Autor: Günter Lenz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Untersuche mal dein Poti alleine, mit Oszillograf beim drehen
beobachten, ob es nicht kratzt und Sprünge macht. Kommt bei
Potis oft vor, daß der Schleifer keinen richtigen Kontakt gibt.
Ich kenne das, wenn ich sie bei NF-Verstärker als Lautstärkesteller
benutze.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Auch Quatsch. Wenn in dem Eingangssignal keine (nennenswerten)
> Signalanteile oberhalb der halben Abtastfrequenz sind, braucht man kein
> Anti-Aliasing Filter.

Nein, doppelt negierter Quatsch ist wieder richtig. :-)

Klar, man braucht niemals einen Filter wenn man immer weiss das es 
nichts zu filtern gibt. Aber in der Praxis kommt es eben doch mal vor 
das WDR2 oder das Handy in der Tasche auf der Leitung sind. Da tut ja 
wohl eine RC-Kombination nicht weh. Zumal man ja das C oft sowieso 
benoetigt um den Strombedarf des ADC zu befriedigen.

Olaf

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ihr seid doch irre....
Hört ihr euch auch selber zu?

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> Ihr seid doch irre....
> Hört ihr euch auch selber zu?

Ist doch alles gut - wie immer.

Es ist Freitag, der TO liefert keine Fakten und hat sich zurück gezogen, 
die Spekulationen und exotischen Vorschläge treiben munter ihre Blüten.

Autor: Curby23523 N. (nils_h494)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Es ist Freitag, der TO liefert keine Fakten und hat sich zurück gezogen,
> die Spekulationen und exotischen Vorschläge treiben munter ihre Blüten.

Was soll er hier auch weiter zu beitragen? Die Tips wird er womöglich 
nicht verstehen. Ich denke er baut einen Filter, glättet zusätzlich mit 
einem Mittelwert, lässt dieses Thema beruhen und die Leute sich zanken.

: Bearbeitet durch User
Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Curby23523 N. schrieb:
> lässt dieses Thema beruhen und die Leute sich zanken.

Und er hat recht. Wenn dann Tipps kommen a là man soll 'das Poti an AREF 
anschliessen', dann kann man nur hoffen, das er das nicht tut. 
Sinnvoller wäre z.B.
'Schliesse an AREF noch einen Kondensator mit z.B. 100nF gegen Masse 
an.'

: Bearbeitet durch User
Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Wenn dann Tipps kommen a là man soll 'das Poti an AREF
> anschliessen', dann kann man nur hoffen, das er das nicht tut.

Och, ein bißchen ratiometrisch könnte bei einem Potentiometer nicht 
schaden.
Und wenn man den ADC richtig konfiguriert, ist auch Aref an AVcc kein 
Problem, auch wenn das viele Leute sicherlich nicht raffen.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> auch wenn das viele Leute sicherlich nicht raffen.
Der Schwachsinn ist dann das berühmte "Tüpfelchen auf dem i"

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Wenn dann Tipps kommen a là man soll 'das Poti an AREF
> anschliessen', dann kann man nur hoffen, das er das nicht tut.

Natürlich muß das Poti an die Referenzspannung, damit sich Änderungen 
von UREF rauskürzen. Ansonsten hat man Meßfehler.
Sinnvoller Weise konfiguriert man UREF = AVCC, d.h. das Poti kommt an 
AVCC.
Eine externe Referenz ist natürlich auch denkbar, dann kommt das Poti 
dort ran.
Die interne Referenz zu nutzen ist ungünstig, dann braucht man für das 
Poti noch einen Spannungsfolger. Auch ist nicht bei allen AVRs die 
interne Referenz außen abgreifbar.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> d.h. das Poti kommt an AVCC.
Sinnvoll!

Aber nicht das Poti an Aref!
Der Pin ist nicht belastbar.
Außerdem möchte man da keine Antenne dran haben
Über einen Impedanzwandler, ok...

Ja, bei einem Poti ist eine ratiometrische Messing wohl das Beste.
Aber dann, wie vorher vorgeschlagen den Mittelabgriff mit 10µF zu 
stützen?
NO!
Damit macht man sich die ratiometrische Messung kaputt.
Schwankungen des Avcc werden nicht mehr ausgeglichen.

Ein paar pF oder nF, ok, aber keine vielen µF.


----

Aref fest an Avcc zu klemmen,
> auch wenn das viele Leute sicherlich nicht raffen.
Ist schwachsinnig.
Damit ist das Board auf eine feste Aref festgelegt.
Das ist gerade bei Arduino Bastelboards wenig sinnvoll.
Das kann/sollte  bei der ADC Konfiguration gemacht werden.
Die Arduino analogRead() Funktion tut das.
analogReference() setzt die Referenz nur in einem Merker, nicht im ADC 
selber. Das tut erst analogRead(),

Was auch der Grund dafür ist, dass der erste gelesene Wert derbe daneben 
liegen wird/kann. Es braucht halt etwas bis Aref den eingestellten Pegel 
erreicht hat.
Die alternative wäre die ADC Register händisch zu manipulieren und ein 
Zeitchen zu warten. Dann ist auch der erste gelesene Wert ok.

Wolfgang schrieb:
> Und du bist sicher, dass die Wandlung bereits beendet war, als du diese
> Zahl ausgelesen hat.
Ich bin mir sicher!
analogRead() wartet auf des Ende der Konvertierung.
Das ist fest eingebaut.
Die Ursache für die erste Fehlmessung habe ich schon beschrieben.


----

Und ja, ich stimme meinen Vorrednern zu, welche sagen, erst die erst die 
von extern hereingetragenen Störungen dämpfen/vermindern, bevor man 
anfängt die Messwerte schön zu rechnen.

Autor: Sebastian S. (amateur)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Von vorne bis hinten verdrillte und gut geschirmte Leitungen. So ein 
System wird schnell zur Antenne.
Auf ordentliche Masseverbindung achten.
Die Leitungen nicht nach dem Motto: Darf es denn auch ein bisschen mehr 
sein? verlegen, sondern so kurz wie möglich.
Parallel zum Poti ein dicker Kondensator. Am Poti.
Parallel zum Schleifer ein nicht zu kleiner Kondensator und eventuell 
eine Spule in Reihe. Natürlich erst im Messsystem.
Keine unnötig hohe Abtastfrequenz. Es geht um Mechanik, da tut sich im 
Mikrosekundenbereich nichts. Auch würden die vorgeschlagenen 
Kondensatoren was dagegen haben. Solltest Du dem Drang, nach kurzen 
Messzyklen nicht widerstehen können: Alle integrieren.

... falls der TO überhaupt noch unter den Lebenden weilt;-)

: Bearbeitet durch User
Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> Aber nicht das Poti an Aref!
> Der Pin ist nicht belastbar.

Wenn man intern AVcc auf Aref schaltet, ist Aref durchaus belastbar. 
Beim ATmega328 ist der Innenwiderstand rund 60 Ohm. Gegenüber der 5 kOhm 
Last ist das vernachlässigbar gering und hebt sich wegen der 
ratiometrischen Messung sowieso völlig auf.

Sebastian S. schrieb:
> Von vorne bis hinten verdrillte und gut geschirmte Leitungen. So ein
> System wird schnell zur Antenne.
> Auf ordentliche Masseverbindung achten.
> ... dicker Kondensator, nicht zu kleiner Kondensator, eine Spule
> ... und und und

Am besten noch 10 mm² in purem Gold als Anschluß.
Habt Ihr alle einen Schiss vor 10 cm Zuleitungen :-(

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> Und wenn man den ADC richtig konfiguriert, ist auch Aref an AVcc kein
> Problem, auch wenn das viele Leute sicherlich nicht raffen.

Traust du dem internen über das ADMUX Register gesteuerten Schalter 
nicht, oder wozu soll das gut sein?

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wolfgang schrieb:
> Traust du dem internen über das ADMUX Register gesteuerten Schalter
> nicht,

Doch, doch. Ich schrieb doch, daß er rund 60 Ohm hat, was überhaupt 
nicht stören muß, wenn man es begreift.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> wenn man es begreift.
Ja, wenn man es begreift, dass man sich damit eine Frikadelle ans Knie 
nagelt.

Wenn der interne Schalter doch so toll ist, warum muss man sich mit 
einer Brücke von Avcc zu Aref, für alle Zeiten die interne Referenz 
vernageln?
Das ist doch Schwachsinn.

Ich halte das für einen vollkommen dämlichen Tipp.

: Bearbeitet durch User
Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Arduino F. schrieb:
> einer Brücke von Avcc zu Aref

Wisch Dir mal den Schaum vom Mund.
Die Brücke stammt von Dir, ist mir aber auch egal.

Autor: Arduino Fanboy D. (ufuf)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> Die Brücke stammt von Dir, ist mir aber auch egal.

m.n. schrieb:
> Matthias S. schrieb:
>> Wenn dann Tipps kommen a là man soll 'das Poti an AREF
>> anschliessen', dann kann man nur hoffen, das er das nicht tut.
>
> Och, ein bißchen ratiometrisch könnte bei einem Potentiometer nicht
> schaden.
> Und wenn man den ADC richtig konfiguriert, ist auch Aref an AVcc kein
> Problem, auch wenn das viele Leute sicherlich nicht raffen.

Du hast "anschließen" zitiert!
Und damit hast du hier die Brücke "Aref an AVcc" gesetzt!

Sollte ich dich dabei falsch verstanden haben?
Dann ist alles gut... und wir sind uns einig.

Aber ein bisschen blöd, oder missverständlich, ist das dann doch
formuliert.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> Wenn man intern AVcc auf Aref schaltet, ist Aref durchaus belastbar.
Das ist ja auch Quatsch. Dann schliesst du das Poti an AVcc an und nicht 
an AREF.
Für andere Anschlüsse an AREF mal schauen, was das Datenblatt dazu sagt. 
Oh, das klingt hier aber so:

" In either case, the external AREF pin is directly connected to the 
ADC, and the reference voltage can be made more immune to noise by 
connecting a capacitor between the AREF pin and ground. VREF can also be 
measured at the AREF pin with a high impedance voltmeter. Note that VREF 
is a high impedance source, and only a capacitive load should be 
connected in a system."

Also nichts mit 'Poti an AREF'. Wie o.a. ist die Referenz so gut wie 
nicht belastbar. Wer AREF auch extern nutzen möchte, sollte sie 
tunlichst mit einem Spannungsfolger puffern.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias S. schrieb:
> Dann schliesst du das Poti an AVcc an und nicht an AREF.

Sobald im ADMUX Register das entsprechende Bit gesetzt ist, gibt es da 
außer dem geringeren Innenwiderstand aber keinen Unterschied, d.h. die 
ratiometrische Messung ist trotzdem sicher gestellt, solange VRef nicht 
stärker als AVCC beruhig wird.

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Es sollte
> direkt mit AGND, AIN, AREF des MC verbunden sein und nirgends sonst.

Gemeint war natürlich UREF des ADC, wo auch immer die herkommt.
Wichtig ist aber, daß das Poti nirgends sonst angeschlossen ist.
Z.B. gemeinsame GND-Leitung mit dem Stellmotor ist ne ganz blöde Idee.

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter D. schrieb:
> Gemeint war natürlich UREF des ADC, wo auch immer die herkommt.

Das Datenblatt verwendet AREF als Bezeichnung für den Pin, was aber 
identisch zu Vref oder Uref ist.
Verwendet man AREF als Spannungsquelle, so hat man unabhängig von der 
ext. Last immer eine 100% ratiometrische Messung, selbst wenn bei 
niederohmiger Last die Spannung an AREF einbrechen sollte.

Sofern der ADC nicht anderwärtig gebraucht wird, kann man in den 
Messpausen das Poti als Last auch komplett abschalten, was bei 
Batteriebetrieb günstig ist.

Wie auch immer, auch ohne spezielle "Maßnahmen/Tricks" muß der ADC 
saubere Werte liefern. Bei einem Poti mit 5 kOhm ist die Quellimpedanz 
erfahrungsgemäß niederohmig genug, um auch mit höherer Meßrate wandeln 
zu können.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
m.n. schrieb:
> Verwendet man AREF als Spannungsquelle, so hat man unabhängig von der
> ext. Last immer eine 100% ratiometrische Messung, selbst wenn bei
> niederohmiger Last die Spannung an AREF einbrechen sollte.

Das gute ist, wenn man den AREF-Pin nicht als Spannungsquelle 
verwendet, bricht die Spannung gar nicht erst zusammen und es tritt 
(praktisch) kein Spannungsabfall am internen Schalter auf, so man AVCC 
als Referenzspannung wählt.

Autor: m.n. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut, Du hast es nicht verstanden. Nur ein Weg führt nach Rom, und ich 
wünsche Dir eine gute Reise.

Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim derzeitigen Stand der Dinge ist die Diskussion "externe Brücke 
zwischen ARef und AVCC" oder "direkt über den internen Schalter" mit 
vielleicht 60Ω wohl eher noch ein Nebenschauplatz.

Dir auf deinem Weg auch gute Reise.

Autor: Lothar M. (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bernhard schrieb:
> Was soll das bewirken?
Rechenzeit verbrauchen. Wer schneller fertig sein will, der nimmt den 
üblichen auf Zweierpotenzen optimieren Algorithmus. Siehe z.B. im 
Beitrag "PT1-Filter in C"


m.n. schrieb:
> Verwendet man AREF als Spannungsquelle, so hat man unabhängig von der
> ext. Last immer eine 100% ratiometrische Messung, selbst wenn bei
> niederohmiger Last die Spannung an AREF einbrechen sollte.
Ist das Poti zwischen Vcc und GND angeschlossen und versuche erwendet 
man Vcc als Referenz, dann gilt das auch.

: Bearbeitet durch Moderator
Autor: Wolfgang (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Ist das Poti zwischen Vcc und GND angeschlossen und versuche erwendet
> man Vcc als Referenz, dann gilt das auch.

Wie sauber das Messergebnis ist, hängt dann aber sehr von irgendwelchen 
Störungen auf VCC ab, zumindest wenn ARef über einen Kondensator 
gefiltert wird, dass Poti aber an der dreckigen VCC hängt.
Nicht ohne Grund hat Atmel VCC und AVCC getrennt.

Wer weiss, ob das Potiüberhaupt überhaupt mit 3 Pins angeschlossen ist. 
Ein Schaltplan steht immer noch aus.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.