sketch Bewaesserungsanlage

Hallo,

habe folgenden sketch für meine Bewässerungsanlage geschrieben:

// Relais Steuerpin an Arduino 8 und 7
const int relaisPin = 8;
const int relaisPin1 = 7;

void setup() {
pinMode(relaisPin, OUTPUT);
pinMode(relaisPin1, OUTPUT);
}

void loop() {
digitalWrite(relaisPin, HIGH);
delay(120000);
digitalWrite(relaisPin, LOW);

digitalWrite(relaisPin1, HIGH);
delay(900000);
digitalWrite(relaisPin1, LOW);
delay(85380000);
}

Dabei sollen 2 Magnetventile über Relais für 2 Minuten und 15 Minuten geöffnet werden.
Das erste öffnet und schließt nach 2 Minuten, das zweite öffnet ebenfalls anschließend, schließt jedoch nicht nach 15 Minuten, sondern das erste öffnet wieder. Meine Absicht war, das beide Ventile nur einmal in 24 Stunden öffnen und dann wieder schließen.
Kann mir jemand helfen?

Danke schon mal.

Gruß
golex

Willkommen im Forum!

Als erstes: setze den Sketch in Code-Tags (Symbos < / >), dann ist der auch lesbarer.

Dann mal Dir mal schematisch auf, was Du da programmiert hast; einfach auf dem Zeitstrahl.
Und dann mal Dir auf, was Du eigentlich möchtest.

Und dann schaust Du Dir das Beispiel “BlinkWithoutDelay” in den IDE-Beispielen an.

Und dann sagst Du wieder Bescheid, wie sauber Deine Ventile schalten :sunglasses:

Das du dir BlinkWithoutDelay ansehen sollst, wurde ja schon geschrieben.
Deinen Ablauf mit delays zu programmieren, ist eine sehr schlechte Idee, da während eines delays der Controller nichts weiteres macht, außer zu warten.
Ich vermute aber, du hast für deine Relais und Pumpen keine Freilaufdioden verwendet.
Dadurch bekommst du Störungen, die deinen Ablauf durcheinander bringen können.

Außerdem ist es unschön Crossposts zu verfassen noch dazu den Text aus #1 in der Rubrik “Tutorials und Literatur” (Wer Lesen kann, …)

Gruß Tommy

Hallo,

mal abgesehen davon das delay dazu ungeeignet ist sollte es ja aber eigendlich so gehen, ich sehe da zumindest auf Anhieb keinen Fehler. Jetzt ist das ein bischen doof mit den langen Wartezeiten beim testen. Um das mit den bereits angesprochenen externen Störungen mal auszuschliesen kannst Du anstelle der Relais ja erst mal LED nehmen.

delay hat den Nachteil das wärend der angegebene Zeit absolut nix passiert , das Ding macht einfach Pause und pennt. Merke : delay(1000) zu deutsch pen ne sekunde :wink:

millis ist ein Zähler der ab start des Systems im millisekunden Takt läuft. Wenn Du Dir den aktuellen Stand zu einem beliebigen Zeitpunkt merkst, kannst Du mit dem Zählerstandes zu einem spätere Zeitpunkt und der Differenz der beiden Werte die Zeit zwischen den beiden Ereignissen bestimmen. Dazu gibts in der IDE unter Datei / Beispiel / 02Digital. das betreffende Beispiel. Gerade noch vor etwa einer Woche dann noch den sehr gut verständlichen Beitrag zum Thema Nachtwächter der das anschaulich erklährt.

Nexter Punkt:

soll das einmal am Tag passieren , oder zu bestimmten Zeiten. Wenn Du alles auf millis umgeschrieben hast wird Dir das mit der Zeit weglaufen, so genau sind die millis auch nicht. Wenn es immer zur selben Zeit Bewässern soll wirst Du ohne ein RTC Modul oder Software mit NTP Synchronisierung nicht auskommen.

Gruß Heinz