Forum: Mikrocontroller und Digitale Elektronik Poti Werte glätten


von Jan (Gast)


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

von Jan (Gast)


Lesenswert?

ach ja... ein kleiner Nachtrag noch:

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

von Niine (Gast)


Lesenswert?

Mit einem gleitenden Mittelwert in Software zum Beispiel

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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
von Ach Du grüne Neune (Gast)


Angehängte Dateien:

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.

von PeterL. (Gast)


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.

von Wolfgang (Gast)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Netzbrummen (Gast)


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.

von Wolfgang (Gast)


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.

von Wolfgang (Gast)


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.

von Manfred (Gast)


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.

von Wolfgang (Gast)


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.

von Manfred (Gast)


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.

von Jens (Gast)


Lesenswert?

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

von Analog OPA (Gast)


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.

von Istdochso (Gast)


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ß

von Wolfgang (Gast)


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.

von A. S. (Gast)


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.

von Olaf (Gast)


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

von Peter D. (peda)


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.

von Bernhard (Gast)


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?

von Apollo M. (Firma: @home) (majortom)


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
von m.n. (Gast)


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?

von Wolfgang (Gast)


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.

von chris (Gast)


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.

von Wolfgang (Gast)


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 ;-)

von Günter Lenz (Gast)


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.

von Olaf (Gast)


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

von Einer K. (Gast)


Lesenswert?

Ihr seid doch irre....
Hört ihr euch auch selber zu?

von Wolfgang (Gast)


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.

von Curby23523 N. (Gast)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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
von m.n. (Gast)


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.

von Einer K. (Gast)


Lesenswert?

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

von Peter D. (peda)


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.

von Einer K. (Gast)


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.

von Sebastian S. (amateur)


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
von m.n. (Gast)


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 :-(

von Wolfgang (Gast)


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?

von m.n. (Gast)


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.

von Einer K. (Gast)


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.

von m.n. (Gast)


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.

von Einer K. (Gast)


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.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Wolfgang (Gast)


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.

von Peter D. (peda)


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.

von m.n. (Gast)


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.

von Wolfgang (Gast)


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.

von m.n. (Gast)


Lesenswert?

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

von Wolfgang (Gast)


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.

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


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
von Wolfgang (Gast)


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.

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.