Spannungsteiler mittels Reedkette am Analogen Eingang

Moin Gemeinde,

für ein Projekt "Pegelmessen im Wassertank" habe ich eine Reedkette die ich verbauen möchte. In meinem Wassertank habe ich ein 20cm Rohr, innerhalb dieses Rohrs liegt meine Reedkette und soll abhängig von der Schwimmerposition (mit eingebauten Magneten) die einzelnen Reed Relais schalten und somit einen Wert ausspucken.
Die Widerstände zwischen den einzelnen Reedkontakten haben 10 Ohm. Insgesamt dann bei ca Stück ca 200 Ohm. Wie kann ich denn einen Gesamtspannungsteiler aufbauen und mir der Strom nicht zu hoch wird?

Die Wasserstandsanzeigen, die aktuell verbaut sind, sind absolute Schätzeisen. Ich möchte hier ein bischen mehr Genauigkeit und Auflösung reinbringen.

Also Spannungsteiler für den Analogeeingang, wie am besten aufbauen?

viele Grüsse und bleibt gesund

Gerd

Das kann ich mir leider nicht vorstellen, hast Du einen Link zu der Reedkette und/oder einen Schaltplan?

Damit willkommen im Forum!

und mir der Strom nicht zu hoch wird?

Die Kette mit einer Konstantstromquelle speisen.

moin,

danke für die Hinweise,

Faraday, Spannungsteiler aus 10K und meinen max 200 Ohm ergeben dann aber ein Verhältnis von 50:1m bei meinen 3,3 Volt bleiben dann nur noch 3,3V/50 = 0,066V als verwertbarer Spannungswert für meinen Analogen Eingang, oder sehe ich da was falsch?

ShannonMember, vielleich ist die Idee mit der konstantstromquelle ein guter Hinweis, wie würdest du das im Detail aufbauen?

vg

Gerd

hallo Tesla,

habe nur ein Bildchen der Kette, die habe ich bei einem Hersteller abgezwackt,
die Widerstände haben jeweils 10 Ohm

vg
Gerd

IMG_5411.JPG

Wie ich das tun würde?

Anders!
(wenn es keine Gegenanzeigen gibt)

z.B.
-->> Kapazitive Messung
(mit Temperaturkompensation)

Hi,

also ich habe das mal durchgerechnet,

3,3 V Betriebsspannung
1 V Meßbereich am analogen Eingang

d.h. Verhältnis 3,3 zu 1, bzw. 726 Ohm zu 10 - 200 Ohm Variable

dann ist ein Strom von 3,3 - 4,4 mA zu erwarten, oder ??

Damit könnte ich leben und mein Nodemcu auch,

Was meint ihr ?

vg

Gerd

gschrode54:
habe nur ein Bildchen der Kette, die habe ich bei einem Hersteller abgezwackt,
die Widerstände haben jeweils 10 Ohm

Danke für das Bild, aber für einen guten Rat würde ich ein Datenblatt benötigen.

gschrode54:
.. bei meinen 3,3 Volt bleiben ...

Welche Hardware verwendest Du?

Mein spekulativer Vorschlag:

5V - R - Abzweig anloger Eingang - 0 bis 200 Ohm Reedkette - GND

R berechnet sich dann zu (2V / 3V) * 200 Ohm = 133 Ohm

Der maximale Strom beträgt dann 5V / (133 + 10) Ohm = 0,035 A

Ob die Widerstände der Kette das vertragen können, mußt Du dem Datenblatt entnehmen. Sonst muß der Widerstand R erhöht werden.

gschrode54:
ShannonMember, vielleich ist die Idee mit der konstantstromquelle ein guter Hinweis, wie würdest du das im Detail aufbauen?

Die Konstantstromquelle

Hi,
erst mal vielen dank für eure Beiträge. ich werde noch ein bischen experimentieren und dann das Ergebnis präsentieren.
Der Spannungsteiler macht mir den einfachsten Eindruck in der Umsetzung.

vg

Gerd

habe nun eine passable Löung mit Vorwiderstand, Spannungsteiler. sodass ich am A0 des nodemcu 0-1 V habe. per mapping kann ich diese Werte auf mein Tankvolumen des Wassertanks ummappen

void loop(void) {
u8g2.setFont(u8g2_font_courB08_tf);
u8g2.firstPage();
do {
u8g2.setCursor(0, 15);
u8g2.print(F("Wassertank"));
u8g2.setCursor(80, 30);
u8g2.setFont(u8g2_font_courB24_tf);
u8g2.print(val);
u8g2.setCursor(0, 30);
u8g2.setFont(u8g2_font_courB08_tf);
u8g2.print(F(" Liter"));
} while ( u8g2.nextPage() );
val = map(analogRead(analogPin), 38, 350, 106, 0); // Pin einlesen

und auf einem OLED Display zur Anzeige bringen.

Ein Problem habe ich noch, zwischen den Reedkontakten zeigt mein Schwimmerrelais -128 an, weil der Abstand zwischen den Reedrelais zu groß ist und kein Kontakt geschaltet wird. In diesem Zwischenbereich habe ich dann diesen Fehlerhaften Wert.

Kann ich in meiner Mapping Val Werte ausschliessen. Z.B. wenn dann ein Wert von -128 angezeigt wird, also analogRead mit Begrenzung oder ausklammern von Bereichen?

vg

Gerd

Wenn Dein Messwert < x ist, ignorierst Du die ganze Messung und behälst den letzten Wert.

Gruß Tommy

(ungetestet)

void loop(void) {
  val = map(analogRead(analogPin), 38, 350, 106, 0); // Pin einlesen
  if (val > 0) {
    u8g2.setFont(u8g2_font_courB08_tf);
    u8g2.firstPage();
    do {
      u8g2.setCursor(0, 15);
      u8g2.print(F("Wassertank"));
      u8g2.setCursor(80, 30);
      u8g2.setFont(u8g2_font_courB24_tf);
      u8g2.print(val);
      u8g2.setCursor(0, 30);
      u8g2.setFont(u8g2_font_courB08_tf);
      u8g2.print(F("  Liter"));
    } while ( u8g2.nextPage() );
  }
}

Wie kann ich denn einen Gesamtspannungsteiler aufbauen und mir der Strom nicht zu hoch wird?

Größere Widerstände nehmen.

Ob die Widerstände der Kette das vertragen können, mußt Du dem Datenblatt entnehmen. Sonst muß der Widerstand R erhöht werden.

Gegenfrage: Halten die Reed-Kontakte denn den Strom von 35mA aus?

Grüße Uwe

Hi Tommy, Tesla Member,

das hat echt geholfen, danke. Habe noch einen Delay und den serial.print eingefügt. jetzt läuft es fast schon gut.
Hat noch jemand einen Kniff, den ich einsetzen kann, das nach einem Reset die OLED Anzeige zuverlässig neu startet. Ich habe den Verdacht das das OLED Display ein Eigenleben führt, also nicht immer nach Reset neu einschaltet. Gibt es eine Möglichkeit, eventuell den Flash Button zum ein/ausschalten des OLED Displays zu missbrauchen :slight_smile:

vg

Gerd

void loop(void) {
val = map(analogRead(analogPin), 38, 350, 106, 0); // Pin einlesen
if (val > 0) {
u8g2.setFont(u8g2_font_courB08_tf);
u8g2.firstPage();
do {
u8g2.setCursor(0, 15);
u8g2.print(F("Wassertank"));
u8g2.setCursor(80, 30);
u8g2.setFont(u8g2_font_courB24_tf);
u8g2.print(val);
u8g2.setCursor(0, 30);
u8g2.setFont(u8g2_font_courB08_tf);
u8g2.print(F(" Liter"));
Serial.print(val); Serial.println(" Liter"); // Wert ausgeben
delay(1000);
} while ( u8g2.nextPage() );
}
}

gschrode54:
Hat noch jemand einen Kniff, den ich einsetzen kann, das nach einem Reset die OLED Anzeige zuverlässig neu startet.

Mein OLED hat einen Reset-Pin, den ich mit dem des µCs verbinde.