Início›Módulos›LED 2 Cores
⬤ Iniciante · Grupo 1 — Atuadores Luminosos

🔴🟢 LED 2 Cores

⏱️ 20 min 🧩 Módulo LED bicolor · 2× Digital 📦 Módulo #10

Nesta página

🔬 Sobre o Módulo LED 2 Cores

O módulo LED bicolor contém dois LEDs (vermelho e verde) num único encapsulamento com cátodo comum. Cada cor é controlada independentemente por um pino digital — sem PWM, sem mistura de cores. Ideal para indicadores de estado simples: OK/ERRO, Ligado/Desligado, Aberto/Fechado.

Canais
2
Vermelho e Verde
Tipo
Cátodo comum
GND partilhado
Tensão
5V
VCC do Arduino
Controlo
Digital
digitalWrite HIGH/LOW
Pinos
D12 / D11
Ou quaisquer digitais
Corrente
~20 mA
Por canal
ℹ️
Diferente do LED RGB (#27), o LED bicolor não mistura cores com PWM — cada cor liga ou desliga. Acender os dois ao mesmo tempo produz laranja/amarelo mas não é recomendado por exceder a corrente nominal do módulo.

🔌 Pinagem — LED 2 Cores

VCCAlimentação → 5V do Arduino
GNDMassa → GND do Arduino (cátodo comum)
RCanal Vermelho → pino digital D12
GCanal Verde → pino digital D11

🔗 Ligar ao Arduino

1

VCC → 5V

Fio Dupont M-F do pino VCC do módulo ao pino 5V do Arduino.

2

GND → GND

Fio do pino GND do módulo a qualquer GND do Arduino.

3

R → D12

Fio do pino R do módulo ao pino D12 do Arduino.

4

G → D11

Fio do pino G do módulo ao pino D11 do Arduino.

💻 Indicador de Estado — Código Básico

ex_led2cores_basico.ino
#define LED_R 12   // Vermelho
#define LED_G 11   // Verde

void apagar() {{
  digitalWrite(LED_R, LOW);
  digitalWrite(LED_G, LOW);
}}

void setup() {{
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  apagar();
  Serial.begin(9600);
}}

void loop() {{
  // Estado OK — Verde 2s
  apagar();
  digitalWrite(LED_G, HIGH);
  Serial.println("Estado: OK");
  delay(2000);

  // Estado ERRO — Vermelho pisca 3x
  apagar();
  Serial.println("Estado: ERRO");
  for (int i = 0; i < 3; i++) {{
    digitalWrite(LED_R, HIGH); delay(200);
    digitalWrite(LED_R, LOW);  delay(200);
  }}
  delay(1000);
}}

⏱️ Temporizador com LED Bicolor

ex_led2cores_timer.ino
#define LED_R     12
#define LED_G     11
#define BTN_PIN   2
#define TEMPO_MS  10000  // 10 segundos

void setup() {{
  pinMode(LED_R, OUTPUT);
  pinMode(LED_G, OUTPUT);
  pinMode(BTN_PIN, INPUT_PULLUP);
  Serial.begin(9600);
}}

void loop() {{
  // Aguarda botão
  digitalWrite(LED_G, HIGH);
  digitalWrite(LED_R, LOW);
  while (digitalRead(BTN_PIN) == HIGH) {{}}
  delay(50);  // debounce

  // Contagem regressiva — verde → vermelho
  unsigned long inicio = millis();
  Serial.println("Início da contagem!");

  while (millis() - inicio < TEMPO_MS) {{
    unsigned long restante = TEMPO_MS - (millis() - inicio);
    Serial.println(restante / 1000);
    // Últimos 3s → vermelho pisca
    if (restante < 3000) {{
      digitalWrite(LED_G, LOW);
      digitalWrite(LED_R, (restante / 250) % 2);
    }}
    delay(100);
  }}
  // Fim — vermelho fixo
  digitalWrite(LED_G, LOW);
  digitalWrite(LED_R, HIGH);
  Serial.println("Tempo esgotado!");
  delay(2000);
}}

🏆 Para ir mais longe

Kit B 37 · PR.FT6_15 · Arduino UNO · Raspberry Pi · Início · led.dge.medu.pt