Como Fazer LED Piscar no Arduino - Tutorial Completo
Make an LED blink with Arduino. Complete tutorial with wiring diagram, code, and line-by-line explanation. The standard first project for learning Arduino programming.
O sketch LED blink é o primeiro projeto clássico do Arduino — ele liga e desliga um LED repetidamente usando apenas três linhas de código. É o "Olá Mundo" da programação de hardware e introduz os conceitos principais: saída digital, temporização e a estrutura de programas do Arduino. Todo Arduino tem um LED interno no pino 13, então você pode executar este projeto com zero componentes externos.
O que você precisa
| Componente | Observações |
|---|---|
| Arduino Uno (ou Nano, Mega) | Qualquer placa Arduino funciona |
| Cabo USB | Tipo-A para Tipo-B para Uno; micro-USB para Nano |
| Arduino IDE | Gratuito em arduino.cc (ou use o editor web) |
Para a versão com LED externo, você também precisará de um LED padrão de 5mm, um resistor de 220Ω–330Ω, uma protoboard e fios jumper.
O sketch blink
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}Explicação linha por linha
setup()
A função setup() executa uma vez quando o Arduino liga ou reinicia. Aqui, usamospinMode(13, OUTPUT) para configurar o pino digital 13 como saída. Isso diz ao Arduino que queremos enviar tensão para fora deste pino em vez de ler dele.
loop()
A função loop() executa continuamente, repetindo para sempre após setup() terminar. Cada ciclo:
digitalWrite(13, HIGH)— Define o pino 13 para 5V, ligando o LED.delay(1000)— Pausa por 1000 milissegundos (1 segundo).digitalWrite(13, LOW)— Define o pino 13 para 0V, desligando o LED.delay(1000)— Pausa por outro segundo antes do loop repetir.
O resultado: o LED pisca ligando e desligando, um segundo de cada vez, para sempre (ou até você desconectar o Arduino).
Como carregar o sketch
- Conecte o Arduino ao seu computador com o cabo USB.
- Abra o Arduino IDE.
- Vá em Ferramentas → Placa e selecione sua placa (ex: "Arduino Uno").
- Vá em Ferramentas → Porta e selecione a porta COM que apareceu quando você conectou o Arduino.
- Cole o código blink no editor (ou vá em Arquivo → Exemplos → 01.Basics → Blink).
- Clique no botão Carregar (ícone de seta →).
- Aguarde "Upload concluído" aparecer na parte inferior. O LED interno deve começar a piscar.
Adicionando um LED externo
O LED interno é útil para testes, mas conectar seu próprio LED ensina sobre conexões e demonstra por que você precisa de um resistor limitador de corrente.
Conexões
- Coloque o LED na protoboard.
- Conecte um resistor de 220Ω do pino 13 do Arduino para a perna mais longa do LED (ânodo).
- Conecte a perna mais curta do LED (cátodo) ao trilho terra da protoboard.
- Conecte o trilho terra da protoboard a um pino GND do Arduino com um fio jumper.
O mesmo sketch blink funciona sem mudanças — o pino 13 controla tanto o LED interno quanto seu LED externo simultaneamente. Para usar um pino diferente (ex: pino 8), apenas mude todas as instâncias de 13 para 8 no código.
Por que o resistor de 220Ω?
Os pinos de saída do Arduino fornecem 5V. Um LED vermelho tem uma tensão direta de cerca de 2V e umacorrente de operação segura de 20 mA. Usando nossa calculadora de resistor para LED:
R = (5V - 2V) / 0,02A = 150Ω (mínimo)220Ω fornece uma margem de segurança confortável (~14 mA), e é um valor de resistor muito comum. 330Ω funciona bem também (cerca de 9 mA — um pouco mais fraco mas perfeitamente visível). Aprenda a identificar valores de resistores com nosso guia de código de cores.
Variações para experimentar
Mudar a velocidade de piscar
// Piscar rápido (5 vezes por segundo)
delay(100);
// Piscar lento (uma vez a cada 3 segundos)
delay(1500); // ligado por 1,5 seg, desligado por 1,5 seg
// Padrão batimento cardíaco
digitalWrite(13, HIGH); delay(100);
digitalWrite(13, LOW); delay(100);
digitalWrite(13, HIGH); delay(100);
digitalWrite(13, LOW); delay(700);Piscar múltiplos LEDs
int ledA = 8;
int ledB = 9;
void setup() {
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
}
void loop() {
digitalWrite(ledA, HIGH);
digitalWrite(ledB, LOW);
delay(500);
digitalWrite(ledA, LOW);
digitalWrite(ledB, HIGH);
delay(500);
}Isso alterna dois LEDs, cada um em seu próprio pino com seu próprio resistor. Para conexões detalhadas de múltiplos LEDs, veja nosso guia de conexão de LEDs no Arduino.
Usar uma variável para o pino
const int LED_PIN = 13;
const int BLINK_INTERVAL = 500;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(BLINK_INTERVAL);
digitalWrite(LED_PIN, LOW);
delay(BLINK_INTERVAL);
}Usar constantes nomeadas (const int) em vez de números brutos torna o código mais fácil de ler e modificar. Esta é uma boa prática para todos os projetos Arduino.
Conceitos-chave que este projeto ensina
| Conceito | O que você aprendeu |
|---|---|
| Saída digital | Pinos podem ser definidos HIGH (5V) ou LOW (0V) |
| setup() e loop() | Todo sketch Arduino tem essas duas funções |
| Temporização | delay() pausa a execução por um tempo definido |
| Limitação de corrente | LEDs precisam de um resistor em série para evitar queima |
| Polaridade | LEDs são direcionais — perna longa para positivo |
Solução de problemas
| Problema | Solução |
|---|---|
| Upload falha: "porta não encontrada" | Verifique o cabo USB (deve ser cabo de dados, não só carregamento). Tente uma porta USB diferente. Instale drivers se necessário. |
| Upload falha: "placa não reconhecida" | Vá em Ferramentas → Placa e selecione a placa correta. Clones do Arduino Nano frequentemente precisam da opção "Old Bootloader". |
| LED interno pisca mas externo não | Verifique as conexões: resistor → ânodo do LED (perna longa) → cátodo do LED → GND. Tente inverter o LED. |
| LED fica ligado, não pisca | Certifique-se de que ambas as chamadas delay() estão presentes. Verifique se o código foi carregado com sucesso. |
| LED está muito fraco | O valor do resistor pode estar muito alto. Verifique com a calculadora. |
Próximos passos
Depois de piscar um LED, experimente estes projetos para construir sobre o que você aprendeu:
- Conectar múltiplos LEDs — conectar e controlar vários LEDs de diferentes pinos
- LED ativado por som — fazer um LED responder ao som usando o sensor KY-037
- Circuito sensor de luz — ligar automaticamente um LED quando escurecer
Resumo
O sketch blink do Arduino usa pinMode() para configurar o pino 13 como saída, então alterna entre HIGH (5V, LED ligado) e LOW (0V, LED desligado) com delay() entre elas. Funciona com o LED interno imediatamente, ou com um LED externo através de um resistor de 220Ω. Este projeto introduz saída digital, a estrutura setup/loop, temporização e limitação de corrente — a base para todo projeto Arduino que segue.