Arduino Zeitschaltung von werten.
-
@Ben
Ja, ich kann dir folgen.
Du musst dann entweder auch die LEDs mit Hysterese schalten. Was aber bei einer reinen Visualisierung unüblich ist.Oder du musst die LEDs getrennt von der Heizung/den Lüftern steuern.
Dann brauchst du mehr Ausgänge. Und wenn du die Ausgänge in jedem Durchlauf schreiben willst wie in deinem Beispiel, dann musst du dir den aktuellen Zustand merken. Weil sonst das Schalten mit Hysterese eben nicht funktioniert.da ich alles noch auf einem Steckbrett habe und ich später die Heizung über 230V steuern muss ( werden Heizmatten und Lampen), muss ich ja nach meinem wissen mit optokoppler Relais arbeiten.
Ob du das musst weiss ich nicht. Galvanische Trennung wäre angesagt, ja. Aber die solltest du auch mit einem normalen Relais bekommen. Optokoppler ist da glaube nicht muss. Allerdings wirst du ein normales Relais vermutlich nicht mit dem Arduino schalten können. Die Dinger ziehen ja ordentlich Strom.
Gibt aber genügend Möglichkeiten. Optokoppler-Relais wie du schreibst oder Opto-Triac oder irgendsowas.Wobei ich dir da keine konkreten Tips geben kann. Da geht's um Strom und Heizung. Also Stromschlag und Haus abbrennen und so... das ist mir zu heikel, da hab ich zu wenig Plan von dem Thema
Also diesbezüglich hol dir lieber Rat oder besser sogar Hilfe (vor Ort) von jemandem der sich damit wirklich auskennt.
-
Hallo @hustbaer,
wollte euch gerade fragen ob ich da richtig liege dass dann so meine Steuerung nicht funktioniert. Also werde ich die Steuerung unterteilen in "Anzeige" und "Steuerung" dann müsste es ja klappen.Das Elektrische mache ich selber und lasse von einem Elektromeister drüberschauen. Bin auch am Überlegen Rauchmelder und eine temperaturabhängige Sicherung mit einzubauen, dass kommt aber erst später dran.
Vielen Dank für deine Rückmeldung
Grüße BenPS: Noch eine Frage, kann ich bei der Hysterese auch angeben z.B. +2 == -1?
-
@Ben sagte in Arduino Zeitschaltung von werten.:
PS: Noch eine Frage, kann ich bei der Hysterese auch angeben z.B. +2 == -1?
Hä? Versteh ich nicht
Aber egal was du damit meinst...
Das kannst du dir doch ganz einfach selbst durchdenken bzw. auch selbst aussuchen wie du es genau angeben/einstellen willst.Du brauchst einen Schwellwert für's Ein- und einen Schwellwert für's Ausschalten.
Du kannst beide Werte direkt angeben.
Oder du kannst die Temperatur dazwischen und ein Delta angeben und dann die eine Schwelle ausrechnen mitx = temp + delta
und die andere mity = temp - delta
.
Oder du kannst eine der beiden Temperaturen angeben (z.B. die höhere) und dazu die Breite des Bereichs. Und die 2. Temperatur rechnest du dann z.B. mity = x - width
.Im Endeffekt muss ein unterer Schwellwert rauskommen bei dessen Unterschreitung du die Heizung einschaltest und ein oberer Schwellwert bei dessen Überschreitung du die Heizung ausschaltest.
-
Stimmt, danke. Da hat wohl was ausgesetzt bei mir.
Schönes Wochenende noch
Grüße
Ben
-
So,
muss mich bei euch mal wieder melden.
@hustbaer : Dein Code mit der Hysterese funktioniert, leider verstehe ich ihn nicht wirklich. Daher habe ich mal was versucht was mir klar erschien. Hoffe es geht so auch.Schaut euch doch bitte mal Zeile an, dort steht alles drin.
Den nächsten Schritt den ich versuchen werde (hoffe ohne fremde Hilfe) verschiedene Heizungen (4Stk.) nach Temperaturunterschieden zu steuern. Mal sehen ob das klappt.int Tempsteuerung() { // Temperatursensoren lesen int Temperatur1 = Sensor1.readTemperature();//Temperatur Sensor1 auslesen int Temperatur2 = Sensor2.readTemperature();//Temperatur sensor2 auslesen int Durchschnitttemp = ( Temperatur1 + Temperatur2 ) / 2; // Durchscnittstemperatur berechnen // Solltemperatur ueber Potentiometer einstellen fuer Tag int einstellungtemptag = analogRead(15); //lesen des Potis mit der Solltemperatur für Tag int solltemptag = map(einstellungtemptag, 0, 1022, 10, 30); // festlegung des Regelbereiches der Temperatur Tag // Solltemperatur ueber Potentiometer einstellen fuer Nacht int einstellungtempnacht = analogRead(14); //lesen des Potis mit der Solltemperatur für Nacht int solltempnacht = map(einstellungtempnacht, 0, 1022, 10, 25); // festlegen des Reglerbereiches der Temperatur Nacht Serial.println(); // Zeilenumbruch Serial.print("Solltemperatur Tag: "); Serial.print(solltemptag); //diesen Wert möchte ich einstellen können und er soll sich zu einer bestimmten (einstellbaren Zeit) auf "solltempnacht" umstellen z.B. 20:00Uhr. Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.print("Solltemperatur Nacht: "); Serial.print(solltempnacht); //diesen Wert möchte ich einstellen können und er soll sich zu einer bestimmten (einstellbaren Zeit) auf "solltemptag" umstellen z.B. 07:00Ihr. Serial.println(" Grad Celsius"); Serial.println(); // Zeilenumbruch Serial.print("Temperatur 1: "); //Text Sensor1 Serial.print(Temperatur1); //Sensor1 Wert Temperatur Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.print("Temperatur 2: "); //Text für Sensor2 Serial.print(Temperatur2); //Sensor2 Wert Temperatur Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.println(); // Zeilenumbruch Serial.print("Durchschnittstemperatur: "); //Text Durchschnittstemperatur Serial.print(Durchschnitttemp); // Schreiben des Wertes Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.println(); // Zeilenumbruch if (Durchschnitttemp == solltemptag) leuchte(0); //startet Ausführung 0 aus dem Array else if (Durchschnitttemp == solltemptag - 1) leuchte(-1); //startet Ausführung 1 aus dem Array else if (Durchschnitttemp == solltemptag + 1) leuchte(1); //startet Ausführung 2 aus dem Array else if (Durchschnitttemp == solltemptag - 2) leuchte(-2); //startet Ausführung 3 aus dem Array else if (Durchschnitttemp == solltemptag + 2) leuchte(2); //startet Ausführung 4 aus dem Array else if (Durchschnitttemp <= solltemptag - 3) leuchte(-3); //startet Ausführung 5 aus dem Array else if (Durchschnitttemp >= solltemptag + 3) leuchte(3); //startet Ausführung 6 aus dem Array boolean Heizungon; boolean Heizungoff; { if (Durchschnitttemp < solltemptag-2) Heizungon = true; if (Durchschnitttemp > solltemptag+2) Heizungoff = true; if (Durchschnitttemp < solltemptag-2) Heizungoff = false; if (Durchschnitttemp > solltemptag+2) Heizungon =false; if (Heizungon) { digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } if (Heizungoff) { digitalWrite(A10, LOW); digitalWrite(A9, HIGH); }}
Vielen Dank nochmal, die nächsten Fragen kommen bestimmt. Freue mich schon darauf.
Grüße
Ben
-
@Ben sagte in Arduino Zeitschaltung von werten.:
boolean Heizungon; boolean Heizungoff; { if (Durchschnitttemp < solltemptag-2) Heizungon = true; if (Durchschnitttemp > solltemptag+2) Heizungoff = true; if (Durchschnitttemp < solltemptag-2) Heizungoff = false; if (Durchschnitttemp > solltemptag+2) Heizungon =false; if (Heizungon) { digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } if (Heizungoff) { digitalWrite(A10, LOW); digitalWrite(A9, HIGH); }}
Und bei
solltemptag -2 <= Durchschnitttemp && Durchnitttemp <= solltemptag + 2
? Da sind dannHeitzungon
undHeizungoff
undefiniert. Bumm.
Heizungoff
ist doch auch einfach nur!Heizungon
!?
Was istboolean
?
-
Hallo @Swordfish,
danke für deine Antwort.
Wie ich es verstanden habe, ist boolean ein Vergleich zwischen 0 und 1 bzw. false und true.
Vergleichen kann ich dann verschiedene if s.
Zum Schluss muss ich dann definieren was bei welchem Ergebnis passieren soll.Hier sind es ja zwei unterschiedliche boolean. Einmal heizung an und einmal aus.
solltemptag -2 <= Durchschnitttemp && Durchnitttemp <= solltemptag + 2
Ich hätte mit dazu schreiben müssen dass die Anzeige gerade über zwei LED gehen, um zu sehen was passiertGarantie kann ich allerdings bei meiner Taktik nix, laut LED geht es. Wenn man da noch was kürzen könnte, das wäre toll
-
@Ben sagte in Arduino Zeitschaltung von werten.:
Einmal heizung an und einmal aus.
Das geht doch in einer. Wie du sagst, eine bool Variable kann einen true oder einen false Wert speichern. Also kann du sowohl heizung an als auch heizung aus mit einer Variable realisieren.
bool heizungAn = true; // Heizung ist an heizungAn = false; // Heizung aus heizungAn = true; // wieder an if(heizungAn) // mache etwas wenn Heizung an ist if(!heizungAn) // -> Das ! bedeutet nicht // mache etwas wenn heizung aus ist
Gekürzt (ganz ohne Variable) sieht das ganze so aus:
if(solltemptag -2 < Durchschnitttemp || Durchnitttemp > solltemptag + 2) { digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } else { digitalWrite(A10, LOW); digitalWrite(A9, HIGH); }
Also sprich: Wenn entweder die Durschnittstemperatur kleiner als soll -2 oder (!) größer als +2 ist, dann ist die Heizung an. In allen anderen Fällen, also wenn die Tempatur irgendwo dazwischen liegt ist sie aus.
Ich weiß nicht genau, ob das die Logik ist, die du haben willst, aber so stand es zumindest in deinem Code Ansonsten entsprechend anpassen
-
@Ben sagte in Arduino Zeitschaltung von werten.:
Wie ich es verstanden habe, ist boolean ein Vergleich zwischen 0 und 1 bzw. false und true.
boolean
ist (nachdem wie es in Deinem Code verwendet wird) ein Datentyp. boolean bestätigt das. Nimm - wie auch in dem Link geraten -bool
, das ist Standart, zu finden in<stdbool.h>
.@Ben sagte in Arduino Zeitschaltung von werten.:
Hier sind es ja zwei unterschiedliche boolean. Einmal heizung an und einmal aus.
solltemptag -2 <= Durchschnitttemp && Durchnitttemp <= solltemptag + 2
Ich hätte mit dazu schreiben müssen dass die Anzeige gerade über zwei LED gehen, um zu sehen was passiertVersteh' ich nicht. Welche Werte haben denn
Heizungon
undHeizungoff
wenn davon@Ben sagte in Arduino Zeitschaltung von werten.:
if (Durchschnitttemp < solltemptag-2) Heizungon = true; if (Durchschnitttemp > solltemptag+2) Heizungoff = true; if (Durchschnitttemp < solltemptag-2) Heizungoff = false; if (Durchschnitttemp > solltemptag+2) Heizungon =false;
nichts zutrifft?
-
Servus nochmal,
ich werde es mal umschreiben. Das erste habe ich bereits gemacht und jeweils die -2 rausgeworfen.
Mal sehen was da gleich passiert.So, nun sieht es so aus:
int Tempsteuerung() { // Temperatursensoren lesen int Temperatur1 = Sensor1.readTemperature();//Temperatur Sensor1 auslesen int Temperatur2 = Sensor2.readTemperature();//Temperatur sensor2 auslesen int Durchschnitttemp = ( Temperatur1 + Temperatur2 ) / 2; // Durchscnittstemperatur berechnen // Solltemperatur ueber Potentiometer einstellen fuer Tag int einstellungtemptag = analogRead(15); //lesen des Potis mit der Solltemperatur für Tag int solltemptag = map(einstellungtemptag, 0, 1022, 10, 30); // festlegung des Regelbereiches der Temperatur Tag // Solltemperatur ueber Potentiometer einstellen fuer Nacht int einstellungtempnacht = analogRead(14); //lesen des Potis mit der Solltemperatur für Nacht int solltempnacht = map(einstellungtempnacht, 0, 1022, 10, 25); // festlegen des Reglerbereiches der Temperatur Nacht Serial.println(); // Zeilenumbruch Serial.print("Solltemperatur Tag: "); Serial.print(solltemptag); //diesen Wert möchte ich einstellen können und er soll sich zu einer bestimmten (einstellbaren Zeit) auf "solltempnacht" umstellen z.B. 20:00Uhr. Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.print("Solltemperatur Nacht: "); Serial.print(solltempnacht); //diesen Wert möchte ich einstellen können und er soll sich zu einer bestimmten (einstellbaren Zeit) auf "solltemptag" umstellen z.B. 07:00Ihr. Serial.println(" Grad Celsius"); Serial.println(); // Zeilenumbruch Serial.print("Temperatur 1: "); //Text Sensor1 Serial.print(Temperatur1); //Sensor1 Wert Temperatur Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.print("Temperatur 2: "); //Text für Sensor2 Serial.print(Temperatur2); //Sensor2 Wert Temperatur Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.println(); // Zeilenumbruch Serial.print("Durchschnittstemperatur: "); //Text Durchschnittstemperatur Serial.print(Durchschnitttemp); // Schreiben des Wertes Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.println(); // Zeilenumbruch if (Durchschnitttemp == solltemptag) leuchte(0); //startet Ausführung 0 aus dem Array else if (Durchschnitttemp == solltemptag - 1) leuchte(-1); //startet Ausführung 1 aus dem Array else if (Durchschnitttemp == solltemptag + 1) leuchte(1); //startet Ausführung 2 aus dem Array else if (Durchschnitttemp == solltemptag - 2) leuchte(-2); //startet Ausführung 3 aus dem Array else if (Durchschnitttemp == solltemptag + 2) leuchte(2); //startet Ausführung 4 aus dem Array else if (Durchschnitttemp <= solltemptag - 3) leuchte(-3); //startet Ausführung 5 aus dem Array else if (Durchschnitttemp >= solltemptag + 3) leuchte(3); //startet Ausführung 6 aus dem Array bool Heizungon; bool Heizungoff; { if (Durchschnitttemp < solltemptag) Heizungon = true; if (Durchschnitttemp > solltemptag+2) Heizungoff = true; if (Durchschnitttemp < solltemptag) Heizungoff = false; if (Durchschnitttemp > solltemptag+2) Heizungon =false; if (Heizungon) { digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } if (Heizungoff) { digitalWrite(A10, LOW); digitalWrite(A9, HIGH); }}
Besser so?
Grüße
Ben
-
Hallo @Leon0402
@Leon0402 sagte in Arduino Zeitschaltung von werten.:
Also sprich: Wenn entweder die Durschnittstemperatur kleiner als soll -2 oder (!) größer als +2 ist, dann ist die Heizung an. In allen anderen Fällen, also wenn die Tempatur irgendwo dazwischen liegt ist sie aus.
Ich weiß nicht genau, ob das die Logik ist, die du haben willst, aber so stand es zumindest in deinem Code Ansonsten entsprechend anpassenNee so wollte ich es nicht. (Haste dir ja sicher schon gedacht. Ziel war es, die Heizung an zu schallten, wenn die Temperatur unter soll geht und ausschallten wenn die Temperatur Solltemperatur +2 Grad hat.
Bin wohl voll dran vorbei geschossen
-
Déjà vu.
Welche Werte haben denn
Heizungon
undHeizungoff
wenn davon@Ben sagte in Arduino Zeitschaltung von werten.:
if (Durchschnitttemp < solltemptag) Heizungon = true; if (Durchschnitttemp > solltemptag+2) Heizungoff = true; if (Durchschnitttemp < solltemptag) Heizungoff = false; if (Durchschnitttemp > solltemptag+2) Heizungon =false;
nichts zutrifft?
-
Sorry ich verstehe dich jetzt echt nicht.
die if werden doch konntrolliert ob sie true oder false sind oder?
Warum soll es nicht zutreffen Durchschnitttemp z.B. 19°C ist kleiner als solltemperatur z.B. 22°C
wenn das true ist, soll er mit Heizungon weiter arbeiten.
wäreif (Heizungon) { digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } if (Heizungoff) { digitalWrite(A10, LOW); digitalWrite(A9, HIGH); }}
oder bin ich da jetzt false unterwegs?
-
@Ben sagte in Arduino Zeitschaltung von werten.:
Hallo @Leon0402
@Leon0402 sagte in Arduino Zeitschaltung von werten.:
Also sprich: Wenn entweder die Durschnittstemperatur kleiner als soll -2 oder (!) größer als +2 ist, dann ist die Heizung an. In allen anderen Fällen, also wenn die Tempatur irgendwo dazwischen liegt ist sie aus.
Ich weiß nicht genau, ob das die Logik ist, die du haben willst, aber so stand es zumindest in deinem Code Ansonsten entsprechend anpassenNee so wollte ich es nicht. (Haste dir ja sicher schon gedacht. Ziel war es, die Heizung an zu schallten, wenn die Temperatur unter soll geht und ausschallten wenn die Temperatur Solltemperatur +2 Grad hat.
Bin wohl voll dran vorbei geschossen
Na dann macht das doch mal als Formel:
if(hier deine Formel einfügen) // heizung an else // heizung aus
-
Was ist wenn
Durchschnitttemp < solltemptag
nicht wahr ist,
Durchschnitttemp > solltemptag+2
nicht wahr ist,
Durchschnitttemp < solltemptag
nicht wahr ist und auch
Durchschnitttemp > solltemptag+2
nicht wahr ist?
Welche Werte haben dannHeizungon
undHeizungoff
?
-
Hallo @Swordfish,
jetzt ist der groschen gefallen, das heißt es muss noch eine if mit rein, Durschnitttemp==solltemptag oder bei einer Temperaturspanne = mit rein. Richtig?
-
@Ben sagte in Arduino Zeitschaltung von werten.:
So, nun sieht es so aus:
int Tempsteuerung() { // Temperatursensoren lesen int Temperatur1 = Sensor1.readTemperature();//Temperatur Sensor1 auslesen int Temperatur2 = Sensor2.readTemperature();//Temperatur sensor2 auslesen int Durchschnitttemp = ( Temperatur1 + Temperatur2 ) / 2; // Durchscnittstemperatur berechnen [...] Serial.println(); // Zeilenumbruch Serial.print("Temperatur 1: "); //Text Sensor1 Serial.print(Temperatur1); //Sensor1 Wert Temperatur Serial.println(" Grad Celsius"); //Einheit nach dem Wert Serial.print("Temperatur 2: "); //Text für Sensor2 Serial.print(Temperatur2); //Sensor2 Wert Temperatur
Hallo @Ben,
ich möchte dich mal fragen, ob dir deine eigenen Kommentare im Code eigentlich weiterhelfen. Im hier zitierten Teil würde ich höchstens den einen Kommentar in Zeile 3 lassen und alle anderen entfernen. Diese Kommentare beschreiben doch nur 1:1 die jeweilige Codezeile und sind damit überflüssig.
Ich würde dir raten, ganz anders zu kommentieren.
Das fängt an mit einer Beschreibung, was die Funktion tut, wenn sie keinen eindeutigen Namen hat. Was "Serial.println()" macht, ist klar. Aber was macht
Tempsteuerung
genau? Die Funktion returnt einen int. Was bedeutet der Return-Wert? So etwas solltest du kommentieren.Außerdem kannst du Kommentare da verwenden, wo z.B. der Code kompliziert ist. Oder wenn du einen Block hast, der eine bestimmte Sache tut, dann kannst du dem gesamten Block einen Kommentar spendieren - oder dann den Block in eine Funktion auslagern.
Jedenfalls mein genereller Rat: kommentieren nicht die sowieso lesbaren und klaren Zeilen, sondern die, wo das nicht der Fall ist. Und kommentiere Funktionen und Klassen, sofern es sich nicht um triviale Dinge handelt oder durch den Funktionsnamen schon alles klar ist.
Hier zum Beispiel:
int einstellungtemptag = analogRead(15); //lesen des Potis mit der Solltemperatur für Tag
finde ich den Kommentar sinnvoll. Andererseits: was ist die 15? Könntest du nicht aus der 15 eine benannte Konstante machen? Sowas wie
const int POTI_TEMP_SOLL = 15;
? Und dann wird der Kommentar auch vielleicht überflüssig. Generell: aussagekräftiger Code ist besser als Kommentare.
-
Guten Abend @wob,
ja ich gebe gerne viele Kommentare, liegt wohl daran, das ich schon sehr lange an dem Programm bastel mit einigen Pausen dazwischen. Wenn ich dann wieder anfange, hilft es mir schon, wenn ich meine Kommentare lese (klar alles was doppelt untereinander ist könnte weg). Ich habe einfach noch zu wenig Ahnung von der Sache und zu große Pausen.
Für jemanden der es gelernt hat ist es sicher nicht nötig.@wob sagte in Arduino Zeitschaltung von werten.:
Hier zum Beispiel:
int einstellungtemptag = analogRead(15); //lesen des Potis mit der Solltemperatur für Tag
finde ich den Kommentar sinnvoll. Andererseits: was ist die 15? Könntest du nicht aus der 15 eine benannte Konstante machen? Sowas wie const int POTI_TEMP_SOLL = 15;? Und dann wird der Kommentar auch vielleicht überflüssig. Generell: aussagekräftiger Code ist besser als Kommentare.
15 ist der Ausgang am Arduino, der ist so beschriftet, daher habe ich es einfach so gemacht. Das habe ich nur für Versuchszwecke mit rein gemacht, da das Ziel ist alles mit einem Nextion zu steuern (das wird sicherlich nochmal so spannend wie das Projekt bis hier hin).
-
Ist dir auch aufgefallen, daß
Durchschnitttemp < solltemptag
zweimal dasteht undDurchschnitttemp > solltemptag+2
auch zweimal dasteht?-->
if (Durchschnitttemp < solltemptag) { Heizungon = true; Heizungoff = false; } if (Durchschnitttemp > solltemptag + 2) { Heizungon = false; Heizungoff = true; }
Spätestens jetzt sollte Dir klar sein daß eine der beiden Variablen
Heizungon
undHeizungoff
unnötig ist weil eine genau die logische Negation der anderen ist:if (Durchschnitttemp < solltemptag) { Heizungon = true; } if (Durchschnitttemp > solltemptag + 2) { Heizungon = false; }
Aber immer noch die selbe Frage: Was ist mit
Heizungon
wenn beide Bedinungen nicht zutreffen? Welchen Wert hatHeizungon
dann? Zur Erinnerung: Du hast geschrieben@Ben sagte in Arduino Zeitschaltung von werten.:
bool Heizungon;
Was anderes:
if (Durchschnitttemp < solltemptag) { // Heizung einschalten digitalWrite(A10, HIGH); digitalWrite(A9, LOW); } else if (Durchschnitttemp > solltemptag + 2) { // Heizung ausschalten digitalWrite(A10, LOW); digitalWrite(A9, HIGH); } else { ; // garnix, lass die Heizung in dem Zustand in dem sie ist. }
verstehst Du das?
-
@Ben sagte in Arduino Zeitschaltung von werten.:
15 ist der Ausgang am Arduino, der ist so beschriftet, daher habe ich es einfach so gemacht. Das habe ich nur für Versuchszwecke mit rein gemacht, da das Ziel ist alles mit einem Nextion zu steuern (das wird sicherlich nochmal so spannend wie das Projekt bis hier hin).
Dann nenn das Ding doch bitte nicht
15
sondernAUSGANG_XY_DER_FUER_FOOBAR_ZUSTAENDIG_IST
. Wie auch schon @wob sagte. Dann ist es selbsterklärend und braucht keinen Kommentar. Und sollte sich der Wert einmal ändern so muss er nur an einer Stelle geändert werden und nicht an X Stellen. Magic number (programming) - Unnamed numerical constants.