quinta-feira, 10 de dezembro de 2015

Tutorial 4: Controlando LED RGB através do Arduino via botões


Fala Makers, ficamos um tempo sem postar tutoriais e esse tempo foi por uma boa causa, estamos preparando muitos outros tutoriais e Kit's para facilitar seu aprendizado. Esse é um tutorial bem simples para servir de decoração para tudo o que você quiser dar um brilho, lembrando que o natal está ai e você poderá criar sua própria luz de natal. Mande sugestões dos tutoriais que você quer ver por aqui, e não se esqueça de curtir nosso canal no Youtube (em breve colocaremos esse vídeo no ar) e curta nossa página no Facebook. Agora vamos ao que interessa:

O LED RGB pode lhe proporcionar mais de 16 milhões de cores, lembrando que temos 3 cores básicas vermelho (red), verde (green) e o azul (blue), podemos fazer misturas dessas cores que resultarão em mais outras 4 cores que também podemos considerar básicas, as cores são essas abaixo:

Figura 1- RGB
Mas como consigo formar mais de 16 milhões de cores?

Figura 2 - Imagem com todas as cores possíveis do sistema RGB

A explicação é simples, cada cor tem um variação de 1byte, ou seja cada um desses três componentes tem um valor de intensidade de 1 a 256 (256 x 256 x 256 = 16777216). Nesse tutorial você irá fazer isso manualmente através de botões, agora vamos a montagem mais abaixo.


Figura 3 - Montagem do projeto
Se você tem dúvidas de como usar um protoboard ou não sabe o que é protoboard acesse esse link: Tutorial 3: Comunicação Wireless utilizando Arduino e os Módulos RF 433Mhz. O seu funcionamento é bem simples, você utiliza os dois primeiros botões para controle do LED vermelho onde o da esquerda (com sinal de -) você diminui seu brilho até atingir 0 e o da direita  (com sinal de +) você aumenta o brilho até atingir 255, com os outros botões a função será a mesma. Cada LED precisa de uma alimentação específica para seu funcionamento , se isso não for respeitado você pode ter o brilho do seu LED reduzido ou até a queima do mesmo. O LED vermelho funciona com 2,5volts, verde com 3volts e azul com 3volts , ou seja precisamos de um resistor diferenciado para o vermelho para que não haja sua queima.
Vamos usar um resistor de 150 Ohm para o vermelho e 100 Ohm para o verde e azul conforme a figura abaixo:

Figura 4 - Posição e resistores usados
Para facilitar seu uso deixando menos poluído e suscetível a mal contato, fizemos a montagem 
do LED junto aos resistores, isso irá ajudar muito em seu projeto final. Ele já vem com as cores facilitando seu uso visualmente e evitando a queima, lembrando que ele foi desenvolvido para ser utilizado com arduino, ou seja 5volts. Você pode adquirir esse produto nesse link:

Figura 5 - LED RGB Customizado para Arduino


 Logo abaixo temos o projeto montado, ele é bem simples e qualquer pessoa pode fazer sem nenhum conhecimento prévio de eletrônica, em breve estaremos postando o vídeo tutorial.

Figura 6 - Montagem completa

Sketch 

/*Densenvolvido por Marco Silva MSmaker 08/12/2015
Para dúvidas nos mande email
Email: universomakers@gmail.com
*/

const int R = 9; 
const int G = 10; 
const int B = 11; 
const int RDOW=2;
const int RUP=3;
const int GDOW=4;
const int GUP=5;
const int BDOW=6;
const int BUP=7;

int pwmr=0;
int pwmg=0;
int pwmb=0;
 
void setup()
{
    pinMode(2,INPUT);
    pinMode(3,INPUT);
    pinMode(4,INPUT);
    pinMode(5,INPUT);
    pinMode(6,INPUT);
    pinMode(7,INPUT);
    pinMode(9,OUTPUT); 
    pinMode(10,OUTPUT); 
    pinMode(11,OUTPUT); 
 }
 
void loop()
{
//LED R (Vermelho)
//**********************************************
   if(digitalRead(RDOW)==0)
   {
     delay(10); 
     if(pwmr>=0)   
        {
          if(pwmr!=0)  
          {
          pwmr--;
          }
             analogWrite(R,pwmr);       
        }
   }
        if(digitalRead(RUP)==0)
       {
         delay(10);
         if(pwmr<=255) 
         analogWrite(R, pwmr++);   
       }
       
 //LED G (Verde)  
//********************************************** 
        if(digitalRead(GDOW)==0)
   {
      delay(10); 
     if(pwmg>=0)   
        {
          if(pwmg!=0)  
          {
          pwmg--;
          }
           analogWrite(G, pwmg);    
        }  
   
   }
        if(digitalRead(GUP)==0)
       {
         delay(10);
         if(pwmg<=255)  
         analogWrite(G, pwmg++);   
       }
       
 //LED B (Azul)  
//********************************************** 
        if(digitalRead(BDOW)==0)
 {
      delay(10); 
     if(pwmb>=0)   
        {
          if(pwmb!=0)  
          {
          pwmb--;
          }
           analogWrite(B, pwmb);    
        }  
   
   }
        if(digitalRead(BUP)==0)
       {
         delay(10);
         if(pwmb<=255)  
         analogWrite(B, pwmb++);   
       }
  //**********************************************
}


Abra sua IDE Arduino e copie e cole o código acima, qualquer dúvida e sugestões nos mande um email e curta nossas páginas.




Nenhum comentário:

Postar um comentário