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.
Fio Dupont M-F do pino VCC do módulo ao pino 5V do Arduino.
Fio do pino GND do módulo a qualquer GND do Arduino.
Fio do pino R do módulo ao pino D12 do Arduino.
Fio do pino G do módulo ao pino D11 do Arduino.
#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);
}}#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);
}}