Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Led

Biblioteca Arduino/ESP32 para controle de LEDs com efeitos não-bloqueantes, callbacks, código Morse e sequências personalizadas.

Autor: professorThiago


Comparação com bibliotecas existentes

Recurso JLed BlinkControl ezLED Led
Piscar
Respirar (fade suave)
Fade entrada/saída
Strobe
Heartbeat
Código Morse
Sequência personalizada
Callbacks (aoTerminar)
Brilho mínimo/máximo
Progresso do efeito
API em português

Instalação

lib_deps =
    https://github.com/professorThiago/Led

Quick start

#include <Led.h>

Led led(2);   // GPIO 2, PWM habilitado

void setup() {
    led.iniciar();
    led.aoTerminar([]() { Serial.println("Pronto!"); });
    led.piscar(200, 200, 5);   // 5 piscadas e chama o callback
}

void loop() { led.atualizar(); }

Construtor

Led led(pino);                    // PWM habilitado, canal LEDC 0
Led led(pino, false);             // digital (sem fade/respirar)
Led led(pino, true, 1);           // PWM no canal LEDC 1

Configuração

led.inverter(true);       // LED ativo em LOW (cátodo comum)
led.brilhoMinimo(10);     // nunca apaga completamente
led.brilhoMaximo(200);    // limite de brilho

Efeitos

Controle básico

led.ligar();              // liga no brilho máximo
led.desligar();           // desliga
led.alternar();           // toggle
led.brilho(128);          // brilho direto (0–255)
led.parar();              // para o efeito atual

Piscar

led.piscar();                      // 500ms/500ms, infinito
led.piscar(100, 900);              // flash rápido, infinito
led.piscar(300, 300, 5);           // 5 piscadas e para

Respirar (fade suave cíclico)

led.respirar();            // 2s por ciclo, infinito
led.respirar(1000, 3);     // 1s por ciclo, 3 vezes

Fade de entrada / saída

led.fadeEntrada(1500);     // sobe em 1,5s (1 vez)
led.fadeSaida(1000);       // desce em 1s (1 vez)
led.fadeEntrada(500, -1);  // sobe infinitamente

Strobe

led.strobe();              // 50ms, infinito
led.strobe(30, 20);        // 20 flashes a cada 30ms

Heartbeat

led.heartbeat();           // 60 BPM, infinito
led.heartbeat(80, 10);     // 80 BPM, 10 batidas

Código Morse

led.morse("SOS");          // velocidade padrão (100ms por ponto)
led.morse("ESP32", 80);    // mais rápido
led.morse("OK", 150);      // mais lento

Suporta: letras A–Z, números 0–9 e espaço.

Sequência personalizada

PassoSequencia seq[] = {
    {255, 100},   // brilho 255 por 100ms
    {  0,  80},   // apagado por 80ms
    {255, 100},
    {  0, 500},   // pausa de 500ms
};
led.sequencia(seq, 4);         // 1 vez
led.sequencia(seq, 4, 3);      // 3 vezes
led.sequencia(seq, 4, -1);     // infinito

Parâmetros repeticoes

Valor Comportamento
-1 Infinito — roda até chamar parar()
1 Uma vez (padrão para fade)
n Exatamente n vezes, depois dispara aoTerminar()

Callbacks

// Chamado quando um efeito finito termina
led.aoTerminar([]() { Serial.println("Feito!"); });

// Chamado quando o LED muda entre ligado/desligado
led.aoMudar([]() { Serial.println("Mudou!"); });

Use aoTerminar() para encadear efeitos automaticamente:

led.aoTerminar([]() {
    led.respirar(1000, 2);   // começa a respirar ao terminar o piscar
});
led.piscar(200, 200, 3);

Estado

led.estaLigado()          // true se brilho > 0
led.brilhoAtual()         // 0–255
led.estaEmEfeito()        // true se algum efeito está rodando
led.progresso()           // 0–100% do ciclo atual
led.ciclosRestantes()     // repetições restantes (-1 = infinito)

Configuração da fila de efeitos PWM (ESP32)

; platformio.ini — se usar múltiplos LEDs PWM, use canais diferentes
build_flags =
    -DLED_CANAL_LEDC_PADRAO=0   ; canal padrão (0–15)
    -DLED_FREQ_PWM=5000          ; frequência em Hz
    -DLED_RESOLUCAO_PWM=8        ; resolução em bits

Múltiplos LEDs com PWM:

Led ledVerde(5, true, 0);    // canal LEDC 0
Led ledVermelho(6, true, 1); // canal LEDC 1
Led ledAzul(7, true, 2);     // canal LEDC 2

Exemplos

Exemplo Descrição
01_Basico Controle básico via Monitor Serial
02_Efeitos Demonstração de todos os efeitos
03_Callbacks Encadeamento de efeitos com callbacks
04_Sequencia Padrões personalizados (notificação, alerta, sucesso)
05_Morse Transmissão de mensagens em código Morse

Licença

MIT © 2026 professorThiago

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages