Nesta página Teoria do LED Montagem Ligar/apagar digital Controlo de brilho PWM Sequência de cores

💡 Como funciona um LED?

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

Tensão direta (Vf)
~2V
LED vermelho/laranja/amarelo
Tensão direta (Vf)
~2.2V
LED verde
Corrente máx.
20 mA
Pico absoluto
Corrente típica
~13 mA
Com 47Ω e 3.3V
ℹ️ Cálculo da resistência R = (Vcc − Vf) / I = (3.3V − 2.0V) / 0.013A ≈ 100Ω. A resistência de 47Ω do kit é mais permissiva (~27mA) mas aceitável para uso breve. Para uso prolongado usa 100Ω.

🔌 Montagem

P0→ Resistência 47Ω → Ânodo LED vermelho → Cátodo → GND
P1→ Resistência 47Ω → Ânodo LED verde → Cátodo → GND
3V→ Linha + da breadboard
GND→ Linha − da breadboard
⚠️ Polaridade A perna mais longa do LED é o ânodo (+) e liga ao pino do micro:bit (via resistência). A perna mais curta é o cátodo (−) e liga ao GND.

🔦 Ligar e Apagar — Digital

led_digital.js
// Piscar LED no P0 — 1 segundo ligado, 1 desligado
basic.forever(function () {
    pins.digitalWritePin(DigitalPin.P0, 1)  // Liga LED
    basic.pause(1000)
    pins.digitalWritePin(DigitalPin.P0, 0)  // Apaga LED
    basic.pause(1000)
})

// Piscar dois LEDs em alternância (P0 e P1)
basic.forever(function () {
    pins.digitalWritePin(DigitalPin.P0, 1)
    pins.digitalWritePin(DigitalPin.P1, 0)
    basic.pause(500)
    pins.digitalWritePin(DigitalPin.P0, 0)
    pins.digitalWritePin(DigitalPin.P1, 1)
    basic.pause(500)
})

🌟 Controlo de Brilho com PWM

O PWM (Pulse Width Modulation) liga e desliga o LED muito rapidamente. A percentagem de tempo ligado (duty cycle) determina o brilho percebido. No MakeCode, o valor vai de 0 (apagado) a 1023 (brilho máximo).

led_pwm.js
// Fade in: aumentar brilho gradualmente
basic.forever(function () {
    // Fade in
    for (let brilho = 0; brilho <= 1023; brilho += 50) {
        pins.analogWritePin(AnalogPin.P0, brilho)
        basic.pause(30)
    }
    // Fade out
    for (let brilho = 1023; brilho >= 0; brilho -= 50) {
        pins.analogWritePin(AnalogPin.P0, brilho)
        basic.pause(30)
    }
})

🌈 Sequência de Cores

sequencia_leds.js
// Acender LEDs em sequência — semáforo simples
let pinos = [AnalogPin.P0, AnalogPin.P1, AnalogPin.P2, AnalogPin.P3]
// P0=vermelho, P1=laranja, P2=amarelo, P3=verde

basic.forever(function () {
    for (let i = 0; i < pinos.length; i++) {
        // Apagar todos
        for (let j = 0; j < pinos.length; j++) {
            pins.analogWritePin(pinos[j], 0)
        }
        // Acender o atual com fade
        pins.analogWritePin(pinos[i], 800)
        basic.pause(600)
    }
})

🏆 Para ir mais longe