fbpixel
Etiquetas: , ,
0
(0)

O LED RGB permite a obtenção de um grande painel de cores. Ele é composto por três mini LEDs – vermelho, verde e azul (daí o nome RGB) – posicionados próximos o suficiente para que as suas luzes se misturem. Desse modo, ele é controlado como três LEDs independentes.

Um LED RGB pode ser utilizado, por exemplo, para criar uma atmosfera de iluminação em casa ou para dar informações sobre o estado de um sistema (Verde – tudo ok, Azul – processamento, Vermelho – erro).

Material

  • Arduino
  • 3 Cabos M/M
  • Placa de ensaio
  • Resistor 220 Ohm
  • RGB LED

Diagrama de montagem do LED RGB

Os pinos de controle de cor (R,G,B) são ligados às saídas PWM da placa Arduino. Se usar outras saídas que não as PWM (as saídas digitais), as cores intermediárias não aparecerão e o LED irá saltar de uma cor para outra.

Geralmente, os valores de corrente suportados pelos LEDs não estão disponíveis. Não se esqueça de colocar uma resistência entre o cátodo e a terra do Arduino para proteger o LED.

Código para gestão de um LED RGB

Neste exemplo, passamos de uma cor para outra gradualmente. Para isso, variamos os valores R,G,B que enviamos para os pinos correspondentes.

Neste caso, é mais conveniente e legível utilizar uma função que atribui o valor PWM à saída correta para cada cor. Para isso, criamos a função lightRGB que toma 3 inteiros como entrada, – que são o comando pwm – , e escrevemos este valor para os pinos RGB.

void lightRGB(int r, int g, int b){
  analogWrite(RED, r);
  analogWrite(GREEN, g);
  analogWrite(BLUE, b);
}

Uma vez criada a função, ela pode ser utilizada no código principal (função loop) e controlar três saídas com uma linha de código. Aqui está o código completo:

// Pins
#define BLUE 3
#define GREEN 5
#define RED 6
#define delayTime 10 // fading time
int MAX_LUM = 255;
int redVal,greenVal,blueVal;
void setup()
{
 pinMode(RED, OUTPUT);
 pinMode(GREEN, OUTPUT);
 pinMode(BLUE, OUTPUT);
 digitalWrite(RED, HIGH);
 digitalWrite(GREEN, LOW);
 digitalWrite(BLUE, LOW);
}
void loop()
{    
 redVal = MAX_LUM; // choose a Val between 1 and 255 to change the color.
 greenVal = 0;
 blueVal = 0;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out red bring green full when i=255
 {
   redVal -= 1;
   greenVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
 
 redVal = 0;
 greenVal = MAX_LUM;
 blueVal = 0;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out green bring blue full when i=255
 {
   greenVal -= 1;
   blueVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
 
 redVal = 0;
 greenVal = 0;
 blueVal = MAX_LUM;
 
 for(int i = 0; i < MAX_LUM; i += 1) // fades out blue bring red full when i=255
 {
   // The following code has been rearranged to match the other two similar sections
   blueVal -= 1;
   redVal += 1;
   lightRGB(redVal, greenVal, blueVal);
   delay(delayTime);
 }
}
void lightRGB(int r, int g, int b){
 analogWrite(RED, r);
 analogWrite(GREEN, g);
 analogWrite(BLUE, b);
}

Controlar um LED RGB pode parecer trivial, mas é um excelente exercício para começar a “brincar” com o Arduino. Um RGB pode não ser muito útil para a criar de efeitos de iluminação. Neste caso, é melhor optar por fitas de LED endereçáveis.

Aplicação

  • Mudar a cor do LED de acordo com a temperatura ambiente
  • Criar uma lâmpada com mudança de cor controlada por um controle remoto IV

Fonte

Retrouvez nos tutoriels et d’autres exemples dans notre générateur automatique de code
La Programmerie

How useful was this post?

Click on a star to rate it!

Average rating 0 / 5. Vote count: 0

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?