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.
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.
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.
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.
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.
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.
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.
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
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.
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.