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
Tobias Coring Flowgrow - das gelebte Miteinander in der Community Ankündigungen 0
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
D Neu in der Aquaristik (Benjamin aus Raum Köln/Bonn) Mitgliedervorstellungen 4
D Was kann der Sera CO2-Dauertest (nicht)? Technik 2
Maj.Monogwam Hilfe bei der Geschlechtsbestimmung, Königssalmler. Fische 2
Heiko Muth (Sumpfheini) Leptochilus pteropus, der Javafarn... Pflanzen Allgemein 0
T Weiß jemand, wer der Hersteller des Harzes ist, das sich "Purigen" nennt? Technik 11
Benjamin87 Der Zustand meiner Aquarium Pflanzen Pflanzen Allgemein 4
Benjamin87 Klares Wasser nach der Einlaufphase Technik 2
Benjamin87 Unerfahren in der Düngung Nährstoffe 1
Benjamin87 Trübung in der Einfahrphase Erste Hilfe 8
T In Zeiten der sog. Klimakrise ... Was ist Eure Sicht auf das "Teufelszeug" CO2? Kein Thema - wenig Regeln 10
S Optimierung der Düngung Nährstoffe 40
E Kalium Mangel (meine Pflanzen sagen ja der Test sagt nein) Nährstoffe 42
T Hilfe bei der Namenssuche Artenbestimmung 1
S Düngen in der Einfahrphase Nährstoffe 315
J Tropica Dünger in der Einfahrphase Nährstoffe 19
B4m8i Aquarium in der Arbeit - Proxima 250 ohne allem Aquarienvorstellungen 12

Ähnliche Themen

Oben