Controle de uma Fita LED RGB com o Arduino
Introdução
Neste tutorial vamos explicar como usar o seu Arduino para controlar a fita LED RGB de forma simples e prática. A fita possui LEDs com as cores primárias vermelho, verde e azul, por isso o nome RGB (Red, Green e Blue em inglês). Ela permite a possibilidade de formar outras cores misturando a intensidade de cada cor primária, por exemplo, com a ajuda de um potenciômetro. Agora que você sabe que é possível controlar a fita LED RGB, que tal começar o projeto?
Lista de Materiais
Lista completa de produtos
comprarBlackBoard UNO R3
Cabo USB AB 1.50m
Fita LED RGB - 1 metro
Fonte Chaveada 12V 5A
Adaptador P4 Fêmea - Borne
Resistor 300Ω - Pacote com 10 unidades
Protoboard 400 Pontos
WorkPlate 400 - Preta
Jumpers Macho-Macho x40 Unidades
A lista de materiais foi dimensionada para um metro de fita LED, portanto é necessário redimensionar os componentes se seu projeto for utilizar um comprimento maior.
Primeiros Passos
Nessa primera etapa do tutorial, vamos acionar as cores da fita LED de maneira simples e rápida.
Preparando a Fita LED RGB
Antes de começar o projeto é necessário preparar a fita LED RGB, para que você consiga conectar ela ao seu circuito. Primeiro, você deve preparar a fita LED utilizando jumpers M/M de cor vermelha, verde e azul para conectar a fita à sua protoboard. Para isso, corte um lado de seu jumper para efetuar a solda nos pads de conexão da fita LED.
ATENÇÃO: Corte somente um lado do jumper porque a outra ponta (com o pino) vai ser conectada a protoboard.
Depois, descasque a ponta recém cortada e solde-a no pad respectivo da fita LED. Veja o resultado na imagem a seguir.
Circuito
Agora você pode montar o circuito abaixo.
Programação
Carregue o código a seguir na sua BlackBoard.
Entendendo o Código
A primeira parte do código consiste em declarar as variáveis referentes aos pinos de cada cor da fita LED, dando a você a possibilidade de criar 7 cores diferentes. Na inicialização do programa (função setup()
), configuramos os pinos como saídas. Em seguida, na função loop()
, controlamos os pinos de cada cor para escolher como os LEDs acendem.
No trecho abaixo, repare que na primeira linha o pino referente à cor vermelha está em HIGH, o que significa que o LED vermelho é ligado, enquanto as outras cores estão em LOW, portanto desligadas. A mesma lógica é usada na sequência para ligar apenas as luzes verde e azul.
No último trecho do código, inserido abaixo, usamos as cores vermelha e azul em HIGH e a cor verde em LOW, criando assim a cor roxa.
O Que Deve Acontecer
Veja o resultado na animação a seguir.
Controle com Potenciômetros
Que tal agora acrescentar potenciômetros no seu projeto para misturar as cores da fita LED? Assim você pode utilizar as cores primárias para deixar seu projeto com cores diferentes.
Circuito
Monte o circuito como o da imagem abaixo.
Programação
Carregue o código a seguir na sua BlackBoard.
Entendendo o Código
Com a adição dos potenciômetros, o código controla a intensidade de cada cor da fita LED RGB utilizando sinais PWM, portanto passamos a usar a função analogWrite()
.
O PWM (modulação por largura de pulso) é um método que utiliza um pino digital para variar a energia sobre a carga. Essa variação é controlada pelo duty cycle (ciclo de trabalho), que é, para uma frequência fixa, a proporção do tempo em que a tensão fica em nível lógico alto no período da onda quadrada. Veja o exemplo abaixo, onde as linhas verdes indicam os intervalos dos ciclos da onda (período) e a linha preta representa o sinal PWM.
A função analogWrite()
no Arduino é utilizada para definir o duty cycle de uma saída PWM e utiliza um parâmetro de 0 a 255, valores que equivalem a 0 e 100 % respectivamente. Como usamos os potenciômetros, cujas leituras vão de 0 a 1023, precisamos converter os valores lidos para valores dentro da faixa de leitura da função. Para isso utilizamos a função map()
.
A função map()
converte um valor dentro de um intervalo para o valor equivalente dentro de um segundo intervalo. Por exemplo, considerando o intervalo de leitura potenciômetro, que é de 0 a 1023, e o intervalo aceito pela funçãoanalogWrite()
, que é de 0 a 255, transformamos o valor lido de 512, que equivale a 50 % do potenciômetro, para o valor de 50 % da função, que é 127.
O Que Deve Acontecer
Diferentemente da primeira etapa, agora a intensidade de cada cor primária da fita LED RGB está sendo controlada pelos potenciômetros, dando a possibilidade de deixar sua fita LED RGB com a cor que você desejar.
Solução de Problemas
Caso uma cor não ligue, verifique as conexões dos jumpers e a posição dos transistores TIP122. Verifique também que a sua fonte de 12 V está alimentando corretamente o conjunto.