Biblioteka do zarządzania wieloma diodami LED jednocześnie, bez blokowania pętli programu. Zamiast delay() używa znaczników czasu — wszystkie diody działają niezależnie i równolegle.
- Obsługa do 8 diod LED jednocześnie
- Tryby: ON, OFF, BLINK, PULSE, ON_TIMED, BLINK_FAST_TIMED
- Tryby czasowe z automatycznym wyłączeniem po zadanym czasie
- Obsługa logiki normalnej (HIGH świeci) i odwróconej (LOW świeci)
- Brak blokujących
delay() - Brak zależności od
Serial - Kompatybilność ze wszystkimi architekturami Arduino
| Tryb | Opis |
|---|---|
LED_OFF |
Zgaszona |
LED_ON |
Świeci ciągle |
LED_BLINK |
Miganie 300ms on/off — sygnalizacja statusu |
LED_PULSE |
Pojedynczy błysk 50ms — sygnalizacja zdarzenia |
LED_ON_TIMED |
Świeci przez N ms, potem automatycznie OFF |
LED_BLINK_FAST_TIMED |
Szybkie miganie 80ms przez N ms, potem OFF |
LEDManager/
├── README.md
├── LICENSE
├── keywords.txt
├── library.properties
├── src/
| ├── LEDManager.h
| └── LEDManager.cpp
└── examples/
├── 01_BasicModes/
│ └── 01_BasicModes.ino
├── 02_TimedModes/
│ └── 02_TimedModes.ino
└── 03_ActiveLow/
└── 03_ActiveLow.ino
Arduino IDE:
- Pobierz repozytorium jako ZIP
- Sketch → Include Library → Add .ZIP Library
#include <LEDManager.h>
Ręcznie:
Skopiuj LEDManager.h i LEDManager.cpp do folderu projektu.
#include <LEDManager.h>
LEDManager leds;
void setup() {
leds.addLED(2); // Zarejestruj LED na pinie 2
leds.setMode(2, LED_BLINK); // Ustaw tryb migania
}
void loop() {
leds.update(); // Wywołuj w każdym loop()
}Logika normalna (domyślna, katoda do GND):
Pin → 220Ω → LED(+) → LED(-) → GND
Logika odwrócona (katoda do 3.3V, typowe dla wbudowanych LED na płytkach deweloperskich):
3.3V → LED(+) → LED(-) → 220Ω → Pin
Rejestruje diodę LED na podanym pinie GPIO.
activeHigh = true → HIGH świeci (domyślne, katoda do GND)
activeHigh = false → LOW świeci (katoda do 3.3V)
Ustawia tryb pracy diody.
Ustawia tryb czasowy — dioda automatycznie gaśnie po durationMs ms.
Przeznaczony dla LED_ON_TIMED i LED_BLINK_FAST_TIMED.
Pojedynczy błysk 50ms — przydatny do sygnalizacji zdarzeń.
Wymusza stan logiczny: true = świeci, false = gaśnie.
Uwzględnia activeHigh automatycznie.
Zwraca aktualny tryb pracy diody.
Główna funkcja biblioteki — wymagana w każdym loop().
Stałe czasowe można dostosować w pliku LEDManager.h:
| Stała | Wartość domyślna | Opis |
|---|---|---|
MAX_LEDS |
8 | Maksymalna liczba obsługiwanych LED |
BLINK_INTERVAL |
300 ms | Okres migania dla LED_BLINK |
PULSE_DURATION |
50 ms | Czas błysku dla LED_PULSE |
BLINK_FAST_INTERVAL |
80 ms | Okres szybkiego migania |
Copyright 2026 Maciej Sikorski — S.M. DIY Home
Licencja Apache 2.0. Szczegóły w pliku LICENSE.
Projekt: S.M. DIY Home
Wersja: 1.2.0
Autor: Maciej Sikorski
Data: 2026-04-15
Licencja: Apache 2.0
A library for controlling multiple LEDs simultaneously without blocking the main program loop. Instead of delay(), it uses timestamps — all LEDs operate independently and in parallel.
- Control up to 8 LEDs simultaneously
- Modes: ON, OFF, BLINK, PULSE, ON_TIMED, BLINK_FAST_TIMED
- Timed modes with automatic OFF after a set duration
- Active-high (HIGH = on) and active-low (LOW = on) logic support
- No blocking
delay() - No
Serialdependency - Compatible with all Arduino architectures
| Mode | Description |
|---|---|
LED_OFF |
Off |
LED_ON |
On continuously |
LED_BLINK |
Blink 300ms on/off — status indicator |
LED_PULSE |
Single flash 50ms — event indicator |
LED_ON_TIMED |
On for N ms, then auto OFF |
LED_BLINK_FAST_TIMED |
Fast blink 80ms for N ms, then auto OFF |
LEDManager/
├── README.md
├── LICENSE
├── keywords.txt
├── library.properties
├── src/
| ├── LEDManager.h
| └── LEDManager.cpp
└── examples/
├── 01_BasicModes/
│ └── 01_BasicModes.ino
├── 02_TimedModes/
│ └── 02_TimedModes.ino
└── 03_ActiveLow/
└── 03_ActiveLow.ino
Arduino IDE:
- Download the repository as ZIP
- Sketch → Include Library → Add .ZIP Library
#include <LEDManager.h>
Manual:
Copy LEDManager.h and LEDManager.cpp into your project folder.
#include <LEDManager.h>
LEDManager leds;
void setup() {
leds.addLED(2); // Register LED on pin 2
leds.setMode(2, LED_BLINK); // Set blink mode
}
void loop() {
leds.update(); // Must be called in every loop()
}Active-high (default, cathode to GND):
Pin → 220Ω → LED(+) → LED(-) → GND
Active-low (cathode to 3.3V, common on dev boards with built-in LEDs):
3.3V → LED(+) → LED(-) → 220Ω → Pin
Register an LED on the given GPIO pin.
activeHigh = true → HIGH lights up (default, cathode to GND)
activeHigh = false → LOW lights up (cathode to 3.3V)
Set the LED operating mode.
Set a timed mode — LED turns OFF automatically after durationMs ms.
Intended for LED_ON_TIMED and LED_BLINK_FAST_TIMED.
Single 50ms flash — useful for event signaling.
Force logical state: true = on, false = off.
Respects activeHigh automatically.
Returns the current LED mode.
Core library function — must be called in every loop().
Timing constants can be adjusted in LEDManager.h:
| Constant | Default | Description |
|---|---|---|
MAX_LEDS |
8 | Maximum number of managed LEDs |
BLINK_INTERVAL |
300 ms | Blink period for LED_BLINK |
PULSE_DURATION |
50 ms | Flash duration for LED_PULSE |
BLINK_FAST_INTERVAL |
80 ms | Fast blink period |
Copyright 2026 Maciej Sikorski — S.M. DIY Home
Licensed under Apache 2.0. See LICENSE for details.
Project: S.M. DIY Home
Version: 1.2.0
Author: Maciej Sikorski
Date: 2026-04-15
License: Apache 2.0