Menu

LED RGB

Controle de um LED tricolor / RGB

 

O LED RGB possui três LEDs em seu invólucro. Recebe este código em função das iniciais vindas do Inglês para Red, Green, Blue (Vermelho, Verde, Azul).

Para controlar suas cores, enviamos energia para os três LEDs internos separadamente – os LEDs estão ligados à energia por meio de três resistores (note que a energia tem que circular passando do GND pelo pino comum dos LEDs e, em cada um dos outros pinos – R,G,B – existe um resistor, que está ligado no Arduino. Isto é chamado de circuito série: a energia tem que passar por todos os componentes do circuito para funcionar).

Conforme as quantidades de energia fornecidas a cada um dos LEDs internos haverá a emissão de diferentes frequências luminosas e perceberemos cores diferentes.

A ligação no meu exemplo ficou assim:

Eu usei neste exemplo resistores de 330 ohms (laranja, laranja, marrom – use valores entre 150 ohms e 1000 ohms, veja  aqui  as cores).

Não deixe de usar os resistores em série com os LEDs !

 

Observação – para o código a seguir funcionar corretamente, devem ser escolhidos pinos de conexão ao Arduino que possuam a habilidade de trabalhar com sinais PWM (modulação por largura de pulso) – estes pinos vão possibilitar que, ao invés de simplesmente enviarmos um sinal Alto/Baixo (tudo ou nada), possamos enviar quantidades intermediárias de energia. Os pinos que possuam esta habilidade são identificados na placa com um sinal de ‘~’ antes do número (no meu caso, usei ~9, ~10 e ~11, mas você pode usar outros, desde que possuam o ‘~’).

 

Para o controle do LED tricolor (ou RGB), podemos usar o código a seguir  (pode baixar o código   aqui ) – lembre-se do sinal de ‘~’ na frente dos pinos:

#define vermelho 9  //pino PWM, tem um ‘~’ na frente do número -> ~9
#define verde 10       //pino PWM, tem um ‘~’ na frente do número -> ~10
#define azul 11          //pino PWM, tem um ‘~’ na frente do número -> ~11

int aleatorio;

void setup() {

Serial.begin(9600);
pinMode(vermelho, OUTPUT);
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
randomSeed(analogRead(0));

}

 

void loop() {

aleatorio = random(256);                    // a função random(256) gera um número aleatório entre 0 e 255
analogWrite(vermelho, aleatorio);
delay(100);
aleatorio = random(256);
analogWrite(verde, aleatorio);
delay(100);
aleatorio = random(256);
analogWrite(azul, aleatorio);
delay(100);

}

Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420

UFPR nas Redes Sociais


UFPR nas Redes Sociais