2 Potis an einem Analog-Anschluss auslesen

OP #7363559
Lesenswert?

Hallo,

Ich bin gerade dabei, bei einer eigentliche mehr als einfachen Anfänger-Schaltung vollkommen den Verstand zu verlieren :-D.

Und zwar möchte ich an einem D1 Wemos Mini am Analoganschluss A0 den Wert von zwei Potentiometern, beide 0-10k Ohm, einlesen und ausgeben. Dazu verwende ich die digitalen Pins D1 und D6, die ich immer dann HIGH, bzw. LOW schalte, also sinngemäß so :

1
//Poti 1 auslesen
2
digitalWrite(D1, HIGH);
3
digitalWrite(D6, LOW);
4
float value1 = analogRead(A0) / 1024 * 3.3;
5
delay(1000);
6

7
//Poti 2 auslesen
8
digitalWrite(D1, LOW);
9
digitalWrite(D6, HIGH);
10
float value2 = analogRead(A0) / 1024 * 3.3;
11

12
//Ausgeben der beiden Werte value1 und value2
13
...

Das für mich vollkommen unverständliche ist, dass sich, beim Drehen eines Potentiometers BEIDE Werte (value1 und value2) ändern. Könnt ihr mir bitte sagen, wo der Fehler liegt, denn eigentlich müsste sich ja, beim drehen eines Potis auch nur ein Wert ändern.

P.S. Im Bild habe ich den Arduino als Mikrocontroller verwendet, weil ich unter Fritzing keinen D1 Wemos Mini gefunden habe. Der 1.5k Ohm Widerstand dient nur der Stromreduzierung.

Vielen Dank für eure Hilfe !

Angehängte Dateien:
#7363580
Lesenswert?

H.Joachim S. schrieb:

Dann male mal eine richtige Schaltung. Und dann siehst du selbst warum das so ist.

Tut mir leid, aber wenn du das in dem Bildchen nicht sehen kannst, wird es auch in einem "ordentlichen Schaltplan" nicht besser. Das zu sehen erfordert Wissen und kein ordentlichen Schaltplan. Du hättest ihm dieses Wissen geben können, hast dich aber für das forentypische Dummgeschwalle entschieden. Sehr schade, dich hätte anders in Erinnerung.

#7363591
Lesenswert?

Es gibt aber noch ein grundsätzliches Problem neben der evtl. falschen Pinbelegung.

Du müsstest Versorgungsspannung und GND der Potis umschalten damit die sich nicht mehr gegenseitig beeinflussen. Also brauchst 4 Digitale Pins. Alternativ kannst Du mit einem Relais oder einem Sogenannten Analog Signal Multiplexer umschalten welches Signal auf den Analogeingang geht, die Potis werden normal an gnd und 5V verkabelt. Im einfachsten Fall (Relais) braucht das nur einen Digitalpin.

#7363601
Lesenswert?

Matthias P. schrieb:

Das für mich vollkommen unverständliche ist, dass sich, beim Drehen eines Potentiometers BEIDE Werte (value1 und value2) ändern. Könnt ihr mir bitte sagen, wo der Fehler liegt

Du hast die beiden Schleifer direkt verbunden. Dadurch beeinflussen sich die Potis gegenseitig. Bloß weil du das inaktive Poti mit beiden Enden an GND legst (ein Ende hart, das zweite über den Digital-Output Pin) verschwindet es ja nicht.

Es würde auch nichts helfen, wenn du den Digital-Output des inaktiven Potis hochohmig schaltest. Es bleibt trotzdem der Widerstand zwischen Schleifer und GND. Und der belastet natürlich das andere Poti.

Vielleicht wird es einfacher, wenn du dir vergegenwärtigst, was passiert wenn ein Poti auf dem GND-seitigen Anschlag steht.

Zuletzt noch: es ist vollkommen unklar, was der Sinn deiner Schaltung sein soll. Pins sparst du damit jedenfalls nicht. Statt 2 Analog-Pins brauchst du zwar nur einen, dafür aber zwei zusätzliche Digital-Pins.

Gast #7363612
Lesenswert?

Axel S. schrieb:

Matthias P. schrieb:

Das für mich vollkommen unverständliche ist,

Du hast die beiden Schleifer direkt verbunden. Dadurch beeinflussen sich die Potis gegenseitig. Bloß weil du das inaktive Poti mit beiden Enden an GND legst (ein Ende hart, das zweite über den Digital-Output Pin) verschwindet es ja nicht.

Es würde auch nichts helfen, wenn du den Digital-Output des inaktiven Potis hochohmig schaltest. Es bleibt trotzdem der Widerstand zwischen Schleifer und GND. Und der belastet natürlich das andere Poti.

Einfach einen Fest-/Messwiderstand vom Analog-Input nach Masse schalten und die beiden Potis als regelbaren Widerstand dort und mit den Digital-Outs verbinden. Dann kann man die Digital-Outs abwechselnd zwischen High-Pegel und hochohmig umschalten und den durch die Potistellung/den Potiwiderstand am Messwiderstand abfallende Spannung messen.

#7363614
Lesenswert?

Axel S. schrieb:

es ist vollkommen unklar, was der Sinn deiner Schaltung sein soll. Pins sparst du damit jedenfalls nicht. Statt 2 Analog-Pins brauchst du zwar nur einen

Der WeMos Mini HAT nur EINEN Analogeingang.

Frederic S. schrieb:

Du müsstest Versorgungsspannung und GND der Potis umschalten

Ja,

1
//Poti 1 auslesen
2
pinMode(D1,OUTPUT);
3
pinMode(D2,OUTPUT);
4
pinMOde(D3,INPUT);
5
pinMOde(D4,INPUT);
6
digitalWrite(D1, HIGH);
7
digitalWrite(D2, LOW);
8
float value1 = analogRead(A0) *3.3 / 1024;
9
delay(1000);
10
//Poti 2 auslesen
11
pinMOde(D1,INPUT);
12
pinMOde(D2,INPUT);
13
pinMode(D3,OUTPUT);
14
pinMode(D4,OUTPUT);
15
digitalWrite(D3, HIGH);
16
digitalWrite(D4, LOW);
17
float value2 = analogRead(A0) / 1024 * 3.3;

oder einen externen Analogschalter verwenden wie

https://www.nexperia.com/products/analog-logic-ics/i-o-expansion-logic/analog-switches/74AHC1G66GV.html

dann braucht er nun 1 Digitalausgang

Beitrag #7363616 wurde von einem Moderator gelöscht.
#7363622
Lesenswert?

Pullup an den ADC-Pin, Schleifer an den ADC-pin, dann jeweils ein unteres Ende der Potis mit jeweils einem GPIO nach GND ziehen. Linearisierung in Software und man spart zwei GPIOs und den externen Multiplexer.

Schlauer ist aber, den internen Multiplexer zu benutzen. Die zwei GPIOs kann man immer noch nehmen, um die Potis nur kurz zu versorgen und Strom zu sparen.

mfg mf

#7363647
Lesenswert?

Matthias P. schrieb:

Der 1.5k Ohm Widerstand dient nur der Stromreduzierung.

Das hört sich nach Wunschdenken an. Der Widerstand verbindet mit seinem einen Pin die beiden Potis. Auch solltest du klären, was das für Pins sind, die du da verbunden hast. Zeichne einen sauberen Schaltplan und überlege dir, was passierte, wenn du an den Potis drehst, d.h. welche Widerstandsanteil sich wie verändert und was das für einen Gesamteffekt in deiner Schaltung hat. Notfalls zeichne die Potihälften als zwei getrennte Widerstände.

J. T. schrieb:

H.Joachim S. schrieb:

Dann male mal eine richtige Schaltung. Und dann siehst du selbst warum das so ist.

Tut mir leid, aber wenn du das in dem Bildchen nicht sehen kannst, wird es auch in einem "ordentlichen Schaltplan" nicht besser.

Arbeite mal an deinem Sprachverständnis. Mit "du" meinte H.Joachim den TO.

#7363667
Lesenswert?

Rainer W. schrieb:

Arbeite mal an deinem Sprachverständnis. Mit "du" meinte H.Joachim den TO.

Lol arbeite du mal an deinem Sprachverständnis. Ich hatte es schon so verstanden, dass er den TO anspricht. Dennoch bin ich darauf eingegangen. Oder was meinst du, ändert sich an der zur Verfügung gestellten Information, wenn sie normgerecht gezeichnet ist? Plötzlich entstehen ganz neue, vorher nie gesehene Verbindungen, nur weil man normgerecht zeichnet? Oder bitte was ist deine Vorstellung?

#7363692
Lesenswert?

Andreas B. schrieb:

Das einfachste wird wohl sein, fuer jeden Schleifer einen ADin zu spendieren

Wird nicht anders lösbar sein (außer er nimmt noch extra einen Analogschalter hinzu - was Quatsch wäre).

und die ausseren Anschluesse der Potis dauerhaft auf Vcc und GND zu lassen.

Nicht unbedingt: zum Strom sparen (wie schon angedeutet wurde) mache ich gelegentlich auch, dass ich ein Poti nur mit einem Port versorge für die Dauer der Messung.

OP #7363763
Lesenswert?

Axel S. schrieb:

Zuletzt noch: es ist vollkommen unklar, was der Sinn deiner Schaltung sein soll. Pins sparst du damit jedenfalls nicht. Statt 2 Analog-Pins brauchst du zwar nur einen, dafür aber zwei zusätzliche Digital-Pins.

Ja stimmt. Soweit hab ich nicht gedacht. Der Sinn meiner Schaltung war, den Wert von 2 (oder mehr) Potentiometer mit einem einzigen analogen Eingang (eben weil der D1 Wemos Mini nur einen hat) einzulesen.

Achim M. schrieb:

Pullup an den ADC-Pin, Schleifer an den ADC-pin, dann jeweils ein unteres Ende der Potis mit jeweils einem GPIO nach GND ziehen. Linearisierung in Software und man spart zwei GPIOs und den externen Multiplexer.

Also einen Widerstand von A0 zu VCC. Schleifer an A0 und was bedeutet das mit dem unteren Ende und der Linearisierung in Software ?

OP #7363787
Lesenswert?

Eine letzte Frage noch: Könnte ich auch einfach eine 1N4007-Diode von den beiden Schleifern der Potentiometer gegen den analogen Anschluss A0 schalten? Dann kann ja, wenn ein Poti durch den digitalen Pin auf HIGH steht, dieser Strom nicht über den Schleifer des "inaktiven" Potis (aufgrund der Diode fließen und die Messung "beeinflussen".

Oder male ich mir das nur in meiner rosaroten Welt wieder nur zusammen?

#7363823
Lesenswert?

Matthias P. schrieb:

Könnte ich auch einfach eine 1N4007-Diode von den beiden Schleifern der Potentiometer gegen den analogen Anschluss A0 schalten?

Ja, wenn du die Potis wie ursprünglich geplant, nur zuschaltest, wenn du den Wert messen willst. Aber: die gemessene Spannung ist natürlich kleiner, wegen des Spannungsdrops der Diode. Wie groß der ist, kann man schwer sagen, die Eingangsströme sind ja minimal.

Marcel V. schrieb:

Dadurch gewinnt immer das höher eingestellte Poti (ODER-Verknüpfung).

Nicht, wenn das inaktive Poti mit einem I/O abgeschaltet wird.

#7363923
Lesenswert?

J. T. schrieb:

Oder was meinst du, ändert sich an der zur Verfügung gestellten Information, wenn sie normgerecht gezeichnet ist? Plötzlich entstehen ganz neue, vorher nie gesehene Verbindungen, nur weil man normgerecht zeichnet? Oder bitte was ist deine Vorstellung?

Offensichtlich ist Matthias P. nicht klar, warum sein Messwerte auch durch die Stellung des nicht "aktivierten" Potis beeinflusst werden. Eine vernünftige Darstellung des sich insgesamt ergebenden Widerstandsnetzwerkes würde das sofort zeigen. Aber wenn das auch aus der vorhandenen Darstellung sonnenklar hervorgeht, will ich dir nicht widersprechen.

Vom Eingangsstrom des ADC, der durch den 1.5kΩ Widerstand reduziert werden soll, reden wir erstmal noch gar nicht.

OP #7363949
Lesenswert?

Xanthippos schrieb:

Der WeMos Mini HAT nur EINEN Analogeingang.

Ok... nächste Frage. Warum hast du einen Arduino mit nur einem Analogeingang ausgewählt, wenn du mehrere Analog Signale einlesen willst?

Weil ich, wie in meiner Anfangsfrage geschrieben habe, keinen D1 Wemos in Fritzing fand, weshalb ich mich entsprechend, um es zu "verdeutlichen" für den Arduino (im Schaltbild, nicht in der Realität) entschieden habe.

Rainer W. schrieb:

Offensichtlich ist Matthias P. nicht klar, warum sein Messwerte auch durch die Stellung des nicht "aktivierten" Potis beeinflusst werden.

So ist es. In meiner "Wunschvorstellung" dachte ich, wenn die Spannungsversorgung über den GPIO-Pin auf LOW gesetzt ist, fließt kein Strom über das "stillgelegte" Poti (und es ist quasi raus aus der Schaltung). Jetzt weiß ich es besser, denke ich : Der Strom des aktiven Potis, der an dessen Schleifer zu A0 fließt, fließt auch durch den Schleifer des "deaktivierten" Potis zu GND, weshalb das durch den GPIO-Pin deaktivierte Poti niemals richtig deaktiviert ist, sondern immer bei der Widerstandsmessung eine Rolle spielt. Stimmt das so ?

OP #7364234
Lesenswert?

Arduino F. schrieb:

Xanthippos schrieb:

Warum hast du einen Arduino mit nur einem Analogeingang ausgewählt,

Ähmmm.... Das Ding ist alles, nur kein Arduino.

Arduino F. schrieb:

Ähmmm.... Das Ding ist alles, nur kein Arduino.

Das "Ding" ist ein Arduino Nano.

Helmut -. schrieb:

Warum nimmst du nicht einen externen ADC mit mehreren Kanälen wie z.b. den ADS1115, der per I2C angesprochen wird. Dafür gibts auch Arduino-kompatible Bibliotheken. Könntest auch einen Pin sparen

Ich werde einen CD4051 nehmen, die hab ich daheim noch irgendwo rumliegen.

Xanthippos schrieb:

Für die Kombination MC-Platine mit WLAN und ArduinoIDE gibt es tausende Varianten. Warum eines mit ESP8266? Der ESP32 hätte ja mehr als genug Eingänge?

Der ist mir fast etwas "overdressed". Für meine minimalen Anwendungen hat bisher ein Arduino Nano immer ausgereicht. Da kam mir der D1 Wemos Mini mit WLAN und seinen GPIOs gerade recht f:-D

Ich danke euch ALLEN, jedem Einzelnen, für eure Beiträge !!

Gast #7364238
Lesenswert?

Matthias P. schrieb:

Weil ich, wie in meiner Anfangsfrage geschrieben habe, keinen D1 Wemos in Fritzing fand, weshalb ich mich entsprechend, um es zu "verdeutlichen" für den Arduino (im Schaltbild, nicht in der Realität) entschieden habe.

Gibt es überhaupt irgend einen Fritzing Plan, der auf die Darstellung falscher Bauteile verzichtet?

Ich frage mich, warum das Tool so beliebt ist. Warum verwenden die Leute nicht einfach einen Bleistift? Damit kann man jedes Schaltzeichen richtig zeichnen, ohne Verwirrung zu stiften.

Gast #7364256
Lesenswert?

Al. K. schrieb:

Warum verwenden die Leute nicht einfach einen Bleistift?

..weil dann wieder welche herummotzen das eine Skizze auch richtig sauber und ordentlich wie gedruckt aussehen kann.

Das habe ich hier im Forum noch nicht erlebt. Wir sind doch schon angenehm beeindruckt, wenn überhaupt Pläne gezeichnet werden.

(Firma: ;-) gibt es auch) #7364287
Lesenswert?

J. T. schrieb:

H.Joachim S. schrieb:

Dann male mal eine richtige Schaltung. Und dann siehst du selbst warum das so ist.

Tut mir leid, aber wenn du das in dem Bildchen nicht sehen kannst, wird es auch in einem "ordentlichen Schaltplan" nicht besser. Das zu sehen erfordert Wissen und kein ordentlichen Schaltplan. Du hättest ihm dieses Wissen geben können, hast dich aber für das forentypische Dummgeschwalle entschieden. Sehr schade, dich hätte anders in Erinnerung.

Ab diesem Moment muss eigentlich keiner mehr weiterlesen! Du bist derjenige, der a) etwas will b) sich nicht an Darstellungsstandards hält c) einen Ton drauf hast, der schlicht dreist ist d) Leute für unfähig erklärst, aber selber elementare Fähigkeiten missen lässt d) vermutlich nicht in der Lage bist eine vernünftige Skizze zu erstellen

Und weg!

#7364296
Lesenswert?

Ove M. schrieb:

a) etwas will

Ich will nichts, ich hab dem TO als erster gesagt, das man die Schleifer von 2 Potis nicht kurzschließen sollte.

Ove M. schrieb:

b) sich nicht an Darstellungsstandards hält

Von mir stammen exakt Null Darstellungen in diesem Threads, lediglich die Behauptung dass der Kurzschluss der Schleifer auch in dem bunten Bildchen deutlich zu sehen ist, wenn aber das Wissen fehlt, dass man die Schleifer nicht zusammenschaltet, dann wird man den Fehler auch in einem normgerechten Schaltplan nicht sehen.

Ove M. schrieb:

) einen Ton drauf hast, der schlicht dreist ist

Oder einfach angemessen, scheinbar muss man die Helfer ab und an deutlicher auf ihre Betriebsblindheit hinweisen.

Ove M. schrieb:

aber selber elementare Fähigkeiten missen lässt

Aha, welche denn? Die kriecherische Hochachtung vor dem Fachmann, der nicht in der Lage ist, das eigentliche Problem zu sehen? (Der TO wusste schlicht die Sache mit dem Schleifer nicht.)

Ove M. schrieb:

) vermutlich nicht in der Lage bist eine vernünftige Skizze zu erstellen

Der Meinung darfst du gerne sein. Ich glaube, bei meinen Problemen, bei denen Mal ein Schaltplan notwändig gewesen wäre, habe ich den Plan mit LTSpice gemalt. Meistens sind meine Fragen aber programmiertechnischer Natur.

(Firma: Gast) #7364320
Lesenswert?

Joachim B. schrieb:

.....

Ein mal, ein einziges Mal, damit du auch weißt was passiert, werde ich es dir sagen.

Deine Beiträge interessieren mich ehrlich gesagt herzlich wenig. Meistens ignoriere ich sie noch nicht einmal.

Wenn ich dich und dein Verhalten hier im Forum beschreiben sollte, würde dieses dem wohl am nächsten kommen:

Ahnungsoser, Zwietracht sähender Troll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren