Voltar

LED Controlado por Botão: Seu Primeiro Projeto de Entrada com Arduino

Introdução

Bem-vindo ao seu primeiro projeto de entrada com Arduino! Neste tutorial, você construirá um circuito onde um botão controla um LED. Ao pressionar o botão, o LED acende; ao soltar, o LED apaga. Este projeto simples introduz a leitura de entradas digitais, o uso de resistores pull-up internos e a escrita de código Arduino limpo.

Usaremos o simulador no navegador do Velxio, que oferece um ambiente preciso em SPICE para que você possa testar seu circuito sem nenhum hardware. Vamos mergulhar!

Passo a Passo do Circuito

Diagrama do circuito do LED controlado por botão no canvas do simulador Velxio

O circuito consiste em três componentes principais:

Detalhes da Montagem

  1. Botão ao Arduino:

    • Uma perna do botão (pino 1.l) conecta-se ao pino digital 2 do Arduino via um fio azul (#00aaff).
    • A outra perna (pino 2.l) conecta-se ao GND via um fio preto.
  2. LED ao Arduino:

    • O ânodo (perna longa, pino A) conecta-se ao pino digital 13 do Arduino via um fio vermelho (#ff0000).
    • O cátodo (perna curta, pino C) conecta-se ao GND via um fio preto.

Observe que o botão não possui um resistor pull-up externo. Em vez disso, usaremos o resistor pull-up interno do Arduino no código. Quando o botão não está pressionado, o pino de entrada é puxado para HIGH; quando pressionado, ele lê LOW.

Explicação do Código

Código-fonte do LED controlado por botão no editor Monaco do Velxio

Aqui está o sketch completo do Arduino:

// Button LED Control
// Press button to turn LED on

const int BUTTON_PIN = 2;
const int LED_PIN = 13;

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

void loop() {
  int buttonState = digitalRead(BUTTON_PIN);

  if (buttonState == LOW) {
    digitalWrite(LED_PIN, HIGH);
  } else {
    digitalWrite(LED_PIN, LOW);
  }
}

Explicação

Conceitos Principais

Entrada Digital e Resistores Pull-Up

Quando um pino digital é configurado como entrada, ele lê HIGH (5V) ou LOW (0V). Sem um resistor pull-up ou pull-down, o pino pode flutuar entre estados, causando leituras erráticas. O resistor pull-up interno (tipicamente 20k-50k ohms) garante um HIGH estável quando o botão está aberto. Pressionar o botão conecta o pino diretamente ao GND, sobrepondo o pull-up e dando uma leitura LOW.

Debouncing

Botões mecânicos frequentemente oscilam, causando múltiplas transições rápidas. Neste exemplo simples, ignoramos o debouncing porque o LED responde rapidamente e o efeito é mínimo. Para aplicações mais críticas, você pode adicionar um pequeno atraso ou usar uma biblioteca de debounce.

Uso de Constantes

Definir números de pinos como constantes no início do sketch facilita a alteração da montagem sem precisar procurar no código. Também melhora a legibilidade.

Armadilhas Comuns e Dicas de Depuração

Usando o Simulador Velxio

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

Clique no botão Executar na barra de ferramentas para compilar e iniciar a simulação. Você pode então clicar no botão no canvas para ver o LED responder.

Barra de ferramentas do canvas Velxio acima da viewport de simulação

Use a barra de ferramentas do canvas para pausar, redefinir ou ajustar a velocidade da simulação.

Seletor de componentes Velxio modal navegando por peças por categoria

Para adicionar mais componentes, abra o seletor de componentes e navegue por categorias como “Entrada” ou “Saída”.

Gerenciador de Bibliotecas Velxio modal listando bibliotecas Arduino instaladas

Se você precisar de bibliotecas adicionais (por exemplo, para debouncing), use o Gerenciador de Bibliotecas.

Extensões Sugeridas

Depois de ter o circuito básico funcionando, tente estas melhorias:

  1. Modo alternado: Modifique o código para que cada pressionamento alterne o LED entre ligado e desligado, em vez de mantê-lo pressionado.
  2. Múltiplos LEDs: Adicione mais LEDs e botões para criar um painel de entrada simples.
  3. Debounce: Implemente debounce por software usando um atraso de 50ms ou um temporizador.
  4. Monitor Serial: Imprima o estado do botão no Monitor Serial para depuração.
  5. Brilho PWM: Substitua o digital write por analogWrite() para controlar o brilho do LED com base na duração do pressionamento do botão.

Chamada para Ação

Pronto para construir seu próprio LED controlado por botão? Abra o exemplo ao vivo no Velxio e comece a experimentar: Exemplo de LED com Botão. Nenhum hardware necessário – apenas seu navegador. Boas experiências!


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
Atenuar um LED com PWM no Arduino – Tutorial para Iniciantes
Próximo artigo
Construa um Simulador de Semáforo com Arduino no Velxio