Files
AquaMasterMQTT/src/statusled.h
2025-07-12 17:39:45 +02:00

59 lines
1.4 KiB
C

#include <Arduino.h>
#define LED_PIN 13
// Status LED
unsigned long lastLedBlink = 0;
bool ledState = false;
// Initialisiert die Status-LED (setzt Pin-Modus und schaltet sie aus).
void setupLED() {
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW); // LED aus
}
// Steuert die Status-LED je nach übergebenem Blinkmuster (Statusanzeige).
void updateStatusLED(int blinkPattern) {
unsigned long currentTime = millis();
switch (blinkPattern) {
case 0: // Suche Master - Langsames Blinken
if (currentTime - lastLedBlink > 1000) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
lastLedBlink = currentTime;
}
break;
case 1: // Verbunden - Kurzes Blinken alle 3 Sekunden
if (currentTime - lastLedBlink > 3000) {
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
lastLedBlink = currentTime;
}
break;
case 2: // Button gedrückt - Schnelles Blinken 3x
static int blinkCount = 0;
if (currentTime - lastLedBlink > 100) {
ledState = !ledState;
digitalWrite(LED_PIN, ledState);
lastLedBlink = currentTime;
blinkCount++;
if (blinkCount >= 6) { // 3 komplette Blinks
blinkCount = 0;
blinkPattern = 1; // Zurück zu verbunden
}
}
case 3: // Flash bei Empfang - Einmaliges kurzes Blinken
{
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
} break;
}
}