Lição 98-4: Desvanecendo uma Luz LED Usando Arduino: Controle de Brilho
Os LEDs estão em todo lugar — indicadores, displays, iluminação decorativa — mas a maioria dos iniciantes para em simplesmente ligar e desligar um. Este projeto dá o próximo passo: fazer um LED acender e apagar suavemente usando a capacidade PWM (Modulação por Largura de Pulso) integrada do Arduino. Em vez de uma piscada brusca, você obtém uma subida e descida gradual no brilho que imita escurecimento natural, efeitos de respiração e controle do tipo analógico a partir de um pino puramente digital. É um dos primeiros projetos mais satisfatórios porque você pode ver o resultado imediatamente, e a mesma técnica sustenta o controle de velocidade de motores, volume de áudio e escurecimento de luz de fundo em produtos reais.
Depois de entender o fading, você pode aplicá-lo a uma ampla variedade de montagens práticas:
- Criar um indicador de status "respirando" em um dispositivo que pulsa suavemente em vez de piscar de forma incômoda
- Escurecer automaticamente um abajur de LED com base na luz ambiente ou na hora do dia
- Controlar o brilho de uma luz de fundo em um display LCD ou OLED
- Construir iluminação de ambiente ou lâmpadas decorativas com transições suaves entre níveis de brilho
- Simular um despertador de nascer do sol lento que clareia gradualmente para acordá-lo naturalmente
- Adicionar controle de velocidade a pequenos motores DC ou ventoinhas (o mesmo princípio de PWM se aplica)
Este tutorial faz parte do Curso Passo a Passo do Arduino da Robojax e cobre especificamente o Projeto 4 de 10: Fading de um LED Usando Arduino. O programa completo está disponível para download abaixo do artigo.
Hardware e Componentes
A lista de peças para este projeto é mínima — se você já fez algum trabalho com Arduino antes, provavelmente já tem tudo o que precisa:
- 1× placa Arduino (Uno, Nano, Mega ou qualquer placa compatível)
- 1× LED (5mm ou 3mm, qualquer cor)
- 1× Resistor (200Ω a 1000Ω — uma faixa de 300Ω a 1kΩ funciona bem)
- Protoboard e fios jumper DuPont
- Cabo USB para programação e alimentação
Uma observação importante sobre o LED: a perna mais longa é o ânodo (positivo), e a perna mais curta — ou o lado com a borda plana na carcaça de plástico — é o cátodo (negativo). Inverter isso significa que o LED simplesmente não acenderá, então verifique duas vezes antes de ligar.
Para o valor do resistor, a transcrição percorre a matemática em (no vídeo aos 03:49): um LED típico tem uma queda de cerca de 2V e precisa de aproximadamente 10mA de corrente. Com uma alimentação de 5V, os 3V restantes devem cair sobre o resistor, dando R = V/I = 3V / 0,01A = 300Ω. Na prática, qualquer valor de 300Ω até 1000Ω funcionará — valores mais altos apenas produzem um LED mais fraco. Para o fading, isso na verdade é bom, já que você está variando o brilho de qualquer forma.
Guia de Ligação
A ligação é o mais simples possível. O ânodo do LED se conecta através de um resistor a um pino compatível com PWM no Arduino — neste projeto, o pino 3. O cátodo se conecta ao terra.
Por que especificamente o pino 3? Porque nem todos os pinos do Arduino suportam PWM. Na maioria das placas Arduino, os pinos compatíveis com PWM são marcados com um símbolo de til (~) — tipicamente os pinos 3, 5, 6, 9, 10 e 11 em um Uno. Se você usar um pino sem PWM, analogWrite() não produzirá uma saída variável; o LED ficará apenas ligado ou desligado.
Conecte o circuito da seguinte forma:
- Insira o LED na protoboard, observando qual perna é o ânodo (mais longa) e qual é o cátodo (mais curta/lado plano).
- Conecte o ânodo do LED ao pino 3 do Arduino através do resistor.
- Conecte o cátodo do LED ao pino GND do Arduino.
- Conecte o Arduino ao computador via USB.
Explicação do Código
O sketch para este projeto é baseado no clássico exemplo "Fade" do Arduino, com alguns ajustes. Em vez de explicar cada linha, vamos focar nas partes que você vai querer ajustar para seus próprios experimentos.
Variáveis Configuráveis pelo Usuário
No topo do código, três variáveis controlam todo o comportamento:
int led = 3; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 3; // how many points to fade the LED byled— Define a qual pino o LED está conectado. O padrão é o pino 3, mas você pode alterá-lo para qualquer pino compatível com PWM (marcado com ~ na sua placa). Se você mover o LED para um pino diferente, atualize este valor para corresponder.brightness— Este é o nível de brilho atual, variando de 0 (desligado) a 255 (brilho máximo). O código começa em 0, mas você pode iniciá-lo em qualquer valor dentro desse intervalo.fadeAmount— Este é o mais interessante de se experimentar. Ele controla quantos "passos" de brilho são dados a cada ciclo. Um valor pequeno como 3 produz um fade lento e gradual. Um valor maior como 20 faz o LED acender e apagar muito rapidamente. A transcrição demonstra isso em (no vídeo aos 22:37) — mudar de 5 para 20 acelera drasticamente o efeito.
Como o Fade Funciona
O núcleo do fade acontece em duas linhas dentro de loop():
analogWrite(led, brightness);
brightness = brightness + fadeAmount;
A cada passagem pelo loop, o valor atual de brilho é escrito no LED usando analogWrite(), então o brilho é incrementado por fadeAmount. A função analogWrite() usa PWM para simular uma tensão analógica — ela rapidamente liga e desliga o pino, e a proporção entre tempo ligado e tempo desligado determina o brilho percebido.
Quando o brilho atinge 0 ou 255, o código inverte a direção trocando o sinal de fadeAmount:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
Isso é o que faz o LED acender, depois apagar, e então acender novamente — um ciclo contínuo de respiração. O delay(30) no final do loop controla a velocidade geral da animação. Um delay mais curto torna o fade mais rápido; um delay mais longo o desacelera.
Experimentando com os Valores
Duas variáveis lhe dão mais controle sobre o efeito visual:
- Aumente
fadeAmountpara um fade mais rápido e mais dramático. Tente 10 ou 20. - Diminua
fadeAmountpara um efeito de respiração lento e suave. Tente 1 ou 2. - Ajuste o valor de
delay()para mudar o ritmo. Delays menores tornam todo o ciclo mais rápido; delays maiores o estendem.
Combinar um fadeAmount pequeno com um delay curto produz um fade extremamente suave, quase orgânico — ótimo para iluminação ambiente. Um fadeAmount grande com um delay curto cria um efeito de pulsação rápida.
Demonstração do Projeto ao Vivo
Depois que o código for carregado, você verá o LED aumentar lentamente o brilho de apagado até o máximo, depois diminuir novamente, repetindo indefinidamente. A transcrição mostra o comportamento padrão em (no vídeo aos 22:25) — um fade suave, de velocidade moderada.
Quando o fadeAmount é alterado para 20, o LED acende e apaga muito rapidamente — quase como uma cintilação. Quando definido para 3, o fade leva visivelmente mais tempo, criando uma transição relaxada e gradual. Isso é demonstrado claramente no vídeo em (no vídeo aos 23:02).
A beleza deste projeto é que você pode ver o efeito das suas mudanças no código imediatamente — nenhuma alteração na fiação é necessária, basta editar as variáveis e recarregar. Esse ciclo de feedback rápido o torna uma excelente maneira de desenvolver intuição sobre como PWM e temporização interagem.
Se você quiser levar isso adiante, acionando o fade com um botão em vez de deixá-lo rodar continuamente, isso é abordado em um tutorial separado — veja a seção de projetos relacionados abaixo.
Projetos relacionados deste vídeo
- Lição 98-1: Como Ligar e Desligar um LED com Arduino
- Lição 98-2: Como Ligar e Desligar um LED Usando um Botão com Arduino
- Lição 98-3: Como Ligar/Desligar um LED Toggle Usando um Botão com Arduino
- Lição 98-5: Fazer o LED Fade Quando um Botão É Pressionado Usando Arduino
- Lição 98-6: Jogo de LED Gangorra com Arduino
- Lição 98-7: Luz Caminhante Usando Arduino e 5 LEDs
- Lição 98-8: Luz Caminhante com Botão e LEDs com Arduino
- Lição 98-9: Medidor de Nível de Tensão com LED Usando Arduino ou luz caminhante com potenciômetro
- Lição 98-10: Semáforo com Arduino
Capítulos
- [00:00] Visão geral dos 10 projetos de LED com Arduino
- [01:22] Introdução ao curso e componentes necessários
- [02:29] Entendendo LEDs: símbolos, polaridade e tipos
- [03:49] Calculando o valor do resistor do LED usando a lei de Ohm
- [05:53] Projeto 1: Ligar e desligar um LED
- [12:43] Projeto 2: Controle de LED com um botão
- [17:13] Projeto 3: LED toggle com botão
- [20:12] Projeto 4: Fade em um LED — análise do código
- [22:25] Demonstração do fade e ajuste da velocidade do fade
- [23:20] Projeto 5: LED com fade acionado por botão
- [27:32] Projeto 6: Efeito de LED gangorra
- [30:47] Projeto 7: Luz caminhante com 5 LEDs
- [36:41] Projeto 8: Luz caminhante controlada por botão
- [42:25] Projeto 9: Medidor de nível de tensão com LED e potenciômetro
- [49:25] Projeto 10: Semáforo com Arduino
This code has not been parsed yet. Please return to the admin panel to parse it.
Coisas que você pode precisar
-
AmazonasSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
Amazonas
-
Amazonas
-
Amazonas
Recursos e referências
-
DocumentaçãoDocumentação para o Kit de Aprendizado 3 em 1 IoT/Carro Inteligente/SunFounderdocs.sunfounder.com
-
Externo
-
Externo
-
Externo
Arquivos📁
Bibliotecas do Arduino (zip)
-
Código fonte do kit de aprendizado Smart Car 3 em 1 da SunFounder
3in1-kit-main-v2.zip12.80 MB
Manual do Usuário
-
Manual de montagem do SunFounder 3-em-1 Arduino Smart CarEste documento mostra a montagem passo a passo do SunFounder 3-em-1 Arduino Smart Car
SunFounder_car_assembly_manual.pdf1.20 MB