59 lines
1.4 KiB
C
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;
|
|
}
|
|
}
|