O LED RGB é capaz de emitir a luz em uma infinidade de cores. Seu interior contém três led's, nas cores: vermelha (R de red), verde (G de green) e azul (B de blue). Combinando essas três cores em diferentes intensidade e brilho, é possível produzir qualquer outra cor. Através do sinal PWM emitido pelo Arduino, é possível ajustar separadamente a intensidade de cada cor.
Através do sinal PWM emitido pelo Arduino, é possível ajustar separadamente a intensidade de cada cor. O led RGB tem 4 terminais, um comum, podendo ser anodo ou catodo, e os demais correspondentes a cada uma das cores.
Em relação ao brilho, existem dois modelos de led: o brilhante e o difuso (ou fosco).
-O Catodo Comum, com o terminal comum ligado ao negativo.
-O Anodo Comum, com o terminal comum ligado ao positivo.
// definir as variaveis para os pinos utilizados
int pinoR = 11; // pino utilizado pelo terminal R (vermelho)
int pinoB = 10; // pino utilizado pelo terminal B (azul)
int pinoG = 9; // pino utilizado pelo terminal G (Verde)
#define COMMON_CATODE //define o Led RGB como catodo comum
void setup(){
// define os pinos do Led como saida
pinMode(pinoR, OUTPUT);
pinMode(pinoG, OUTPUT);
pinMode(pinoB, OUTPUT);
}
// funçao para produzir o brilho do led de acordo com valores informados
void setColor(int vermelho, int verde, int azul){
analogWrite(pinoR, vermelho); // define o brilo do led de acordo com o velor de 'vermelho'
analogWrite(pinoG, verde); // define o brilo do led de acordo com o velor de 'verde'
analogWrite(pinoB, azul); // define o brilo do led de acordo com o velor de 'azul'
}
void loop(){
setColor(255, 0, 0); // valores para obter a cor vermelha
delay(1000); // aguarda 1 segundo
setColor(0, 255, 0); // valores para obter a cor verde
delay(1000); // aguarda 1 segundo
setColor(0, 0, 255); // valores para obter a cor azul
delay(1000); // aguarda 1 segundo
setColor(255, 255, 0); // valores para obter a cor amarela
delay(1000); // aguarda 1 segundo
setColor(255, 0, 220); // valores para obter a cor violeta
delay(1000); // aguarda 1 segundo
setColor(150, 200, 255); // valores para obter a cor azul agua
delay(1000); // aguarda 1 segundo
setColor(255, 255, 255); // valores para obter um tom de branco
delay(1000); // aguarda 1 segundo
}