Voltar

Atenuar um LED com PWM no Arduino – Tutorial para Iniciantes

Introdução

Bem-vindo ao seu primeiro projeto com PWM (Modulação por Largura de Pulso)! Neste tutorial, vamos construir um circuito simples que atenua suavemente um LED, do apagado ao brilho máximo e vice-versa. Este é um projeto clássico para iniciantes em Arduino que ensina como usar analogWrite() para controlar brilho, velocidade de motores ou qualquer dispositivo que responda a uma tensão média variável.

Usaremos o Velxio, um simulador de circuitos online com suporte analógico preciso (SPICE). Nenhum hardware necessário – apenas seu navegador! Você pode acompanhar, editar o código e ver os resultados instantaneamente.

Diagrama do circuito de atenuação de LED no simulador Velxio

Montagem do Circuito

Vamos analisar os componentes e a fiação deste projeto.

Componentes

ComponenteQuantidadeObservações
Arduino Uno1O cérebro da operação
LED (qualquer cor)1Usaremos um LED azul
Resistor (220 Ω)1Resistor limitador de corrente (não mostrado no esquema, mas recomendado)
Fios jumper2Para as conexões

Fiação

  1. Anodo do LED (perna mais longa) → Conecte ao pino 9 do Arduino (um pino com capacidade PWM).
  2. Catodo do LED (perna mais curta) → Conecte ao GND do Arduino.

Importante: Sempre use um resistor limitador de corrente (tipicamente de 220 Ω a 1 kΩ) em série com o LED para evitar queimá-lo. No simulador Velxio, o modelo do LED inclui resistência interna, mas na vida real você deve adicionar um.

Aqui está a fiação em detalhes:

É isso! Apenas duas conexões. O pino 9 do Arduino pode emitir um sinal PWM, que usaremos para variar o brilho do LED.

Código-fonte do fade-led no editor Monaco do Velxio

Explicação do Código

Abra o editor de código no Velxio. Você verá o seguinte sketch do Arduino:

// Fade LED with PWM
// Smoothly fade LED brightness

const int LED_PIN = 9; // PWM pin

int brightness = 0;
int fadeAmount = 5;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  analogWrite(LED_PIN, brightness);

  brightness += fadeAmount;

  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }

  delay(30);
}

Como Funciona

Conceitos Principais

Problemas Comuns e Dicas de Depuração

  1. LED não acende?

    • Verifique se o LED está conectado corretamente (anodo ao pino 9, catodo ao GND).
    • Certifique-se de que o código foi carregado (clique no botão Executar na barra de ferramentas).
    • Confirme se LED_PIN corresponde ao pino real usado.
  2. LED fica no brilho máximo?

    • Certifique-se de estar usando um pino com capacidade PWM (3, 5, 6, 9, 10, 11 no Uno). O pino 13 não é PWM.
    • Verifique se analogWrite() está sendo chamado, e não digitalWrite().
  3. Atenuação muito rápida ou muito lenta?

    • Ajuste o valor de delay(30). Maior = atenuação mais lenta.
    • Altere fadeAmount para controlar o tamanho do passo (ex.: 1 para muito suave, 10 para mais rápido).
  4. Simulador não responde?

    • Use o botão Reset na barra de ferramentas da tela.
    • Atualize a página se necessário.

Barra de ferramentas do editor Velxio com controles de compilar e executar

Extensões Sugeridas

Depois de dominar a atenuação básica, tente estes desafios:

  1. Múltiplos LEDs: Adicione mais dois LEDs nos pinos 10 e 11. Faça-os atenuar em sequência ou em velocidades diferentes.
  2. Controle por botão: Adicione um botão de pressão para iniciar/parar a atenuação.
  3. Controle de velocidade com potenciômetro: Use um potenciômetro para ajustar a velocidade da atenuação (substitua delay(30) por uma variável lida de uma entrada analógica).
  4. LED RGB: Use um LED RGB e atenue através de diferentes cores controlando três pinos PWM.
  5. Monitor serial: Imprima o valor do brilho no Monitor Serial para depuração.

Experimente Você Mesmo!

Pronto para ver em ação? Abra o exemplo ao vivo no Velxio:

👉 Inicie o exemplo de Atenuação de LED

Você pode editar o código, alterar a velocidade da atenuação ou até adicionar novos componentes. O simulador roda inteiramente no seu navegador – sem downloads, sem configuração.

Boa atenuação!


Compartilhar em:
David Montero

Escrito por

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

Artigos relacionados


Artigo anterior
Serial Hello World: Seu Primeiro Projeto de Comunicação com Arduino
Próximo artigo
LED Controlado por Botão: Seu Primeiro Projeto de Entrada com Arduino