LED RBG com Arduino

Vamos entender como funciona este tipo de LED e emitir alguns feixes coloridos.

 Escrevendo testes automatizados com PHPUnit

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.