Computer sind dazu da einem wiederkehrende schematische Arbeiten abzunehmen. Und als leidenschaftlicher Programmier habe ich mit jetzt einen hotstring "nodefine" programmiert der Autohotkey schreiben lässt
Die Nachteile von #define sind:
-nicht typsicher,
-keine namespaces,
-nicht als const-reference benutzbar,
-schlechtere Optimierung vom Compiler,
-nichtsaussagende Fehlermeldungen,
-tausende Fehlerquellen mit Addition ohne Klammern.
Deshalb Konstante "Variablen" definieren.
Das macht man durch hinzufügen des Wortes "const" vor dem Variablentyp.
Beispiel:
const byte relaisHeizung_Pin = 7;
Durch das Wort const weiß der Compiler, dass diese "Variable" ihren Wert nicht ändern darf.
Sollte man in seinem Programm ausversehen
relaisHeizung_Pin = 8;
programmieren, dann bringt der Compiler eine Fehlermeldung.
Wow.... Ihr seid ja unglaublich. danke für die vielen Inputs. Ich habe vieles nun einfliessen lassen. Das mit beiden Relais gleichzeitig ist Tatsache obwohl die eigentlich verriegelt sein sollten.
Das mit Low-Aktive Relais habe ich nicht ganz verstanden wie dies zu lösen ist im Allgemeinen.... Ich muss mal all die Informationen für mich und im Programm verarbeiten und dann schauen wie es aussieht...
Was heisst das jetzt genau du hast vieles einfliessen lassen?
Hast du das Testprogramm auf den Arduino geladen und wirklich herausgefunden ob deine Relais nun mit
digitalWrite(Heizung_Pin, false)
oder eben besser geschrieben als
digitalWrite(Heizung_Pin, LOW)
die Heizung EIN-schaltet?
Hast du meine Programmversion aus Post #42 mit dem seriellen output auf den Arduino geladen und dir die Ausgabe im seriellen Monitor angeschaut?
Wenn du noch nicht weißt wie man das mit dem seriellen Monitor macht. Einfach Bescheid sagen.
vgs
(insider-Anmerkung: Ob die "Antwort" des Computers aus dem Post 42 wohl gefallen wird?"
Noch eine grundsätzliche Anmerkung:
Du arbeitest an einem Informatik-Projekt. Und in einem Informatik-Projekt ist das wichtigste Information.
Du musst deine potentiellen Helfer schon ausführlich informieren was du getestet bzw. geändert hast.
Das heisst jedesmal wenn du eine Programmänderung gemacht hast die komplette neue Programmversion posten.
Wenn es serielle Ausgaben gibt die serielle Ausgabe auch als code-section posten.
Genau angeben was du gemacht hast
Beispiel: ich habe die Programversion aus post nummer 42 auf den Arduino geladen und dann folgende serielle Ausgabe bekommen.....
Jetzt versuche mal folgende unpräzise Anweisung in Programm umzusetzen.
"Wenn das nicht funktioniert dann musst du invertieren"
Da geht es dir so damit:
Hä was bitte? Was meinst du mit "das"? wo soll etwas invertiert werden??
vgs
Ich habe eine Bitte:
Hör mal auf irgendetwas zu vermuten und lade die Programversion aus post 42 auf deinen Arduino. Das ist 1 zu 1 DEIN Programm nur durch seriellen Output ergänzt.
Der serielle output redet Klartext. Damit siehst du dann ganz genau was dein Programm tatsächlich macht.
vgs
Ich habe mein Programm so ergänzt und geladen. im Serial Monitor geöffnet mit der korrekten Baudrate. Da wechselt der Zustand vom Kühlen nicht sobald er soll. Und wenn, dann direkt zum Heizen aber verspätet.... ich werde das wahrscheinlich nochmal von anfang an betrachten müssen. Es sah anfangs so simpel aus und nun verwirrt es mich mehr. X)