Analog-In Werte je nach Spannungsquelle nicht stabil

Hallo,

ich habe ein Problem beim Auslesen der analogen Werte eines Drehpotis.

Ich benutze ein 100kOhm Drehpoti einfacher Bauart von Reichelt und lese die Werte mit einem “Arduino auf einem Breadboard” (Atmel 328P-PU) aus, benutze sie als Verzögerung für eine Kameraauslösung und zeige Sie gleichzeitig auf einem 2-reihigen LCD Display an, damit ich mir die Werte merken und später ggf. erneut einstellen kann. Als Spannungsquelle für das Breadboard benutze ich während der Testphase die 5V von einem Arduino Uno Board, das per USB (Computer) mit Spannung versorgt wird.

Das funktioniert auch sehr gut. Sobald ich aber eine andere Spannungsquelle als die von einem Arduino Board benutze, schwanken die ausgelesenen Poti-Werte sehr stark im Bereich +-10. Die Zahlen flackern im Display und ein genaues Einstellen der Werte über das vorgenannte Drehpoti ist nicht mehr möglich. Als andere Spannungsquelle benutze ich einen Trafo mit 14,8V der 2A liefern kann. Die Spannungsregelung übernimmt dann ein 7805 mit der im Datenblatt angegebenen Beschaltung mit zwei Kondensatoren: 330nF Input und 100nF Output - jeweils zwischen Plus und gnd.

Was mich wundert ist, dass die Spannungsquelle einen solch starken Einfluss auf das Auslesen des Potiwertes hat. Das gleiche Problem habe ich auch, wenn ich das Arduino Board nicht mit USB sondern mit dem besagten Trafo versorge und dann als Spannungsquelle für mein "Arduino auf einem Breadboard" benutze. Auch mein regelbares Labornetzteil bringt als Spannungsquelle vor dem 7805 mit 12-15V keine Besserung.

Hat jemand eine Idee wie ich die permanenten Schwankungen des Potiwertes in den Griff bekommen kann?

Gruß
Frank_

Hat Dein Trafo nur ne Gleichrichtung hinten dran oder auch nen Kondensator zum Glätten der Gleichspannung? Ich tippe mal drauf das die Gleichspannung einfach nicht sauber geglättet ist.

Schalte mal vorm dem 7805 vor dem 330nF-C noch nen fetten Elko (470µF aufwärts, Plus an VCC Minus an GND, Spannungsfestigkeit beachten, bei 14V würde ich wenigstens 20-25V nehmen).

Bei dem 7805 würde ich zwischen Vout und GND noch einen min. 100µF Kondensator hinzufügen.

Falls Du es noch nicht tust, würde ich außerdem die analogen Messungen samplen, d.h. beispielsweise 20 mal messen und daraus einen Mittelwert bilden, dann dürften die Schwankungen deutlich geringer werden. Das oversamplen würde ich übrigens auch bei einer sauberen Stromversorgung machen.

Vielen Dank für die Hinweise von "vieledinge" und "markbee".

Ich werde die Vorschläge ausprobieren und mich mit den Ergebnissen wieder melden.

@vieledinge: Es handelt sich um einen normalen Steckdosentrafo in einem Gehäuse mit Kabel und einem Hohlstecker. Ich habe ihn im Schrank gefunden, er ist von einem längst verschrotteten Elektrogerät. Ob er einen Kondensator zum Glätten der Gleichspannung hat, kann ich leider nicht sagen. Ich habe noch einen anderen Trafo ähnlicher Bauart mit 12V. Der liefert aber leider nicht genug Strom, so dass das LCD-Display nicht funktioniert.

So, ich melde mich mit den Ergebnissen.

Die Erhöhung der Kapazitäten an V(in) und V(out) des 7805 hat leider nicht den gewünschten Erfolg gebracht. Die Verbesserungen waren nur marginal.

Der Tipp mit dem Samplen der analogen Messungen hat dagegen eine deutliche Verbesserung gebracht. Die Werte schwanken zwar immer noch ein wenig, aber lange nicht mehr so deutlich wie vorher.

Ich habe ein wenig experimentiert und festgestellt, dass das Samplen von bis zu 30 Messwerten in einer for-Schleife einwandfrei funktioniert. Bei mehr als 30 Messwerten (ich habe 35, 50 und 100 versucht) gibt der Controller in einem Teil des hochohmigen Bereichs des Potis auch negative Werte zurück. Jedenfalls passiert das in meiner Konfiguration mit dem Atmel 328P-PU auf einem Breadboard.

Mit dem samplen von 30 Messwerten und der Mittelwertbildung kann ich ganz gut leben und möchte mich nochmals für die Unterstützung bei Euch bedanken.

Viele Grüße
Frank_

Du kannst jetzt noch ein oder zwei Schritte weitergehen, wenn Du den Arduino-Layer verlässt und Dir die Mühe machst, die Analog-Eingänge direkt über die Register der MCU abzufragen. Das ist deutlich schneller und es gibt dazu noch einen fast-modus.
Das ganze ist im Datenblatt des ATMEGA328, Kapitel 24, ab S. 252 genau nachzulesen.

Würde anstadt eines L7805 eine LowDrop Regler verwenden. Dieser Regelt genauer gegenüber eines LowCost Regler. Bricht dein Netzteil vieleicht zusammen? Masse nicht sauber verbunden?

Sonst hätte ich auch keine Idee mehr.

Ich tippe mal darauf, das das alte Steckernetzgerät nur ein simpler 50Hz Trafo ist. das merkt man am Gewicht und er ist nicht so schmal, wie die modernen Schaltnetzteile bei 0,5A ist mit handlichen Bauformen Schluß. Für 1A sind das schon Wurfgeschosse :wink:
Nächste Frage wäre, ob er auch wirklich Gleichspannung liefert. Bei einer Diode und Nutzung einer Halbwelle muß der Elko ebenfalls größer sein. damals stimmte wirklich "viel hilft viel!" bei der Kapazität der Elkos 8)
Solange die Dioden den Stoßstrom beim Einschalten abkonnten, konnte der Elko nicht groß genug sein. Ein vernünftig beschalteter 7805 sollte problemlos in der Lage sein, für alles, was nicht gerade High End Audio ist, ausreichend saubere Spannung zur Verfügung zu stellen. Selbst Digitalvoltmeter auf Basis des 7106/7107 mit 3,5 Stellen funktionieren problemlos mit einer Spannungsversorgung aus einem 78xx. Wichtig ist halt, das am 7805 oder am Elko sternförmig die Masse zusammenläuft und nicht T-Förmig mit langer Masseleitung irgendwo hin verkabelt wird. Miss mal, wie weit die 12V unter Last einbrechen. Die alten Steckertrafos hatten teilweise sehr hohe Leerlaufspannungen und brachen under Last ein. 3V braucht der 7805 Spannungsabfall, um überhaupt vernünftig arbeiten zu können.
Parallel zu den Enden des Potis kannst du auch noch einen Elko mit ca. 10µF setzen. Und vom Schleifer gegen Masse 100nF. Mach das mal stufenweise nacheinander. Das C am Schleifer wäre aber die letzte Option, da sie nicht nur glättet, sondern ein gewisses Nachlaufen verursacht (das Poti reagiert nicht augeblicklich)

Gruß Gerald

Oh, jede Menge neuer Infos. Das finde ich ja klasse.

Wie gesagt, ich kann mit dem Ergebnis des Sampelns leben. Die Schwankungen sind seltener und nur noch sehr gering: +- 1

Ich bin mir sicher, dass ich die zusätzlichen Ideen und Tipps in meinen weiteren Projekten einsetzen kann.

Nochmals vielen Dank an Euch.

Viele Grüße
Frank_

Hallo,

andere Idee. Du schreibst oben das Du Abweichungen von +/- 10 hast mit dem externen Netzteil und 7805 Regler. Ich nehme an mit +/- 10 meinst Du die noch nicht umgerechneten "Digits" vom Port.
Kann es nicht an den ungenauen 5V selbst liegen? Ich meine das so. Wenn per USB nicht 5,0V sondern nur 4,9V anliegen aber mit dem 7805 auch keine 5,0V sondern 5,1V, dann arbeitet ja die gesamte Schaltung mit einer anderen Betriebsspannung und demzufolge bekommste auch am Analogeneingang andere "Digits" eingelesen. Kann das sein?

In diesem Fall ein Denkfehler, da der Spannungsteiler aus den "schwankenden" 5v versorgt wird. Die am Schleifer abgegriffene Spannung ändert sich prozentual genauso - und der Controller inc. AD-Wandler, der die 5V als Referenz nimmt, ist der selben Änderung ausgesetzt. Deine Idee würde greifen, wenn z.B. ein Thermoelement, oder ein Fotoelement (Fotodiode in Sperrichtung) etc. gemessen werden soll, was nicht den Schwankungen der Betriebsspannung ausgesetzt ist.
Aber prinzipiell hast du Recht. Wenn man misst und was calbriert, dann sollte die Referenzspannung (in diesem Fall Ub) stabil sein :slight_smile:

Gruß Gerald

Welchen Strom verträgt der eingesetzte 7805 denn eigentlich? Wenn das ein 100mA-Typ ist, dann ist er evtl. schon überfordert. Ein 5V LDO wäre wahrscheinlich sowieso die bessere Wahl.

Hallo,

@ nix_mehr_frei:

Wenn Du das so sagst ... haste natürlich recht. :slight_smile: Hängt ja alles zusammen.

Wenn das Samplen bis zu 30 Werten gut funktioniert, dann tippe ich auf folgendes Problem:
Das Ergebnis von AnaloRead liegt bei maximal 1023. Wenn Du das 30 mal aufsummiert kommst Du auf etwas mehr als 30000. Wenn der Datentyp des Summenwerts als "int" vereinbart ist, kannst Du da maximal 32000 speichern, sonst kommt es zum Überlauf. Das würde zumindest Deine negativen Werte erklären.
Wichard

Also erstens:

Willkommen im Forum

Einen 4 Jahre alten Thread braucht man nicht mehr beantworten, es sei denn, man hat bahnbrechende neue Erkenntnisse zu verkünden und will dies kundtun.

Erst bei 32 mal aufsummieren ist die Grenze eine int erreicht.

Inzwischen gibt es dafür hervorragende Libs, bsbw. RunningMedian