Problem mit Erdfeuchtesensor

Hallo liebe Community,

ich brauche mal eure Hilfe.

Und zwar, habe ich mir ein paar Erdfeuchtesensoren gekauft.

Betreibe ich diese mit dem Wemos D1 funktioniert er einwandfrei.
Auch mit dem Attiny85 läuft die Messung mit der richtigen Geschwindigkeit(sofort).

Betrieben an all meinen anderen Boards Uno,Mega,Pro Micro funktioniert er nicht ganz.
Die Messung dauert bis zu 2 Minuten, auch ist der Messradius nicht so groß wie mit den anderen beiden.
Ich habe den Sensor schon mit einem Multimeter getestet und der Analogwert ist in Ordnung.
Ich habe auch mit den Referenzspannungen der Module experementiert, aber auch ohne Ergebnis.
Ich habe es auch mit Widerständen auf der Signalleitung probiert.

Vielleicht hat einer von euch damit schon Erfahrungen gemacht oder hat eine Idee für nen Lösungsansatz.

Mfg, Mike

Sketch??? oder verttraust Du blind unseren hellseherischen Fähigkeiten?

Hallo,

hier liegen diese Sensoren auch rum, bisher nur mal einen getestet, für ok befunden. Ansonsten noch nicht eigesetzt.

Was ich nicht verstehe: die geben ja eine analoge Spannung je nach Feuchtigkeit aus. Wie soll ein analogRead() bei Uno,Mega,Pro Micro 2 Sekunden brauchen? Und was bedeutet "der Messradius nicht so groß"?

Auf den Sensoren ist 3V Spannungsregler und ein 555. Die Ausgangsimpulse werden passiv integriert und liegen an Out an. Spannung also irgendwo zwischen nahe 0V und max. 3V. Man muß ohnehin jeden Sensor die zugehörigen Spannungswerte selber feststellen, bei meinem getesteten waren es z.B. ADC-Werte von 520 in Luft und 260 in Wasser. irgendwo dazwischen liegen also die Werte im Boden.

Gruß aus Berlin
Michael

Hallo Uwe,

Der Code um es mit dem Digispark Attiny85 auszulesen

#include <DigisparkOLED.h>
#include <Wire.h>


void setup() {
  oled.begin();
  
}

void loop() {
 
 
  oled.setCursor(0, 0);
  oled.setFont(FONT8X16);
  oled.print(analogRead(2));
  delay(1000);
}

Das ist der Sketch für alle anderen Boards

void setup() {
Serial.begin(9600);
//pinMode(A0, INPUT);
//analogReference(EXTERNAL);
}
void loop() {
 Serial.println(analogRead(A0)); // put your main code here, to run repeatedly:
 delay(500);
}

Amithlon,

Mit dem Messradius meine ich, den Bereich, wenn der Sensor in der Erde steckt, der abgedeckt wird.
Der Sensor braucht bei dem Arduino Uno zb. 2 Minuten, bis das der Maximalwert erreicht wird, wenn der Sensor in Wasser steckt.

Mit dem Wemos D1 Mini oder auch Digispark Attiny85 springt der Wert auf sein Maximum, sobald diese im Wasser sind.

Ich hoffe ich konnte euch so weit Versorgen.

MFG

Haben die eine andere Art von A/D Wandler?
Grüße Uwe

Hallo Uwe,

das kann ich dir nicht beantworten.

Jemand anderes Empfahl mir, Drei Widerstände in Reihe zu Schalten, zwischen 5V und GND.
Ich habe folgend die Funktion des Aread geprüft
Der Wert springt direkt wie er sollte. Was mich sehr verwundert.
Immerhin funktioniert der Sensor ja auch am Multimeter.

Mfg Mike

Was hat die Schaltung mit dem Sensor zu tun?
Wie hast Du den Sensor angeschlossen?
Grüße Uwe

Hallo,

uwefed:
Haben die eine andere Art von A/D Wandler?
Grüße Uwe

nein, die Impulsfolge des NE555 wird einfach nur passiv integriert. Also Sensor an GND/+3,3...5V und Ausgnag an den AnalogIn des Arduino.
Seine Widerstände auf dem Steckbrett verstehe ich da nicht.
Ich habe die Schaltung mal angehängt.

Gruß aus Berlin
Michael

SEN0193 Capacitive Soil Moisture SensorV1.0.pdf (89.4 KB)

Die Widerstände auf dem Steckbrett, sind dazu da, um zu testen, ob der analogRead noch funktioniert.

Ist der Schalter nicht geschlossen beträgt der Wert 1/3. Wird der Schalter geschlossen sollte der Wert zu 1/2 Springen. Das tut er auch.

Der Sensor ist wie bei allen anderen Boards.

GND nach GND
VCC nach 3.3V oder 5V
AUOT auf A0

Also wirklich kein Hexenwerk, deswegen bin ich so verwirrt.

Analogsignale sind bei hochwertigen Sensoren gepuffert. Bei deinem nicht. Der Unterschied ist der Stromverbrauch des AD-wandlers. Manche haben einen Eingangswiderstand von 100MOhm, heist, es fliest praktisch kein Strom. Aber dann werden sie auch störungsanfällig. Andere lassen 1-2mA fliesen, dann sind sie nicht so leicht zu stören, aber die Quelle muss den Strom liefern können.

Ein 555 Timer der passiv über einen Kondensator integriet wird extrem anfällig für Stromschwankungen sein. Und dann einen "billigen" AD-Wandler benutzen wie er im Arduino drin ist, führt dazu, das der Kondensator lange braucht sich aufzuladen.

Puffern tut man in der Regel, indem man eine OP-Verstärker mit hohem Eingangswiderstand davor schaltet. Meist irgendwo schon integriet. Aber eben nicht überall. Und dann kommt man zu den von dir gemessenen Unzulänglichkeiten.

Du könntest das statt mit Widerständen (die nun auch noch zusätzlich Strom fliesen lassen, ohne zum Messergebniss beizutragen) mal mit einem nicht all zu großen Kondensator versuchen. Zu groß und er wird vom 555 nicht genug aufgeladen. Zu klein und er bringt nichts. Ich würde mal aus dem Bauch raus mit 100nF anfangen, aber auch bis 10µF hoch gehen. Drüber ist in jedemfall zu groß. Ich kenne leider den verbauten Kondensator nicht im Feuchtemessstab. Aber jede zusätzliche Kapazität parallel hilft etwas mehr Strom zu liefern für den AD-Wandler.

Hallo Chefin,

danke für deinen Vorschlag, werde ich mal heute über den Tag ausprobieren.
Das hier hat jemand mal über einen Baugleichen Sensor geschrieben Link

Ich bin nicht so der Elektronikexperte deswegen werde ich nicht so ganz schlau daraus.
Vielleicht kannst du mir auch bitte einmal vormachen, wie ich den Kondensator anzuschließen habe.

MFG Mike

Kondensator zwischen Masse und Analogausgang des Messstabs.

Wenn die Schaltung im Link stimmt sind 1µF verbaut. Dann mal um 2,7µF erhöhen und schauen obs besser wird. Mehr wie 10µF wird der 555 nicht laden können in der kurzen Zeit die er hat. Der 10KOhm Widerstand begrenzt dir den Strom dazu zu stark. Allerdings ist das eine Schätzung, da ich mir die genaue Dimensionierung nicht angeschaut habe und daher die Schaltfrequenz nicht kenne. Hängt ja auch von der Kapazität des Sensors in der feuchten Umgebung ab, also dem Design der Platine selbst.

Daher eher ein anwendungstypischer Wert, den man so beim 555 verwendet. Hier hilft am besten rumtesten am Steckboard und mitschreiben, wann es besser und wann es wieder schlechter wird. Das kann sich durchaus auf einen sehr engen Wert eingrenzen, an dem Kondensator und AD-Wandler Eingangsstrom gut harmonieren

Hallo,

da der Kram rumlag mal 2 Sensoren jeweils an einem Nano und UNO rangesteckt, GND/5V/A0.
Den Testsketch von meinem Versuch damals raufgeflasht.

void setup() {
  Serial.begin(115200); 
}
void loop() {
  int val;
  val = analogRead(0); //connect sensor to Analog 0
  Serial.println(val); 
  delay(1000);
}

Werte in Luft irgendwo zwischen 580 und 600, in Wasser getaucht bei 280-300, Reaktion innerhalb 1-2s, bleiben dann auch stabil im Bereich. Ich habe die Werte nicht weiter ausgewertet.
Eine Erklärung für das Verhalten bei Dir habe ich also nicht.

Passt auch zur Zeitkonstante, 1M || 1µ sind 1s. Der ADC des Mega328 ist da auch hochohmig genug für, er lädt ja nur alle Sekunde seinen internen S&H-Kondensator aus dem 1µF Elko.

Gruß aus Berlin
Michael

Hallo Amithlon,

sehr seltsam.
Ich habe einfach mal den selben Sketch und Verkabelung getestet. Geht immer noch nicht.

Ich halte es persönlich für unwahrscheinlich, aber ist möglich, dass es auch daran liegen könnte, dass ich hier mit einem Elegoo Uno arbeite?

Sollte ich es nochmal mit einem "nackten" Atmega328P probieren?
Und mit nem Oled auslesen.

MFG Mike

Hallo,

Meiketch:
Ich halte es persönlich für unwahrscheinlich, aber ist möglich, dass es auch daran liegen könnte, dass ich hier mit einem Elegoo Uno arbeite?

Der Elegoo Uno sieht nach den Bilder erstmal identisch zu meinem aus, es bleibt also rätselhaft.
Wprde mich auch wundern, wenn da speziell bei den Analog-Pins was anders wäre. Die sind normalerweise ohne weitere Beschaltung einfach mit den Pins des Mega328 verbunden.

Gruß aus Berlin
Michael

Hallo nochmal,

also selbst auf dem Steckbrett mit dem Atmega 328P treten diese Probleme auf.

Ich habe inzwischen auch eine Nachricht vom Händler bekommen.
Er schickt mir wohl nochmal ein paar neue zu.

Aber ich verstehe immer noch nicht, warum das am Wemos zb funktioniert.........

MFG Mike