Antes de mais nada, precisamos entender com o que vamos trabalhar, para isto é necessário recorrer a teoria, vamos entender primeiro o que é realmente um LED.
“O LED é um componente eletrônico semicondutor, ou seja, um diodo emissor de luz ( L.E.D = Light Emitter Diode ), mesma tecnologia utilizada nos chips dos computadores, que tem a propriedade de transformar energia elétrica em luz. Os LED podem ser tanto de Anodo quanto de Catodo” (Unicamp, http://www.iar.unicamp.br/lab/luz/dicasemail/led/dica36.htm).
Agora que já sabemos o que é um LED, precisamos entender o que é a sigla RBG ou em alguns casos, exibida como RGB.
RBG ou RGB são abreviação das cores primárias Vermelho (Red), Azul (Blue) e Verde (Green), que quando combinadas, forma outras variações de cores como Verde e Azul formam Roxo, por exemplo.
O LED RBG é composto por quatro pinos, enquanto o convencional são apenas dois, destes quatro pinos, três representam as cores primárias e o último o Anodo Comum.
Para este projeto será utilizado as portas 8, 9 e 10 além da GND, porém há uma sequência que deve ser respeitada para seguir nosso exemplo, para que sejam alcançadas as combinações correta, veja o modelo abaixo.
Para exemplificar note que o pino dois (GND) é o maior e o quatro o menor.
Na imagem acima estamos fazendo referência aos pinos no Arduino, porém vamos ligar na Protoboard e depois ligar na sequência correta no Arduino, a sequência pode ser mudada sem nenhum problema, porém faça as alterações necessárias no algoritmo.
Protoboard
Arduino
Após feito a ligação do LED na Protoboard e no Arduino, nos resta fazer toda a programação, mas antes vamos entender algumas coisas.
As combinações de cores RBG são formadas por algo como 255 (corresponde ao Vermelho), 255 (corresponde ao Verde) 0 (corresponde ao Azul), cada um deste valores é a intensidade da cor, sendo que 0 é totalmente desligado e 255 o valor máximo representando totalmente ligado, para se obter a cor Magenta, precisamos inserir 255, 0, 255.
Confira uma paleta de cores na qual pode te ajudar com valores RBG: https://htmlcolorcodes.com.
Vamos utilizar o analogWrite(PINO, VALOR), onde:
Pino – Corresponde a qual porta vamos escrever.
Valor – O valor correspondente a nossa cor, como vimos acima, vai de 0 (zero) até 255, que é o valor máximo.
Nosso algoritmo foi escrito pensando em reuso, então cada cor está configurada dentro de uma função, basta chamar Orange que imprime Laranja, Blue que imprime azul e assim para todas as cores disponíveis.
Confira o algoritmo abaixo.
Código 01:
int pin = 8; //Vermermelho
int pin2 = 9; //Verde
int pin3 = 10; //Azul
void setup() {
pinMode(pin, OUTPUT); //Pino 8 como saída
pinMode(pin2, OUTPUT); //Pino 9 como saída
pinMode(pin3, OUTPUT); //Pino 10 como saída
}
void loop() {
purple();//Light Purple
delay(1000);//Wait for one seconds
orange();//Light Orange
delay(1000);//Wait for one seconds
blue();//Light Blue
delay(1000);//Wait for one seconds
pink();//Light Pink
delay(1000);//Wait for one seconds
palegreen();//Light PaleGreen
delay(1000);//Wait for one seconds
//Repeat
}
void orange(){
//Orange
analogWrite(pin, 255); //RED
analogWrite(pin2, 128); //GREEN
analogWrite(pin3, 0); //BLUE
}
void purple(){
//PURPLE
analogWrite(pin, 104); //RED
analogWrite(pin2, 153); //GREEN
analogWrite(pin3, 255); //BLUE
}
void blue(){
//PURPLE
(pin, 51); //RED
analogWrite(pin2, 153); //GREEN
analogWrite(pin3, 255); //BLUE
}
void pink(){
//PINK
analogWrite(pin, 255); //RED
analogWrite(pin2, 51); //GREEN
analogWrite(pin3, 153); //BLUE
}
void palegreen(){
//PALEGREEN
analogWrite(pin, 154); //RED
analogWrite(pin2, 255); //GREEN
analogWrite(pin3, 154); //BLUE
}
Com isto temos um Loop com as cores definidas, caso venha a criar outros métodos de cores, compartilhe com o SatellaSoft, para que possamos complementar esta matéria, veja o resultado final no Vídeo abaixo.