LED RBG com Arduino

Gunnar CorreaGunnar Correa21/03/2015 - 14.273 acessos

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


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.

Pinos do LED RGB, cada um representa uma cor diferente.
Pinos do LED RGB, cada um representa uma cor diferente.

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

Ligação do LED na protoboard
Ligação do LED na protoboard

 

Arduino

Ligação dos jumpers no Arduino
Ligação dos jumpers no 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.

 



Arduino Arduino Uno LED RBG Diodo Cores Programação Linguagem C Jumpers Proroboard Combinação Feixe

Compartilhe nas redes sociais



Gunnar Correa

Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Fórum

Ficou com alguma dúvida? utilize nosso fórum de perguntas e respostas, lá nossa comunidade poderá te ajudar.

https://forum.satellasoft.com