#define MaxdryAnalogValue 1023
#define MaxwetAnalogValue 0
#define DryValuePercent 0
#define WetValuepercent 100
#define Moisture_AlertValuepercent 25 // wenn die Feuchtigkeit 25 % erreicht, beginnt die Bewässerung
int PumpPin = A0;
int sensorPin = A3;
int sensorValue;
void setup() {
Serial.begin(9600);
pinMode(PumpPin,OUTPUT); //Ausgangspin für die Relaiskarte, dieser sendet das Signal an das Relais
pinMode(A0,INPUT); //Eingangspin vom Bodensensor
}
void loop()
{
sensorValue = analogRead(sensorPin);
Serial. print("Analoger Feuchtigkeitswert : ");
Serial. println(sensorValue);
int moistureValuePercent = map(sensorValue, MaxdryAnalogValue, MaxwetAnalogValue, DryValuePercent, WetValuepercent);
Serial. print("Feuchtigkeitsprozent: ");
Serial. print(moistureValuePercent);
Serial. println("%");
if (moistureValuePercent <= Moisture_AlertValuepercent)
{
//Pflanze ist zu trocken, mit dem Gießen beginnen
digitalWrite(PumpPin, HIGH);
delay(2000);
// Hör auf zu gießen, es ist genug
digitalWrite(PumpPin,LOW);
}
delay(5000); // Überprüfung der Feuchtigkeit alle 5 Sek
}
Problem:
Es wird alle 5 Sekunden geprüft ob die Bodenfeuchtigkeit unter 25% liegt und es soll dann, in dem Fall, dass das zutrifft, das Relais für 2 sek. umgeschaltet werden. An dem Relais ist die Batterie und die Wasserpumpe angeschlossen. Wenn ich nun nur das Programm laufen lasse, ohne dass die Batterie angeschaltet ist, dann schaltet das Relais wunderbar alle 5 sek. für 2 Sekunden um. Wenn ich aber die Batterie anschalte, dann schaltet das Relais immer nur für wenige Augenblicke um, bevor es sich dann vor dem erreichen der 2 sek. automatisch zurückschaltet (Die Pumpe läuft dabei auch in dem kleinen Zeitraum).
Dann zeige doch mal ein Schaltbild, damit wir genau sehen können, wie du alles angeschlossen hast.
Und zu den Relais, die üblichen Relais sind Low aktiv, heißt, die ziehen bei Low Signal an.
In deinem Sketch ist das anders herum.
Und ja, in deinem Sketch ist es auch so, das dein Relais wieder zurück schaltet, also nicht alleine.
Ich hab schon ausprobiert ob es was ändert, wenn ich LOW und HIGH tausche, das war leider nicht der Fall.
Ja, aber er schaltet ja nicht nach den vorgegebenen 2 Sekunden zurück sonder schon vorher. Ich bin leider nicht so drin in dem Thema, aber könnte es sein, dass immer wenn die Pumpe anspringt es zu einem Spannungsabfall auf der anderen Seite kommt und deshalb das Signal zusammenbricht?
Diese Diode bewirkt unterdrückt einen hohen "negativen" Spannungsimpuls beim ausschalten der Pumpe. Dadurch kommt der Kontroller durcheinander. Diese muss in Sperrrichtung eingesetzt werden.
Vielleicht habe ich es noch nicht ganz verstanden, aber wenn die Diode einen "negativen" Spannungsimpuls beim ausschalten der Pumpe verhindert, warum schaltet das Relais dann vor dem erreichen der 2 Sekunden schon zurück?
Das hatte ich auch in Post #12 geschrieben.
Das ist für den Controller ein Störimpuls, der diesen durcheinander bringt.
Das kann schlimmstenfalls zum Absturz des Controllers, oder dessen Zerstörung kommen. Was aber bedingt durch das Relais selten passiert.
Und das Abschalten erfolgt durch ein Prellen der Relaiskontakte.
Die 1N4007 hat IFSM 30A da ist das Relais zu langsam um die klein zu kriegen
Musste in DB schauen dachte die hält mehr aus, anderseits hat mich noch nie im Stich gelassen