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
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.
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?
Software zeigen und Potiaufbau kontrollieren. Das Poti darf nicht zu hochohmig sein, nur wenige kiloohm.
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.
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
Es steht auch im Datenblatt, das ein ADC Eingang um die 100 MOhm(!) Eingangswiderstand hat. Das ist also eine sehr empfindliche Antenne.
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.
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.
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
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...
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.
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?
> int potiPin = 2;
Du sagst 2, meist aber A2
Das ist egal?
Ok, wenn 2 das gleiche wie 16 ist.....
Beweis:
Serial.print(A2);
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.
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.
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.
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!
Bin kein Ardu* Fan, aber: https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/ Beispiel ganz unten.
Für alle Fälle noch mal deutsch: https://www.arduino.cc/reference/de/language/functions/analog-io/analogread/
Bei einem Poti bekomme ich mittlerweile realistische Werte von 0 bis 1023 aber von den anderen beiden nicht... Hier ein Foto von dem Aufbau.
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. :)
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.
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 ....
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.
Jaski J. schrieb: > Hier ein Foto von dem Aufbau. was soll man da sehen? verlötet oder gesteckt? Ein Ratespiel!
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.
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. ..... :´(´´
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.
Beitrag #6162695 wurde vom Autor gelöscht.
Jaski J. schrieb: > Hier ein Foto von dem Aufbau. Was meinst du, wozu der Hersteller am Poti die Anschlüsse vorgesehen hat?
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.
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.
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...
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.
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
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.
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
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.
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.