Início›Módulos›LED RGB
⬤ Intermédio

🌈 LED RGB

⏱️ 25 min🧩 P0 (R) · P1 (G) · P2 (B) · PWM

Conteúdo

📌 Pinagem

Pino micro:bitFunçãoNotas
P0Canal Vermelho (R)analogWritePin P0, 0–1023
P1Canal Verde (G)analogWritePin P1, 0–1023
P2Canal Azul (B)analogWritePin P2, 0–1023
GNDMassaPartilhado pelos 3 canais
ℹ️
O LED RGB tem cátodo comum (GND partilhado). Controla a intensidade de cada canal com PWM: 0 = canal apagado, 1023 = intensidade máxima. Mistura de cores: R+G = amarelo, R+B = magenta, G+B = ciano, R+G+B = branco.

Exercício — Cores básicas

Liga cada canal individualmente e depois combina-os.

ex1_rgb_cores.blocks
// Vermelho puro
pins.analogWritePin(AnalogPin.P0, 1023)
pins.analogWritePin(AnalogPin.P1, 0)
pins.analogWritePin(AnalogPin.P2, 0)
basic.pause(1000)
// Verde puro
pins.analogWritePin(AnalogPin.P0, 0)
pins.analogWritePin(AnalogPin.P1, 1023)
pins.analogWritePin(AnalogPin.P2, 0)
basic.pause(1000)
// Azul puro
pins.analogWritePin(AnalogPin.P0, 0)
pins.analogWritePin(AnalogPin.P1, 0)
pins.analogWritePin(AnalogPin.P2, 1023)
basic.pause(1000)

Exercício — Ciclo de cores (arco-íris)

Percorre gradualmente as 6 cores primárias e secundárias.

ex2_rgb_ciclo.blocks
// Função para definir cor RGB
function setCor(r: number, g: number, b: number) {
    pins.analogWritePin(AnalogPin.P0, r)
    pins.analogWritePin(AnalogPin.P1, g)
    pins.analogWritePin(AnalogPin.P2, b)
}

basic.forever(function() {
    setCor(1023, 0, 0)    // Vermelho
    basic.pause(500)
    setCor(1023, 1023, 0) // Amarelo
    basic.pause(500)
    setCor(0, 1023, 0)    // Verde
    basic.pause(500)
    setCor(0, 1023, 1023) // Ciano
    basic.pause(500)
    setCor(0, 0, 1023)    // Azul
    basic.pause(500)
    setCor(1023, 0, 1023) // Magenta
    basic.pause(500)
})

🏆 Desafios

PR.FT4_10 · Kit A 37 · Início