Schaue dir mal diese Code-Version an:
Kommt dir die irgendwie bekannt vor?
Die hat fast keine Kommentare aber - oh wunder - man versteht sie direkt beim runterlesen!
#include <Arduino.h>
#include <IRremote.h>
uint32_t startzeitluft;
uint32_t startzeitwarm;
uint32_t startzeitkalt;
uint32_t wartezeit1h;
uint32_t nachtluft;
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
const unsigned long ir_Musik_alle_an = 1082097791;
const unsigned long ir_Musikalle_aus = 1082081471;
const unsigned long ir_Musik_ohne_Sub = 1082099831;
// const unsigned long ir_ = 1082091671;
// const unsigned long ir_ = 1082085551;
const unsigned long ir_Musik_nur_im_Dampf = 1082083511;
const unsigned long ir_Musik_leiser = 1082067191;
const unsigned long ir_Musik_lauter = 1082101871;
const unsigned long ir_Luefter_Piazza_an = 1082089631;
const unsigned long ir_Luefter_Dampf_an = 1082110031;
const unsigned long ir_Luefter_Dampf_aus = 1082075351;
const unsigned long ir_Umstellen_bluetooth_Klingelbrett = 1082107991;
const unsigned long ir_Luefter_Start_1h_Dauer_1h = 1082122271;
const unsigned long ir_Relais_Wasser_heisser = 1082093711;
const unsigned long ir_Relais_Wasser_kaelter = 1082069231;
const unsigned long ir_Stop_Temperatur_Mischmotor = 1082077391;
const unsigned long ir_Luefter_Piazza_ab = 1082103911;
const byte Luefter_Pin = 13;
const byte Luefter_Pin2 = 12;
const byte Dampfboxen_Pin = 8;
const byte Piazza_Pin = 7;
const byte Subwoover_Pin = 2;
const byte Wasser_waermer_Pin = 4;
const byte Wasser_kaelter_Pin = 5;
const byte EIN = LOW;
const byte AUS = HIGH;
void setup() {
Serial.begin(115200);
Serial.println("Setup-Start");
pinMode (Luefter_Pin, OUTPUT);
pinMode (Luefter_Pin2, OUTPUT);
pinMode (Dampfboxen_Pin, OUTPUT);
pinMode (Piazza_Pin, OUTPUT);
pinMode (Subwoover_Pin, OUTPUT);
pinMode (Wasser_waermer_Pin, OUTPUT);
pinMode (Wasser_kaelter_Pin, OUTPUT);
irrecv.enableIRIn();
IrSender.enableIROut(38);
IrSender.begin(3); // Start with IR_SEND_PIN as send pin and if NO_LED_FEEDBACK_CODE is NOT defined, enable feedback LED at default feedback LED pin
// ir empfänger = 11 // wird oben bei ir receiv pin definiert
digitalWrite (Luefter_Pin2, AUS);
digitalWrite(Wasser_kaelter_Pin, AUS);
digitalWrite(Wasser_waermer_Pin, AUS);
}
void loop() {
if (irrecv.decode(&results)) {
if (results.value == ir_Luefter_Piazza_an) {
digitalWrite (Luefter_Pin, EIN);
}
if (results.value == ir_Luefter_Piazza_ab) {
digitalWrite (Luefter_Pin, AUS);
}
if (results.value == ir_Luefter_Dampf_an) {
digitalWrite (Luefter_Pin2, EIN);
startzeitluft = millis(); // starte Zeit um Lüfter danach wieder abzustellen
}
if (results.value == ir_Luefter_Dampf_aus) {
digitalWrite (Luefter_Pin2, AUS);
}
/* Block-Kommentar ANFANG
if (results.value == ir_Luefter_Start_1h_Dauer_1h) {
wartezeit1h = millis();
}
*/ //Block-Kommentar ENDE
//Regelung Sound
if (results.value == ir_Musik_alle_an) {
digitalWrite (Piazza_Pin, EIN); // schalte kleine Boxen an
digitalWrite (Dampfboxen_Pin, EIN);
digitalWrite (Subwoover_Pin, EIN);
}
if (results.value == ir_Musikalle_aus) {
digitalWrite (Piazza_Pin, AUS);
digitalWrite (Dampfboxen_Pin, AUS);
digitalWrite (Subwoover_Pin, AUS);
}
if (results.value == ir_Musik_nur_im_Dampf) {
digitalWrite (Piazza_Pin, AUS);
digitalWrite (Dampfboxen_Pin, AUS);
digitalWrite (Subwoover_Pin, EIN);
}
if (results.value == ir_Musik_ohne_Sub) {
digitalWrite (Piazza_Pin, AUS);
digitalWrite (Dampfboxen_Pin, EIN);
digitalWrite (Subwoover_Pin, EIN);
}
if (results.value == ir_Musik_lauter) {
IrSender.sendSony(0x50, 0x12, 0, 15);
delay(21); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
IrSender.sendSony(0x50, 0x12, 0, 15);
delay(21);
IrSender.sendSony(0x50, 0x12, 0, 15);
delay(24);
IrSender.sendSony(0x50, 0x12, 0, 15);
delay(21);
IrSender.sendSony(0x50, 0x12, 0, 15);
delay(200);
}
if (results.value == ir_Musik_leiser) {
IrSender.sendSony(0x50, 0x13, 8, 15);
delay(100); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
IrSender.sendSony(0x50, 0x13, 8, 15);
delay(100);
IrSender.sendSony(0x50, 0x13, 8, 15);
delay(100);
}
if (results.value == ir_Umstellen_bluetooth_Klingelbrett) {
IrSender.sendSony(0xD0, 0x69, 8, 15);
delay(100); // delay must be greater than 5 ms (RECORD_GAP_MICROS), otherwise the receiver sees it as one long signal
}
// Regelung Warmwasser
if (results.value == ir_Relais_Wasser_kaelter) {
digitalWrite (Wasser_kaelter_Pin, AUS);
digitalWrite (Wasser_waermer_Pin, EIN);
startzeitkalt = millis(); // starte Zeit um Relais "kälter" wieder abzustellen
}
if (results.value == ir_Relais_Wasser_heisser) {
digitalWrite (Wasser_waermer_Pin, AUS);
digitalWrite (Wasser_kaelter_Pin, EIN);
startzeitwarm = millis(); // starte Zeit um Relais "heisser" wieder abzustellen
}
if (results.value == ir_Stop_Temperatur_Mischmotor) {
digitalWrite (Wasser_waermer_Pin, AUS);
digitalWrite (Wasser_kaelter_Pin, AUS);
}
Serial.print(results.value ); // schreibe Werte der Fernbedienung in den Serial Monitor
Serial.print(" ");
irrecv.resume(); // Warte auf nächsten Wert
}
if (millis() - startzeitwarm > 8000) // Wenn Zeit um schalte Relais "heisser" wieder aus
{
digitalWrite(Wasser_kaelter_Pin, AUS);
}
if (millis() - startzeitkalt > 8000) // Wenn Zeit um schalte Relais "kälter" wieder aus 1082089631
{
digitalWrite(Wasser_waermer_Pin, AUS);
}
/* Block-Kommentar ANFANG
if (millis() - wartezeit1h > 5000) // Wartezeit ist um Lüftungszeit beginnt Variable Wartezeit zurücksetzen
{
digitalWriteLuefter_Pin2, EIN);
nachtluft = millis();
wartezeit1h == stop;
}
if (millis() - nachtluft > 5000) // Wenn der Lüfters dann gelüftet hat soll er wieder abstellen und die Lüftungszeit zurücksetzen.
{
digitalWriteLuefter_Pin2, AUS);
wartezeit1h == stop;
nachtluft == 0;
}
*/ // Block-Kommentar ENDE
if (millis() - startzeitluft > 3600000) // Wenn Zeit um mache Lüfter wieder aus
{
digitalWrite (Luefter_Pin2, AUS);
}
}
Durch die Klartextnamen fällt auf
du hast ganz oben in setup IO-pin 2 als Subwoofer kommentiert
pinMode (2,OUTPUT); //Subwoover
weiter unten im Code passen die Kommentare dann nicht überall
Das ist das Problem mit den Kommentaren. Die werden auf Dauer nicht mit gepflegt
und dann passen Sie nicht mehr. Und der compiler meckert nicht.
Wenn irgendwo ein Variablenname nicht stimmt meckert der Compiler sofort.
vgs