Forum: Mikrocontroller und Digitale Elektronik Merkwürdige Poti werte


von Jannes (Gast)


Lesenswert?

Hallo,

ich bin Arduino Neuling und gerade an meinem ersten Projekt:
ein intelligentes Gewächshaus mit automatischer Bewässerung...

Ich bin gerade dabei 3 Potentiometer auszulesen mit denen ich dann quasi 
manuell für jeden der 3 Blumentöpfe eine Schaltschwelle einstellen kann 
bei der dann gegossen wird.

Ich hänge die beiden äußeren Füße des 10k Potis an GND und 5V das 
mittlere an einen Analogen Pin am Arduino.

1. Wenn ich am analogen Pin nichts anschließe und ihn dennoch auslese 
kommen werte um die 300 raus, was ja eigentlich nicht sein kann...

2. Wenn ich einen Poti  wie beschrieben anhänge liefert der Befehl 
analogRead(potiPin); auch keine realistischen Werte.
Die Werte springen und fallen nach jeder Messung im Seriellenmonitor 
sieht dann das ohne am Poti zu drehen so aus:
65
367
369
370
358
247
218
4
211
256
298
320
334
343
348
351
355
359
360
362
363
363
364
365
365
366
367
373
371
371


Könnt ihr mir irgendwie helfen?

Also mein Ziel ist es verlässliche Werte zu bekommen die ich mit dem 
Befehl map() als Schaltschwelle für meine Pumpen nutzen kann.

Ich hoffe ich habe mein Problem verständlich erklärt.
Mfg Jannes

von Joachim B. (jar)


Lesenswert?

Jannes schrieb:
> Wenn ich am analogen Pin nichts anschließe und ihn dennoch auslese
> kommen werte um die 300 raus

offner Eingang spielt Radioantenne und will was erkennen was nicht da 
ist.

Jannes schrieb:
> 2. Wenn ich einen Poti  wie beschrieben anhänge

achso, verrate nur nicht wo das beschrieben ist UND wie du es angehängt 
hast, man könnte Fehler finden.

von Achim S. (Gast)


Lesenswert?

Jannes schrieb:
> 1. Wenn ich am analogen Pin nichts anschließe und ihn dennoch auslese
> kommen werte um die 300 raus, was ja eigentlich nicht sein kann...

da du die Spannung nicht definiert hast, kann alles mögliche rauskommen. 
Das ist soweit in Ordnung.

Jannes schrieb:
> 2. Wenn ich einen Poti  wie beschrieben anhänge liefert der Befehl
> analogRead(potiPin); auch keine realistischen Werte.

Also das Poti zwischen 5V und GND und den Schleifer zum ADC? Dann 
müssten sinnvolle Werte rauskommen, die auf das Drehen des Potis 
reagieren. Da muss wohl ein Fehler in deinem Aufbau oder in deiner 
Software sein. Vielleicht hast du die Verbindungen anders gemacht als du 
denkst. Oder du liest den falschen ADC-Eingang aus. Oder ...

Joachim B. schrieb:
> achso, verrate nur nicht wo das beschrieben ist UND wie du es angehängt
> hast, man könnte Fehler finden.

Na ja, wahrscheinlich so wie im Eröffnungsbeitrag beschrieben, oder?

von Jens M. (schuchkleisser)


Lesenswert?

Software zeigen und Potiaufbau kontrollieren.
Das Poti darf nicht zu hochohmig sein, nur wenige kiloohm.

von Egon D. (Gast)


Angehängte Dateien:

Lesenswert?

Jannes schrieb:

> 1. Wenn ich am analogen Pin nichts anschließe und
> ihn dennoch auslese kommen werte um die 300 raus,
> was ja eigentlich nicht sein kann...

Warum denn nicht?

Die heute allgemein übliche CMOS-Technik ist so hochohmig,
dass jeder offene Eingang als Antenne wirkt und sich
irgendein "schwimmendes" Potenzial einstellt. Der gemessene
Wert kann vom Exemplar, der Temperatur, der Luftfeuchtigkeit,
dem Sonnenstand, der Mondphase... abhängen.


> 2. Wenn ich einen Poti  wie beschrieben anhänge liefert
> der Befehl analogRead(potiPin); auch keine realistischen
> Werte.

Doch... :)


> Die Werte springen und fallen nach jeder Messung im
> Seriellenmonitor sieht dann das ohne am Poti zu drehen
> so aus: [...]

Guck' mal auf das Diagramm, das ich aus Deinen Werten
erzeugt habe...
Wert 8 ist natürlich eine Störung (Wackelkontakt?); der
Rest sieht normal aus.

Es ist empfehlenswert,
1. für das Poti eine gut entstörte Versorgungsspannung
   zu verwenden,
2. stets mehrere Messpunkte zu nehmen,
3. eventuell Ausreißer zu eliminieren,
4. einen Mittelwert zu berechnen.

von Baendiger (Gast)


Lesenswert?

Wie viel Ohm hat das Poti?
Wie lang sind die Kabel?
Wie ist der ADC Konfiguriert? Referenzspannung?
Hast du störende Verbraucher (z.B. hohe Lasten, steile Flanken) in der 
Nähe?

Vorschläge (die je nach Antworten auf die obigen Fragen sinnvoll sind 
oder eben nicht):
- Kabel kürzen, Schirmen etc.
- Filter analog oder digital
- niederohmigeres Poti

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


Lesenswert?

Es steht auch im Datenblatt, das ein ADC Eingang um die 100 MOhm(!) 
Eingangswiderstand hat. Das ist also eine sehr empfindliche Antenne.

von Wolfgang (Gast)


Lesenswert?

Jannes schrieb:
> Ich bin gerade dabei 3 Potentiometer auszulesen

Welchen Wert hat dein Poti?

Auch solltest du nicht mit Kondensatoren sparen, einen für die 
Potiversorgung und einen für jeden ADC-Eingang, falls dein Signal nicht 
niederohmig genug ist.

Die Versorgung von deinem Poti muss außerdem fest an die Referenz 
angekoppelt sein (Ratiometrische Messung). Sonst misst du nicht nur die 
Stellung des Potis, sondern auch die Schwankungen der Versorgung relativ 
zur Referenz.

von Egon D. (Gast)


Lesenswert?

Wolfgang schrieb:
> Jannes schrieb:
>> Ich bin gerade dabei 3 Potentiometer auszulesen
>
> Welchen Wert hat dein Poti?

Jannes schrieb:
> Ich hänge die beiden äußeren Füße des 10k Potis an
> GND und 5V das mittlere an einen Analogen Pin am
> Arduino.

von Wolfgang (Gast)


Lesenswert?

Sorry, dann also einen Kondensator an jeden Eingang.

von Joachim B. (jar)


Lesenswert?

Jannes schrieb:
> 10k

Achim S. schrieb:
> Na ja, wahrscheinlich so wie im Eröffnungsbeitrag beschrieben, oder?

übersehen, aber ich bin ja nicht alleine

Wolfgang schrieb:
> Welchen Wert hat dein Poti?

:)))

bleibt halt die Frage nach Bilder

Joachim B. schrieb:
> UND wie du es angehängt
> hast

von Jaski J. (jaski_j)


Lesenswert?

Also ich habe Potis mit widerständen von 10kOhm und die Kabel sind max. 
10 cm lang...

Den Aufbau habe ich mehrfach überprüft und keinen Fehler gefunden...

Mein Script sieht so aus:

int potiPin = 2;
int potiValue  = 0;

void setup() {
 pinMode (potiPin, INPUT);
 Serial.begin (9600);
}

void loop() {
 potiValue = analogRead(potiPin);
 Serial.println (potiValue);
 delay (1000);

}

Also das ist natürlich nur der Script um die Potis zu testen...

von Teo D. (teoderix)


Lesenswert?

Jaski J. schrieb:
> Den Aufbau habe ich mehrfach überprüft und keinen Fehler gefunden...

Hat hier der Typ, der die Kabel nur in die Löcher des Footprint, für 
eine Stiftleiste getseckt hat, auch behautet.... Bilder statt Prosa, ist 
deshalb Motto und keine Schikane.

von Achim S. (Gast)


Lesenswert?

Jaski J. schrieb:
> Also ich habe Potis mit widerständen von 10kOhm und die Kabel sind max.
> 10 cm lang...
> Den Aufbau habe ich mehrfach überprüft und keinen Fehler gefunden...

miss mit einem Multimeter nach, ob die Spannung am ADC-Eingang dem Poti 
folgt.

Jaski J. schrieb:
> int potiPin = 2;

bist du sicher, dass diese Nummer stimmt?

von Einer K. (Gast)


Lesenswert?

> int potiPin = 2;
Du sagst 2, meist aber A2

Das ist egal?
Ok, wenn 2 das gleiche wie 16 ist.....

Beweis:
Serial.print(A2);

von Manfred (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
>> int potiPin = 2;
> Du sagst 2, meist aber A2
>
> Das ist egal?
> Ok, wenn 2 das gleiche wie 16 ist.....

Hier liegt ein Mißverständnis vor: Ich gucke mir ein funktionsfähiges 
Programm an, da habe ich "analogRead (7);" stehen und es wird 
tatsächlich A7 gelesen.

Im selben Programm steht auch "digitalRead(7)", da wird mein Taster am 
D7 korrekt erkannt.

Die A*-IDE unterscheidet von selbst anhand digitalRead / analogRead, ob 
sie auf D oder A zufasst.

Deine 16 ist der Sonderfall, Analogports Digital zu nutzen.

Ich glaube eher, dass Jannes Fehler im Aufbau hat.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Hier liegt ein Mißverständnis vor
Ja?

Es sagt:
> pinMode (potiPin, INPUT);
Was ist daran missverständlich?

Aufmerksam, der Manfred, sein möchte.

von Manfred (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Es sagt:
>> pinMode (potiPin, INPUT);
> Was ist daran missverständlich?

Er sagt: "int potiPin = 2;" und setzt damit eine Variable.

Er sagt "pinMode (potiPin, INPUT);" und setzt damit D2 als Eingang.

Jetzt kommt "analogRead(potiPin);", was nach meinem Verständnis den 
ANALOG 2 auslesen wird.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Jetzt kommt "analogRead(potiPin);", was nach meinem Verständnis den
> ANALOG 2 auslesen wird.
Yes!

Warum sollte man D2 auf Input setzen, wenn man doch A2 Analog auslesen 
möchte?
Denn A2 ist doch D16 oder?
!Verwirrung!

von pegel (Gast)


Lesenswert?


von pegel (Gast)


Lesenswert?


von Jaski J. (jaski_j)


Angehängte Dateien:

Lesenswert?

Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis 
1023 aber von den anderen beiden nicht...

Hier ein Foto von dem Aufbau.

von Teo D. (teoderix)


Lesenswert?

Jaski J. schrieb:
> Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis
> 1023 aber von den anderen beiden nicht...

Vertrau den (billigen) Dupont-Kabel nicht blind und den Lötstellen auf 
keinen Fall.
Potis werden gern mal von Unbedarften gegrillt. Hier einmal falsch 
angesteckt und dran rumgekurbelt und schon ist die Kohleschicht am 
verdampfen.
Es ist also auch nicht grad unwahrscheinlich, das die beiden Potis 
kaputt sind.


PS: Mit Schrumpfschlauch.... Gefällt mir, so soll das sein. :)

von Wilke (Gast)


Lesenswert?

Teo D. schrieb:

> PS: Mit Schrumpfschlauch.... Gefällt mir, so soll das sein. :)

Nix Schrumpfschlauch, das sind normale Breadboard Verbindungskabel mit 
angespritzten Pins.

@Jannes
Hast du die Pins nur um die Potianschlüsse herumgebogen, oder auch 
zusätzlich noch gelötet? Auf dem Bild ist das für mich nicht erkennbar.

von Beo Bachta (Gast)


Lesenswert?

Jaski J. schrieb:
> Hier ein Foto von dem Aufbau.

Wenn man einen Arduino nur an USB betreibt bekommt man an
den 5V-Pins nicht wirklich 5V sondern etwas weniger, und das
kann dann auch noch durch verschiedene äussere Effekte
schwanken.

Das kriegt alles das Poti mit das an +5V angeschlossen ist ....

von Achim S. (Gast)


Lesenswert?

Jaski J. schrieb:
> Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis
> 1023 aber von den anderen beiden nicht...

dann wäre es freundlich und hilfreich zu sagen, was jetzt bei dem einen 
Poti die Verbesserung bewirkt hat. Hast du es einfach nochmal neu 
angesteckt? Oder hast du einen Fehler gefunden (z.B. falschen Pin 
benutzt)?

Und wie schon oben geschrieben:

Achim S. schrieb:
> miss mit einem Multimeter nach, ob die Spannung am ADC-Eingang dem Poti
> folgt.

Wenn du mit einem unabhängigen Messgerät (Multimeter) nachgeprüft hast, 
ob die erwartete Spannung tatsächlich am Eingang des µC ankommt, dann 
lässt sich der Bereich, in dem man weiter nach Fehlern suchen muss, 
ungefähr halbieren.

von Joachim B. (jar)


Lesenswert?

Jaski J. schrieb:
> Hier ein Foto von dem Aufbau.

was soll man da sehen? verlötet oder gesteckt?

Ein Ratespiel!

von HildeK (Gast)


Lesenswert?

Jaski J. schrieb:
> Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis
> 1023 aber von den anderen beiden nicht...

Dann nimm den Mittenanschluss des funktionierenden Potis und schließe 
ihn der Reihe nach an die Eingangspins für die anderen Potis an. Sollte 
das realistische Ergebnis mit wandern, dann sind deine beiden anderen 
Potis wohl defekt, wenn nicht, dann hast du ein Softwareproblem.

von Teo D. (teoderix)


Lesenswert?

Wilke schrieb:
> Teo D. schrieb:
>
>> PS: Mit Schrumpfschlauch.... Gefällt mir, so soll das sein. :)
>
> Nix Schrumpfschlauch, das sind normale Breadboard Verbindungskabel mit
> angespritzten Pins.
>
> @Jannes
> Hast du die Pins nur um die Potianschlüsse herumgebogen, oder auch
> zusätzlich noch gelötet? Auf dem Bild ist das für mich nicht erkennbar.

Teo D. schrieb:
> Jaski J. schrieb:
>> Den Aufbau habe ich mehrfach überprüft und keinen Fehler gefunden...
>
> Hat hier der Typ, der die Kabel nur in die Löcher des Footprint, für
> eine Stiftleiste getseckt hat, auch behautet.... Bilder statt Prosa, ist
> deshalb Motto und keine Schikane.

..... :´(´´

von Zeno (Gast)


Lesenswert?

Wolfgang schrieb:
> Welchen Wert hat dein Poti?

Jaski J. schrieb:
> Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis
> 1023 aber von den anderen beiden nicht...
>
> Hier ein Foto von dem Aufbau.

Kann es sein das Du die Kabel an den Nieten für die Kontaktfahnen 
angelötet hast?
Auf dem Foto sieht das so aus. Das sollte man eher nicht tun, weil dabei 
meist die Kontaktsicherheit zur Widerstandsschicht leitet. Was meinst Du 
wozu die Kontaktfahnen da sind? - man darf (soll) sie benutzen.

von Floh (Gast)


Lesenswert?

Teo D. schrieb:
> ..... :´(´´

Jetzt weiß natürlich jeder, was du damit meinst :-(

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Zeno schrieb:
> leitet

--> leidet   :)

Beitrag #6162695 wurde vom Autor gelöscht.
von Wolfgang (Gast)


Angehängte Dateien:

Lesenswert?

Jaski J. schrieb:
> Hier ein Foto von dem Aufbau.

Was meinst du, wozu der Hersteller am Poti die Anschlüsse vorgesehen 
hat?

von Jens M. (schuchkleisser)


Lesenswert?

Beo Bachta schrieb:
> Wenn man einen Arduino nur an USB betreibt bekommt man an
> den 5V-Pins nicht wirklich 5V sondern etwas weniger, und das
> kann dann auch noch durch verschiedene äussere Effekte
> schwanken.

Das ist egal, der ADC ist ratiometrisch.

von Einer K. (Gast)


Lesenswert?

Beo Bachta schrieb:
> Jaski J. schrieb:
>> Hier ein Foto von dem Aufbau.
>
> Wenn man einen Arduino nur an USB betreibt bekommt man an
> den 5V-Pins nicht wirklich 5V sondern etwas weniger, und das
> kann dann auch noch durch verschiedene äussere Effekte
> schwanken.
>
> Das kriegt alles das Poti mit das an +5V angeschlossen ist ....

Bei einer ratiometrischen Messung völlig irrelevant.
Die 5V können ruhig "wandern".
Die ADC Werte kratzt das nicht.

von Jaski J. (jaski_j)


Lesenswert?

Ok Danke schonmal für die Tipps...
ich werde jetzt diie Kabel an diese Beinchen löten und nicht an die 
Öse... mal schauen was dabei rausspringt.

Wenn das dann noch nicht funktioniert mess ich mal den 5V ausgang am 
Arduino aus...

Und ja die Kabel sind verlötet... (halt an dieser Öse...)

Und wenn ich da immer noch keinen Fehler findet sind die wahrscheinlich 
kaputt...

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Jaski J. schrieb:
> ich werde jetzt diie Kabel an diese Beinchen löten und nicht an die
> Öse... mal schauen was dabei rausspringt.

Wenn Du Pech hast, wurde durch Deine Löterei der Übergang von Anschluss 
zu Schleifer zertstört.

von Jaski J. (jaski_j)


Lesenswert?

Update:

habe die Potis alle der Reihe nach in ein Breadboard gesteckt und habe 
die dann quasie von den Füßen aus verkabelt und habe so gute Messwerte 
bekommen...

Vielen Dank Zeno und alle anderen für eure Tipps!

: Bearbeitet durch User
von Floh (Gast)


Lesenswert?

Jaski J. schrieb:
> Und wenn ich da immer noch keinen Fehler findet sind die wahrscheinlich
> kaputt...

Das kannst du doch mit dem Ohmmeter rausfinden.

Oder, wie es schon geschrieben wurde, die Spannung am Schleifer messen, 
wenn die Enden an GND und +5V liegen. Dann mußt du am Schleifer eine 
Spannung, die dem Drehwinkel entspricht, messen.

von Wolfgang (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Bei einer ratiometrischen Messung völlig irrelevant.
> Die 5V können ruhig "wandern".
> Die ADC Werte kratzt das nicht.

Wandern ja, aber verseucht dürfen die 5V nicht sein. Wenn als Referenz 
AVCC verwendet wird, muss das Poti auch aus AVCC versorgt werden und für 
optimale Performance muss die AVCC vernünftig von der (verseuchten) VCC 
entkoppelt sein.
Zumindest beim Arduino(TM) UNO Rev3 ist das nicht wirklich der Fall.
https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf

von Einer K. (Gast)


Lesenswert?

Wolfgang schrieb:
> Zumindest beim Arduino(TM) UNO Rev3 ist das nicht wirklich der Fall.

Wolfgang schrieb:
> und für
> optimale Performance muss die AVCC vernünftig von der (verseuchten) VCC
> entkoppelt sein.

Is klar...

Vermutlich meinst die die Auswirkungen bei absoluten Messungen mit der 
internen 1,1V Referenz.
Ja... da hat das schon Auswirkungen.

Bei einer ratiometrischen Messung von 3 Potis wirst du das nicht 
nachweisen können.

von Manfred (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Warum sollte man D2 auf Input setzen,
> wenn man doch A2 Analog auslesen möchte?

Weil man irgendetwas nicht verstanden hat. Der Befehl ist überflüssig, 
in dem beschriebenen Aufbau richtet er aber keinerlei Schaden an. Ich 
glaube noch immer, dass wir beide aneinander vorbei geredet haben.

Wolfgang schrieb:
> Wenn als Referenz AVCC verwendet wird,
> muss das Poti auch aus AVCC versorgt werden

Hast Du schon einmal reale Schaltungen aufgebaut oder studierst Du noch? 
Du plapperst hier blanke Theorie, die in dem konkret gegebenen Fall 
vollkommen uninteressant ist.

Mein erster Testaufbau, um mir mal einen UNO anzugucken (Mikroprozessor 
und Controller kannte ich schon Jahre zuvor) sah ziemlich genauso aus, 
allerdings ohne Wackelkontakte ordentlich auf Lochraster gelötet und 
liefert stabile Werte vom Poti.

Jaski J. schrieb:
> ich werde jetzt diie Kabel an diese Beinchen löten
> und nicht an die Öse... mal schauen was dabei rausspringt.

Jetzt komme ich nicht an der Frage vorbei, ob Du Dir schon alleine die 
Schuhe zubinden kannst?

Mit dem Drehpoti willst Du eine Spannung zwischen 0 und 5 Volt 
einstellen. Ist es nicht möglich, ein Multimeter zu nehmen und das zu 
messen? Das ist Arduino zweite Stunde, in der ersten fragt man Taster 
ab.

Ich habe vor ein paar Wochen im Lidl Digitalvoltmeter für 9,95 Euro 
gesehen, die für diesen Zweck mehr als ausreichend wären. Wenn das zu 
teuer ist, bei Aliexpress nach DT-832 suchen, die Dinger kommen um 3,50 
Euro frei Haus und sind erschreckend genau.

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


Lesenswert?

Jaski J. schrieb:
> habe die Potis alle der Reihe nach in ein Breadboard gesteckt und habe
> die dann quasie von den Füßen aus verkabelt und habe so gute Messwerte
> bekommen...
Bei dieser Gelegenheit hast du dann auch gleich die Kontakte deines 
Steckbretts so weit auseinander gebogen, dass sie beim nächsten 
"normalen" Draht einen Wackelkontakt produzieren (viel Spaß bei der 
Fehlersuche ;-)

Deshalb löte ich an die drei Potianschlüsse immer ein kurzes Drahtstück 
mit passendem Druchmesser und stecke das dann ins Steckbrett.

Floh schrieb:
> die Spannung am Schleifer messen
Das ist generell eine gute Idee.

: Bearbeitet durch Moderator
von How (Gast)


Lesenswert?

Teo D. schrieb:
> Jaski J. schrieb:
>> Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis
>> 1023 aber von den anderen beiden nicht...
>
> Vertrau den (billigen) Dupont-Kabel nicht blind und den Lötstellen auf
> keinen Fall.
> Potis werden gern mal von Unbedarften gegrillt. Hier einmal falsch
> angesteckt und dran rumgekurbelt und schon ist die Kohleschicht am
> verdampfen.
> Es ist also auch nicht grad unwahrscheinlich, das die beiden Potis
> kaputt sind.
>
> PS: Mit Schrumpfschlauch.... Gefällt mir, so soll das sein. :)

Das ist aber so völlig verkehrt, der Schlumpfschlauch muss das Potti 
komplett umschließen.

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.