Projetos

Controlando Fitas de LED RGB com o Arduino

Eletrogate 2 de setembro de 2021

Introdução

Como já sabemos, o Arduino nos permite controlar diversos tipos de componentes eletrônicos. No post de hoje você vai aprender a controlar uma fita de LED RGB utilizando apenas transistores, resistores e um Arduino UNO. Confira abaixo toda a explicação sobre o funcionamento do circuito:


O que são Fitas de LED?

Fitas de LED são fontes de luz flexíveis usadas para os mais diversos fins. Graças à sua gama de cores, seu baixo custo e principalmente sua versatilidade, são empregadas em diversos cenários como iluminação de fundo e composição de cenários, como sancas de gesso, móveis, etc.

Existem basicamente três tipos de fita de LED no mercado: as fitas de cor sólida, fitas RGB simples e fitas RGB endereçáveis. Vamos conhecer um pouco mais sobre cada uma delas:

Fita de LED de cor sólida

São as fitas de LED mais simples encontradas no mercado. Sua alimentação é fixada em 12V e sua coloração é fixa ao longo de toda a fita. Se diferencia das demais por possuir apenas dois contatos para alimentação, como é possível observar na imagem abaixo:

Fita de LED RGB simples

São as fitas de LED mais comuns do mercado. Sua alimentação é fixada em 12V e cada LED é composto por 3 cores: vermelho, verde e azul (daí a origem do termo em inglês RGB – Red, Green, Blue) e, através da combinação dessas cores, conseguimos obter diversas outras faixas, trazendo uma enorme vantagem sobre o modelo anterior, mesmo apresentando coloração fixa ao longo de toda a fita. São fitas que podem ser programadas através de circuitos eletrônicos que fazem o chaveamento das cores, mas também podem ser acionadas de maneira simples, ao serem conectadas a uma fonte de 12V na cor desejada. Apresenta quatro contatos de alimentação, sendo 1 positivo e 3 negativos, que fazem o controle da coloração dos LEDs:

Fita de LED RGB Endereçável

São as fitas de LED mais modernas do mercado, graças a um circuito integrado existente dentro de cada LED (lembrando que, como o modelo anterior, são RGB) que nos permite programar individualmente a cor de cada LED. Isso faz com que seja possível gerar efeitos visuais que os modelos anteriores não são capazes, por ficarem limitados a uma única cor ao longo de toda a fita por vez. As fitas de LED endereçáveis são alimentadas exclusivamente na tensão de 5V e necessitam de um microcontrolador para instruir aos circuitos integrados de cada um dos LEDs em qual faixa de cor devem trabalhar. São as mais caras da lista e se diferem das demais por possuírem apenas 3 terminais, sendo VCC, GND e Sinal:


É Possível Controlar Fitas de LED com o Arduino?

SIM!!! Como dito anteriormente, as fitas RGB nos permitem programar as cores através de algum microcontrolador, seja ele controlando chaves eletrônicas (como transistores, para as fitas RGB tradicionais) ou controlando diretamente cada um dos LEDs, no caso das fitas endereçáveis.

Para o post de hoje, vamos te ensinar a controlar uma fita RGB tradicional utilizando o Arduino e alguns poucos componentes. Veja os materiais necessários:

 


Materiais Necessários para o Projeto Fitas de LED RGB com o Arduino

Para esse projeto, vamos precisar de:

cta_cart


Montagem do Circuito

Para o post de hoje, vamos utilizar uma fita RGB tradicional. Você pode conferir o diagrama de montagem na imagem a seguir:

É importante lembrar que você pode utilizar a fita RGB do tamanho que desejar, desde que dimensione corretamente a fonte de alimentação. Note também que utilizamos pinos PWM do Arduino. É de suma importância que sempre utilize pinos PWM (os que possuem um ~ na frente do número), pois precisaremos variar o pulso de saída entre 0 e 255, gerando assim as cores.

Programação

Antes de apresentar os códigos, precisamos falar um pouco sobre o padrão RGB e como você pode obter diversas cores, além de apresentar a função analogWrite, que é a chave para que nosso programa funcione. Veja só:

Como dito anteriormente, RGB é a sigla para Red (vermelho), Green (verde) e Blue (azul) e trata-se de um sistema aditivo de cores, ou seja, combina tons de luz para formar as cores desejadas. Seus valores variam de 0 a 255 (PWM) e, misturando diferentes níveis em cada uma das 3 cores é possível obter diversas outras tonalidades. Uma forma muito simples de observar isso é usando a paleta de cores de algum software editor de imagem/desenho, como o Photoshop ou até mesmo o Paint, que vamos mostrar aqui.

                                                                                      Cores do padrão RGB. Créditos: PUC-RJ

Para ter acesso à paleta de cores do Paint, basta clicar em Editar Imagem. Na janela que for exibida, você tem os valores RGB para a cor selecionada.

Na imagem a seguir você pode observar como são obtidas 4 cores no padrão RGB: Vermelho, Verde, Azul e Branco:

Na tabela abaixo, você pode conferir a combinação de valores para formar outras cores à partir das primárias, como Branco, Magenta, Amarelo e Ciano:

Tendo em mente o conceito por trás das combinações que formam o RGB, podemos partir para a função analogWrite, responsável por controlar o PWM no Arduino. Como sabemos, os pinos digitais trabalham apenas com 0 ou 1 (HIGH ou LOW) através da função digitalWrite. No caso das fitas, precisamos variar esse sinal digital na saída do Arduino para que outras cores sejam formadas e por isso utilizamos a função analogWrite, além das portas compatíveis com a modulação por largura de pulso (PWM). De forma simples, o PWM é uma artimanha da eletrônica digital para controlar a potência de uma carga através de pulsos que variam de 0 (desligado) a 255 (tensão máxima). Seu funcionamento é simples e se baseia em ligar e desligar a saída em altas frequências, variando o ciclo médio de trabalho ativo (duty cycle) em função do tempo em que o sinal enviado está em nível alto. A consequência disso é uma variação percentual da tensão aplicada na carga, o que resulta, por exemplo, na alteração da velocidade de rotação de um motor ou no brilho de um LED.

Para entender melhor seu funcionamento, veja o gif abaixo:


Programação do Circuito

Apresentada toda a teoria e o diagrama do circuito, vamos aos códigos. Preparamos para você 3 efeitos: pisca pisca RGB, strobo e fade. Você pode conferir o código, uma breve descrição sobre o efeito e seu funcionamento logo a seguir, lembrando que toda a explicação do código está comentada ao longo do mesmo.

 Pisca Pisca RGB:

Esse efeito faz com que os leds que compõem a fita apresentem as cores vermelho, verde, azul e branco a cada 1 segundo, reiniciando o ciclo após a última.

/* ===== Controlando fita de LED RGB com o Arduino ===== 
   
   Autor: Eletrogate 
   Data: 01/09/2021
   
   ===================================================== */ 
//nomeando os pinos PWM do arduino conforme as cores do padrão RGB
   #define R 11
   #define G 10
   #define B 9

//variáveis de controle para cada cor do padrão RGB
   int vermelho, verde, azul;

void setup() {
//setando os pinos PWM do Arduino como saída
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT); 
}

void loop(){
//Acende apenas a cor VERMELHA e aguarda 1s
  analogWrite(G, 0);
  analogWrite(B, 0);
  analogWrite(R, 255);
  delay(1000);

//Acende apenas a cor VERDE e aguarda 1s
  analogWrite(R, 0);
  analogWrite(G, 255);
  delay(1000);

//Acende apenas a cor AZUL e aguarda 1s
  analogWrite(G, 0);
  analogWrite(B, 255);
  delay(1000);

//Acende todas as cores no máximo formando a luz branca e aguarda 1s
  analogWrite(R, 255);
  analogWrite(G, 255);
  analogWrite(B, 255);
  delay(1000);

//reinicia o processo
}

Strobo:

Esse efeito faz com que os LEDs pisquem rapidamente na cor desejada. Para esse exemplo, escolhemos a cor BRANCA.

/* ===== Controlando fita de LED RGB com o Arduino ===== 
   
   Autor: Eletrogate 
   Data: 01/09/2021
   
   ===================================================== */ 

//nomeando os pinos PWM do arduino conforme as cores do padrão RGB
   #define R 11
   #define G 10
   #define B 9

//variáveis de controle para cada cor do padrão RGB
   int vermelho, verde, azul;

void setup() {
//setando os pinos PWM do Arduino como saída
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT); 
}

void loop(){
//liga os leds formando a cor branca por 1s
  analogWrite(R, 255);
  analogWrite(G, 255);
  analogWrite(B, 255);
  delay(100);

//desliga todas as cores por 1s
  analogWrite(R, 0);
  analogWrite(G, 0);
  analogWrite(B, 0);
  delay(100);

//reinicia o processo
}

Fade

Esse é um dos efeitos mais bonitos visualmente. Ele faz com que os LEDs presentes na fita transitem entre todas as tonalidades de cores possíveis do padrão RGB, variando os valores de PWM para cada cor e tornando possível a transição automática entre elas.

/* ===== Controlando fita de LED RGB com o Arduino ===== 
   
   Autor: Eletrogate 
   Data: 01/09/2021
   
   ===================================================== */ 

//nomeando os pinos PWM do arduino conforme as cores do padrão RGB
   #define R 11
   #define G 10
   #define B 9

//variáveis de controle para cada cor do padrão RGB
   int vermelho, verde, azul;

void setup() {
//setando os pinos PWM do Arduino como saída
  pinMode(R, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(B, OUTPUT); 
}

void loop() { 
//incrementa a cor vermelha gradativamente, atingindo a cor magenta
  for (vermelho = 0; vermelho <= 255; vermelho++){
    analogWrite(R, vermelho);
    delay(10);
  }
//remove a cor azul gradativamente, atingindo a cor vermelha pura
  for (azul = 255; azul >= 0; azul--){
    analogWrite(B, azul);
    delay(10);
  }
//incrementa a cor verde gradativamente, atingindo a cor amarela
  for (verde = 0; verde <= 255; verde++){
    analogWrite(G, verde);
    delay(10);
  }
//remove a cor vermelha gradativamente, atingindo a cor verde pura
  for (vermelho = 255; vermelho >= 0; vermelho--){
    analogWrite(R, vermelho);
    delay(10);
  }
//adiciona a cor azul gradativamente, atingindo a cor ciano
  for (azul = 0; azul <= 255; azul++){
    analogWrite(B, azul);
    analogWrite(R, azul);
    delay(10);
  }
//remove a cor verde gradativamente, atingindo a cor azul pura
  for (verde = 255; verde >= 0; verde--){
    analogWrite(G, verde);
    analogWrite(R, verde);
    delay(10);
  }
//reinicia o ciclo
}

Conclusão

Concluímos aqui a primeira parte de dois posts sobre o controle de fitas de LED com o Arduino. No próximo post da série falaremos sobre as fitas endereçáveis e suas particularidades, além da programação com nosso querido Arduino. Esperamos que esse post tenha contribuído para aumentar seu conhecimento sobre o mundo da programação e da eletrônica.

Fique agora com um spoiler dos efeitos que poderemos criar com a fita que utilizaremos na parte 2 desse post.

Um forte abraço e até a próxima!


Se você se interessou em montar esse circuito e criar novos efeitos, compartilhe os resultados com a gente no Instagram. Visite também a nossa loja e confira os produtos e condições especiais que só a Eletrogate pode proporcionar!

Tenha a Metodologia Eletrogate na sua Escola! Conheça nosso Programa de Robótica Educacional.


Sobre o Autor


Samuel Martins
@samuel.martins192

Cursando Eletroeletrônica no SENAI CETEL. Fanático por eletrônica, automação, impressão 3D e afins, dedico meu tempo livre a pesquisas e projetos ligados às principais áreas de interesse, pratico aeromodelismo e sou curioso por astrofotografia.


Eletrogate

2 de setembro de 2021

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!