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?
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.
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.
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?
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
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)
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
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.
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
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