Início › Componentes › LEDs
⬤ Iniciante

💡 LEDs Coloridos

Ligar LEDs, controlar brilho com PWM e criar efeitos de animação.

⏱️ Duração: 30–45 min
🧩 Componentes: LEDs + Resistências
📚 Pré-requisitos: Introdução + Programação

Como funciona um LED?

Um LED (Light Emitting Diode) é um díodo que emite luz quando atravessado por corrente. Tem polaridade: a perna mais longa é o ânodo (+) e a mais curta é o cátodo (−).

LED 220Ω → Pin 13 GND + −
⚠️ Nunca liges um LED diretamente ao Arduino sem resistência! A corrente sem limite destrói o LED e pode danificar o pino do Arduino. Usa sempre uma resistência de 220Ω a 470Ω em série.

Exercício 1 — LED Simples

Ligar um LED e fazê-lo piscar com intervalo variável.

🔌 Ligações

Arduino→Componente
Pino 13→Resistência 220Ω → Ânodo LED (+)
GND→Cátodo LED (−)
ex1_led_piscar.ino
const int LED = 13;

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

void loop() {
  digitalWrite(LED, HIGH);   // Liga
  delay(500);                 // 500ms ligado
  digitalWrite(LED, LOW);    // Desliga
  delay(500);                 // 500ms desligado
}
// Experimenta alterar os valores de delay() para
// mudar a velocidade de piscar!
🎯 Desafio: Altera o código para que o LED pisque 3 vezes rápido, pause 1 segundo, e repita — como um sinal de SOS!

Exercício 2 — Brilho com PWM

Controlar o brilho do LED gradualmente usando PWM. Usa o pino 9 (ou qualquer pino com ~).

🔌 Ligações

Arduino→Componente
Pino 9 (~)→Resistência 220Ω → Ânodo LED (+)
GND→Cátodo LED (−)
ex2_led_fade.ino
const int LED = 9;  // Pino PWM (~)
int brilho = 0;
int passo = 5;

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

void loop() {
  analogWrite(LED, brilho);  // 0 = apagado, 255 = máximo
  brilho += passo;
  
  // Inverte direção ao atingir os limites
  if (brilho <= 0 || brilho >= 255) {
    passo = -passo;
  }
  delay(15);  // Velocidade do fade
}

Exercício 3 — Sequência de Cores

Liga 3 LEDs de cores diferentes e anima-os em sequência.

🔌 Ligações

Arduino→Componente
Pino 11→Resistência 220Ω → LED Vermelho (+)
Pino 12→Resistência 220Ω → LED Amarelo (+)
Pino 13→Resistência 220Ω → LED Verde (+)
GND→Cátodo dos 3 LEDs (−)
ex3_sequencia.ino
int leds[] = {11, 12, 13};   // Vermelho, Amarelo, Verde
int numLeds = 3;

void setup() {
  for (int i = 0; i < numLeds; i++) {
    pinMode(leds[i], OUTPUT);
  }
}

void loop() {
  // Sequência ida
  for (int i = 0; i < numLeds; i++) {
    digitalWrite(leds[i], HIGH);
    delay(200);
    digitalWrite(leds[i], LOW);
  }
  // Sequência volta
  for (int i = numLeds - 1; i >= 0; i--) {
    digitalWrite(leds[i], HIGH);
    delay(200);
    digitalWrite(leds[i], LOW);
  }
}
🎯 Desafio: Adiciona um botão (ex. pino 2) para alternar entre diferentes padrões de animação — sequência, todos juntos, ou aleatório!
Próximo: Botão → Ver: Semáforo com LEDs