const byte LED = 5;
const byte SMOKEPIN = 13;
void setup() {
pinMode(LED, OUTPUT);
pinMode(SMOKEPIN, OUTPUT);
}
void loop()
{
bool merkerRauch = false;
glut(merkerRauch);
rauch(merkerRauch);
}
void glut(bool & rauch) {
uint32_t jetzt = millis();
static uint32_t vorhin = 0;
static uint32_t intervall = 0;
static byte schritt = 0;
if (jetzt - vorhin >= intervall)
{
vorhin = jetzt;
switch (schritt)
{
case 0:
digitalWrite(LED, HIGH);
intervall = 1000;
schritt = 1;
break;
case 1:
digitalWrite(LED, LOW);
rauch = true;
intervall = 3000;
schritt = 0;
break;
}
}
}
void rauch(bool & rauch)
{
uint32_t jetzt = millis();
static uint32_t vorhin = 0;
const uint32_t intervall = 100;
if (rauch)
{
digitalWrite(SMOKEPIN, HIGH);
vorhin = jetzt;
rauch = false;
} else {
if (jetzt - vorhin >= intervall)
{
digitalWrite(SMOKEPIN, LOW);
}
}
}