Controlando LED RGB com Arduino

O uso de leds para iluminação tem aumentado muito , principalmente devido aos leds de maior potência de iluminação com vida util praticamente ilimitada.

O programa abaixo é um exemplo de como controlar a cor de um led RGB a partir de um Arduino :

/*
* Codigo para testar led RGB
* Ativa as cores principais dos leds em sua intensidade maxima e as misturas entre elas
* Baseado no exemplo constante no site do Arduino
* Jeronimo Avelar Filho <jeronimo@blogdoje.com.br>
*/


// Saida
int greenPin = 9; // conectado ao led verde no pino 09
int bluePin = 10; // conectado ao led azul no pino 10
int redPin = 11; // conectado ao led vermelho no pino


// Variaveis do Programa


int wait = 500; // 500 ms menor valor = transicoes rapidas
int i ;


void setup()
{

pinMode(redPin, OUTPUT); // configura os pinos como saida
pinMode(greenPin, OUTPUT); // não é necessario no Arduino007
pinMode(bluePin, OUTPUT);
i = 1 ;

}

// Main program
void loop()
{

switch (i) { //

case 1: // Vermelho
ativaRgb(255,0,0) ;
break;

case 2: // Verde
ativaRgb(0,255,0) ;
break;

case 3: // Azul
ativaRgb(0,0,255) ;
break;

case 4: // Amarelo
ativaRgb(255,255,0);
break;

case 5: // Cyano
ativaRgb(0,255,255) ;
break;

case 6: // Magenta
ativaRgb(255,0,255) ;
break;

case 7: // Branco ( todos os leds acessos)
ativaRgb(255,255,255);
break;

}
delay(wait) ;
i=i+1 ;
if( i > 7) i= 1 ;

}

void ativaRgb(int redVal,int greenVal, int blueVal) {

analogWrite(redPin, redVal); // Escreve o valor do PWM do led vermelho
analogWrite(greenPin, greenVal); // Escreve o valor do PWM do led verde
analogWrite(bluePin, blueVal); // Escreve o valor do PWM do led azul

}

A função analogWrite é a responsável pelo controle da luminosidade do led. Se o valor de redVal em analogWrite(redPin, redVal) for 255 então o led acenderá na intensidade máxima , se for 0 estará apagado e os valores intermediários farão o led acender nas intensidades intermediárias.

O led usado no teste foi um catodo comum de 4 pinos :
Led RGB

Até o final do ano vou comprar os leds de alta potência para iluminar a arvore de natal , conforme prometido a “dileta esposa”.

Posts relacionados:
Liberada Arduino IDE versão 0016
AVR Technical Library DVD
AvrFreaks

Links:
Arduino: Controlando via PWM
Wikipedia: Modelo de Cores RGB
Philips: Led Luxeon de alta potencia

18 thoughts on “Controlando LED RGB com Arduino”

  1. ola galera blz gostaria de comprar ums leds rgb de 4 terminais mai gostaria de augem que me vendesem com preço abaixo de 2 reais augem ai tem como me vender quero ums 40 leds caso augem ai tenha para vender entre em contato comigo XXXXXX (a) xxxxxxx xxxxx

  2. Caro Jeronimo,

    Sou um atual aluno da graduacao na Escola Politecnica da USP e estou gerenciando um projeto que envolve um controle de uma matriz de ‘pontos de luz’ (que provavelmente serao LEDs RGB). Vi seu blog e percebi que era exatamente o que eu precisava entao gostaria de saber se voce nao poderia tirar algumas duvidas minhas ou mesmo me ajudar a encontrar uma boa solucao para meu projeto. Em caso afirmativo por favor me contate pelo e-mail XXXXXX @ xxxxxxxx.xxxxx. Grato…

  3. Vitor ,
    Um microcontrolador , em especial a linha AVR, possibilita construir diversos tipos de controladores para iluminacao com led´s. Entrarei em contato pvt com voce.

  4. Rubens , voce ja tem uma definicao do hardware que vai usar para formar as imagens ? Vai utilizar o Arduino para isso ?

  5. Boa Tarde, muito bom o site.
    Gostaria de saber aonde consigo comprar uma placa arduino, estou montando um projeto com LEDs e está muito difícil achar alguma placa parecida, ja rodei a Ifigenia inteira. Muito Obrigado.

  6. Gustavo ,
    Para comprar um Arduino montado e pronto para usar , só no exterior , por exemplo : http://www.sparkfun.com/commerce/categories.php?cPath=2_103

    Outra opção é montar ou participar de uma oficina de montagem. O Giuliano Obici está organizando uma serie de oficinas de montagem no Sesc Pompeia em São Paulo para outubro e novembro de 2007 . Entre em contato com ele no forum do Arduino : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1190922854

  7. ALGUÉM ME AJUDA A CONTROLAR LED´S PELO COMPUTADOR E A PROGRAMAR CHIP´S OU SEI LÁ O QUÊ.
    PRECISO APRENDER O PRINCÍPIO DESSAS COISAS.
    GOSTARIA QUE ALGUÉM ME DITASSE O QUE DEVO COMPRAR E FAZER. QUE DEUS PAGUE QUALQUER AJUDA A ESSE LOUCO.

  8. Alguem pode me ajudar, estou querendo comprar um controlador de leds, se chama pr4403, ou algo parecido..agradeco desde ja…

  9. Bruno , pesquisei rapidamente no google sobre o controlador e me pareceu ser um produto recem lançado e ainda sem uma distribuição de larga escala. O chip ainda não consta do catalogo de distribuidores americanos como a Digikey. Sugiro que voce entre em contato com o fabricante ( http://www.prema.com ) e explique a sua necessidade para usar o chip e corre o risco até de voce ganhar algumas amostras de graça para testar.
    Boa Sorte !!

  10. Fugindo um pouco do assunto em questão, estou precisando controlar aquelas matrizes de LED usando o Arduino e o CI MAX7219, mas não encontro este componente em lugar algum. Teria alguma sugestão?? desde já agradeço!

    meu e-mail é lougard@hotmail.com

  11. Marcelo ,
    Voce tem a possibilidade de importa-lo diretamente de algum distribuidor internacional com , obviamente, os custos associados de importação. Agora este chip é caro , custa em torno de 14 dolares nos EUA e talvez valha a pena pesquisar um pouco mais, elaborar no software ou usar componentes mais baratos e faceis de encontrar para a solução
    Outras possibilidades são :
    – conectar o Arduino diretamente a matriz de leds : http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix
    – usar mux e demux para controlar as matrizes de leds. Alguns exemplos abaixo.
    http://www.arduino.cc/playground/Learning/4051
    http://www.instructables.com/id/Charlieplexing-7-segment-displays/?ALLSTEPS

    Boa Sorte !!

  12. Estou muito precisando tirar umas duvidas sobre esse assunto, será que podia entrar em contato comigo?

    Obrigada

Comments are closed.