sábado, 25 de abril de 2015

Brincando com leds RGB de 2 e 4 “pernas” de anodo comum.

Oi galera.

Primeiramente vamos entender o que é RGB.

Todas as cores existentes são formadas pro uma mistura de 3 cores primitivas (sem entrar em detalhes técnicos e físicos), essas cores são o Red, Green e Blue, por isso a abreviação RGB.

Dependendo da porcentagem de cada cor, formam-se as demais cores que conseguimos enxergar.

Voltando para a eletrônica, podemos observar como isso funciona nesse site:


1 – Led RGB de duas “pernas”.

Esses leds tem um micro CI interno que define o funcionamento dele, que é simplesmente piscar. Ele começa apresentando algumas cores depois muda para um ritmo e não temos como mudar isso.
Por ele ser bem simples, vou deixar apenas um vídeo que demonstra isso.:



2 – Led RGB de 4 “pernas” de anodo comum.

Ele tem um contato em comum para todas as cores, que é o positivo ou anodo (a maior perna dentre
as 4), as outras são para o vermelho, verde e azul.

As conexões desse led são um pouco diferente, pois não vamos utilizar o GND.
Caso fosse um de catodo ou gnd comum, seria ligado da seguinte forma:

GND no GND do arduino.
Vermelho na saída x.
Verde na saída y.
Azul na saída z.
Conforme imagem abaixo:




Com o led de anodo comum fica um pouco diferente.
Perna maior no 3,3 v do arduino.
Vermelho na saída x.
Verde na saída y.
Azul na saída z.
Conforme imagem:




Devido não utilizarmos o terra, quando você colocar um valor de saída como 200 por exemplo, esse valor sairá invertido, e será equivalente a 55, que é o restante de 255 (valor máximo de saída do arduino).

Então foi feita uma pequena adaptação no código.

Para termos uma melhor visualização das cores é recomendado colocar um papel ou um plastico em cima do led.

Exemplo da cor dourada:



//Código criado por Marcelo Cella
//marcelocella204@gmail.com
//parcerias:
//http://viciadosemarduino.blogspot.com.br/
//http://sttamp.com/loja
int red = 6;
int green = 7;
int blue = 8;
int valr, valg, valb; //criamos variáveis para nos ajudar com a adaptação e inversão de valores
int r, g, b; //criamos variáveis para nos ajudar com a adaptação e inversão de valores
void setup() { //aqui serão colocados os valores que realmente queremos
r = 255; // vermelho 100%, verde menos de 50% e azul desligado
g = 105; //assim teremos a cor dourada por exemplo
b = 0;
}
void loop() {
valr = (255- r); //valores sendo convertidos
valg = (255- g);
valb = (255- b);
analogWrite (red, valr); //saída já convertida
analogWrite (green, valg);
analogWrite (blue, valb);
delay (1000);
}