Der Flowgrow Aquacomp

*AquaOlli*

Member
Hi Moritz,

zu "lStartTime == lStopTime"
Ist Absicht, damit der Arduino evt Eingabefehler ebenfalls behandelt.

zu "lStartTime < lStopTime"
Stimmt, das ist die Standartprozedur. Aber man muß die Möglichkeit offen halten das jemand auch anders schalten möchte. Daher sollte man auch ">" ebenfalls abfragen oder in diesem Fall "Else".

zu "permanentes schalten".
Hatte ich ja geschriebe das der Status noch eingebaut werden muß.

Serial.print(ln) kenne ich, damit teste ich meinen Code. Aber probier doch selber mal aus, es funktioniert, zumindest bei mir.
 

MajorMadness

Active Member
PAH1":3u0qf1ba schrieb:
Hallo,

guck Dir doch mal das Display an. Dann fallen auch jegliche Taster etc. weg.
Den Satz verstehe ich jetzt nicht... Am Display sind keine Taster (Zumindest nicht an dehnen ohne Keypad-Shield). Wir brauchen aber welche um unsere Abdeckung zuSteuern. Da kümmern wir uns aber noch drum Sobalt wir was schönes sehen.
 

MajorMadness

Active Member
@Olli
Klar funktioniert es, aber nur der
if ((lTime >= lStartTime) && (lTime < lStopTime))
digitalWrite(12, HIGH);
else
digitalWrite(12, LOW);
Teil.
if ((lTime >= lStopTime) && (lTime < lStartTime)) // 10:00>18:00 && 10:00 < 9:00
kann nie zu treffen... Die Bedingung wäre 10:00>18:00 || 10:00 < 9:00

Ok, wir können versuchen unmögliche fälle abzufangen, aber ehrlich: Wer start auf 20:00 und stop auf 4:00 setzt um sein licht andersrum zu schalten, der sollte nicht versuchen nen Computer zu programmieren (soll jetzt nicht abfällig sein, aber ich bezweifel das ich mein Licht anschalten kann indem ich den Stecker ziehe...)
 

PAH1

Member
MajorMadness":2bkd6v4t schrieb:
PAH1":2bkd6v4t schrieb:
Hallo,

guck Dir doch mal das Display an. Dann fallen auch jegliche Taster etc. weg.
Den Satz verstehe ich jetzt nicht... Am Display sind keine Taster (Zumindest nicht an dehnen ohne Keypad-Shield). Wir brauchen aber welche um unsere Abdeckung zuSteuern. Da kümmern wir uns aber noch drum Sobalt wir was schönes sehen.

Ich denke die Beschreibung löst das Rätsel:
The shield features a 176 x 220 LCD-TFT display with a SPI interface to the Arduino, which includes a 4-wire resistive touch screen.

http://www.4dsystems.com.au/prod.php?id=185
 

MajorMadness

Active Member
Naaaa, das wäre doch langweilig und dein ansatz gut! Paar sachen weis ich ja auch nur durch mehrfach Falsch machen und immer noch passieren mir echt dumme Fehler.
 

Snakey

Member
MajorMadness":3tafqq5y schrieb:
Ok, wir können versuchen unmögliche fälle abzufangen, aber ehrlich: Wer start auf 20:00 und stop auf 4:00 setzt um sein licht andersrum z
u schalten, der sollte nicht versuchen nen Computer zu programmieren (soll jetzt nicht abfällig sein, aber ich bezweifel das ich mein Licht anschalten kann indem ich den Stecker ziehe...)

Ähm, Mondlicht würde ich aber gerne so schalten !
 

MajorMadness

Active Member
Code:
    if ((lTime >= lStopTime) && (lTime < lStartTime))
      digitalWrite(12, LOW);
Das schaltet licht aber aus nach der Logig die verwendet wurde. Mondlich Anschalten, nach der gleichen Logik wie Taglicht würde bedeuten dw HIGH. (ausser du setzt Mondlicht und Taglicht auf den Gleichen Relay Pin wovon Ich nur abraten kann.)
 

*AquaOlli*

Member
Hi Moritz,

ich versuchs trotzdem nochmal, auch wenn ich mich jetzt komplett zu Narren mache :pfeifen:
Du hast Recht, kann auch nicht zutreffen. Aaaber weiter Oben hast Du sicherlich übersehen das eine Konstelation "StartTime<StopTime" in diese Spalte niemals landet. Ich frage nämlich vorher nach wie die Zeiten zu einander stehen. Bei deiner genannten Konstelation währe Er weiter Oben reingesprungen bei "((lTime >= lStartTime) && (lTime < lStopTime)) ", und ich denke da funktioniert es. // 10:00 >= 9:00 && 10:00 < 18:00

Ich habe den Code noch etwas verändert und allmögliche Uhrzeiten ausprobiert, er macht immer was er soll.
Bitte probier mal aus, du darfst mich auch steinigen wenn es doch nicht gehen kann :roll:
So, muß jetzt erstmal wech...

Code:
  // hier geht's rein wenn Start == Stop ist (Eingabefehler)
  if (Start == Stop){ 
    if (Status == HIGH) digitalWrite(12, LOW);
    Status = LOW;
  }

  // hier geht's rein wenn Start < Stop ist
  if (Start < Stop){
    if ((jetzt >= Start) && (jetzt < Stop)){
      if (Status == LOW) digitalWrite(12, HIGH);
      Status = HIGH;
    }else{
      if (Status == HIGH) digitalWrite(12, LOW);
      Status = LOW;
    }
  }
    
  // hier geht's rein wenn Start > Stop ist
  if (Start > Stop){
    if ((jetzt >= Stop) && (jetzt < Start)){
      if (Status == HIGH) digitalWrite(12, LOW);
      Status = LOW;
    }else{
      if (Status == LOW) digitalWrite(12, HIGH);
      Status = HIGH;
    }
  }

MajorMadness":2496jqav schrieb:
@Olli
Klar funktioniert es, aber nur der
if ((lTime >= lStartTime) && (lTime < lStopTime))
digitalWrite(12, HIGH);
else
digitalWrite(12, LOW);
Teil.
if ((lTime >= lStopTime) && (lTime < lStartTime)) // 10:00>18:00 && 10:00 < 9:00
kann nie zu treffen... Die Bedingung wäre 10:00>18:00 || 10:00 < 9:00

Ok, wir können versuchen unmögliche fälle abzufangen, aber ehrlich: Wer start auf 20:00 und stop auf 4:00 setzt um sein licht andersrum zu schalten, der sollte nicht versuchen nen Computer zu programmieren (soll jetzt nicht abfällig sein, aber ich bezweifel das ich mein Licht anschalten kann indem ich den Stecker ziehe...)
 

heiko77

New Member
Hallo Olli,

wenn Du das unbedingt so machen willst, guck mal unter "endliche Automaten" nach und implementier das als solcher.

Viele Grüße,
Heiko
 

*AquaOlli*

Member
Hi Leute,

was haltet Ihr von Interrupt ?
Es müsste doch reichen wenn wir die neue Zeit erst holen wenn eine Sekunde vergangen ist oder.

Code:
// ********************************************* //
//                 VARIABLES                     //
// ********************************************* //
static volatile int interrupt0set;

// ********************************************* //
//                   Main Code                   //
// ********************************************* //
void setup() {
  attachInterrupt(0, interrupt0routine, FALLING);
  pinMode(2, INPUT);
  digitalWrite(2, HIGH);  
}
    
void loop(){
  if (interrupt0set >= 1){
    RTC.getTime();    
    [Licht]
    [Dünger]
    [Temp holen]
    [Heizung]
    [...]
    interrupt0set = 0; 
  }
 [Keypad]
 [Ethernet]
 [...] 
}
    
void interrupt0routine(){ 
  interrupt0set++;
  }
 

Harrdy

Member
Da ihr scheinbar einige dabei sind die sich mibm Arduino auskennen. Jemand ne Idee wie ich

Code:
pinMode(pin, OUTPUT)
digitalWrite(pin, HIGH/LOW)

auf den pcf 8574 schicken kann?
 

Bibosch

Member
Hallo Moritz,

ich beobachte diesen Thread und ich habe, da ich mich mit dem Arduino nicht so sehr auskenne ein paar Fragen.

Ich habe gesehen, dass man den Arduino mit einem WLAN Modul ausrüsten kann. Wenn man also ein solchen Arduino hätte, könnte man doch das Programm auch über WLAN übertragen? Falls man das nicht kann, ist es dann wenigstens möglich die Parameter wie die Ein/ Aus- schaltzeit des Lichts, die Wassertemperatur oder ähnliches über WLAN zu ändern?
 
Ähnliche Themen
Themenersteller Titel Forum Antworten Datum
Ewald Flowgrow Forum Uhr - der Zeit voraus? Kein Thema - wenig Regeln 2
HaManFu HaManFu grüßt den Rest der Welt@Flowgrow Mitgliedervorstellungen 15
Tobias Coring Der Flowgrow Dünger ist da ;) Nährstoffe 127
E Wasserfluss in der Cristalprofi I-Linie (Innenfilter) Technik 6
S Verzweifel bei der Dosierung von Nährstoffen Nährstoffe 15
Wuestenrose Entkarbonisierung – was passiert mit der Leitfähigkeit? Kein Thema - wenig Regeln 11
F Pflanzen wachsen schlecht seit Umstellung der Beleuchtung Erste Hilfe 20
M Krasses Wachstum nach Auslichtung der Anubias Nana Aquarienvorstellungen 12
C Schädlinge - Nützlinge im Nanoaquarium - Hilfe bei der Bestimmung Erste Hilfe 1
C Hallo, ich bin in der "Findungsphase" Mitgliedervorstellungen 12
Andrej Neue Bewohner an der Oberfläche Kein Thema - wenig Regeln 2
E Was kommt nach der JBL Solar Natur LED? Kein Thema - wenig Regeln 2
M Wachsen Pflanzen langsamer und schlechter während der Einfahrphase? Pflanzen Allgemein 1
R Woher kommt der üble beißende Gestank? Erste Hilfe 12
P Erfahrung mit der Fa. WIO. Äste ins Aquarium - wässern Kein Thema - wenig Regeln 14
F Hallo aus der Voreifel Mitgliedervorstellungen 3
Pavelix Grüße aus der Sächsischen Schweiz Mitgliedervorstellungen 3
J Neuer aus der Eifel Mitgliedervorstellungen 1
G Hallo aus der Pfalz Mitgliedervorstellungen 2
V Cryptocoryne wendtii "Fancy Pink" - identisch mit der "C. Flamingo"? Artenbestimmung 2

Ähnliche Themen

Oben