// MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START * MACRO-START *
#define dbg(myFixedText, variableName) \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName);
#define dbgi(myFixedText, variableName,timeInterval) \
{ \
static unsigned long intervalStartTime; \
if ( millis() - intervalStartTime >= timeInterval ){ \
intervalStartTime = millis(); \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName); \
} \
}
#define dbgc(myFixedText, variableName) \
{ \
static long lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
#define dbgcf(myFixedText, variableName) \
{ \
static float lastState; \
if ( lastState != variableName ){ \
Serial.print( F(#myFixedText " " #variableName" changed from ") ); \
Serial.print(lastState); \
Serial.print( F(" to ") ); \
Serial.println(variableName); \
lastState = variableName; \
} \
}
// MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END * MACRO-END *
// Pin-Definitionen
int relais1Pin = 9;
int relais2Pin = 8;
// Schaltzeiten für Relais 1
const int relais1EinZeit = 1000; // Zeit in ms, während das Relais eingeschaltet ist
const int relais1AusZeit = 1000; // Zeit in ms, während das Relais ausgeschaltet bleibt
// Schaltzeiten für Relais 2
const int relais2EinZeit = 1000; // Zeit in ms, während das Relais eingeschaltet ist
const int relais2AusZeit = 2000; // Zeit in ms, während das Relais ausgeschaltet bleibt
// Variablen zur Speicherung der Zeiten
unsigned long relais1EinStartzeit = 0;
unsigned long relais1AusStartzeit = 0;
unsigned long relais2EinStartzeit = 0;
unsigned long relais2AusStartzeit = 0;
void setup() {
Serial.begin(115200);
Serial.println("setup-Start");
// Pin-Modi setzen
pinMode(relais1Pin, OUTPUT);
pinMode(relais2Pin, OUTPUT);
}
void loop() {
unsigned long jetzt = millis();
if (jetzt - relais1AusStartzeit >= relais1AusZeit) {
digitalWrite(relais1Pin, HIGH); // Relais einschalten
dbg("01 R1 HIGH:",digitalRead(relais1Pin) );
dbg("01 R1 HIGH:",jetzt - relais1AusStartzeit );
relais1EinStartzeit = jetzt; // Startzeit für Einschaltzeitpunkt setzen
}
// Schaltzyklus für Relais 1
if (jetzt - relais1EinStartzeit >= relais1EinZeit) {
digitalWrite(relais1Pin, LOW); // Relais ausschalten
dbg("02 R1 LOW:",digitalRead(relais1Pin) );
relais1AusStartzeit = jetzt; // Startzeit für Ausschaltzeitpunkt setzen
}
// Schaltzyklus für Relais 2
if (jetzt - relais2EinStartzeit >= relais2EinZeit) {
digitalWrite(relais2Pin, LOW); // Relais ausschalten
dbg("03 R2 HIGH:",digitalRead(relais2Pin) );
dbg("03 R2 HIGH:",jetzt - relais2AusStartzeit );
relais2AusStartzeit = jetzt; // Startzeit für Ausschaltzeitpunkt setzen
}
if (jetzt - relais2AusStartzeit >= relais2AusZeit) {
digitalWrite(relais2Pin, HIGH); // Relais einschalten
dbg("04 R2 LOW:",digitalRead(relais2Pin) );
relais2EinStartzeit = jetzt; // Startzeit für Einschaltzeitpunkt setzen
}
}