terça-feira, 4 de dezembro de 2012

24W RGB Light Strip

Fita RGB:


Essa fita de LED RGB é muito especial, tem um comprimento de 5 metros, que é o máximo para essas fitas que possuem os led's em serie, tem potencia de 24W o que proporciona uma iluminação muito forte e ativa. As luzes são bem definidas, com o controle das cores é possível fazer varias brincadeiras e iluminar diversos ambientes.



A fita possui fica auto-colante 3M, assim fica fácil deixar fixo em qualquer tipo de superfície. O pacote vem muito bem embalado, e nenhum dos leds veio queimado.
Se desejar pode cortar a fita em diversas partes, já possui marcação de onde cortar e os pinos para fazer a solda de novos fios, muito útil.



Eu recomendo a compra dessa fita porque da pra fazer diversas coisas com ela, eu pretendo usar para iluminar meu quarto de forma inteligente, um sensor faz a leitura das cores no meu monitor, essas cores são passadas para o Arduino, assim ele manda o comando para fita replicar as cores do monitor, criando um ambiente diferenciado.
As luzes podem ser usadas em comercio e afins, chama muita atenção pelo brilho.



Especificações:

Cor: Branca
Material: PU
Tipo de Emissor: 3528 SMD LED
Total de Emissores:  270
Tensão de entrada: 12V
Potencia: 24W
Fluxo luminoso: 900 ~ 1200lm
Tipo de conector do cabo de fita: 4P ( VCC, RED_GND,GREEN_GND, BLUE_GND)



Programa Arduino para Controle:

Esse programa tem vários efeitos cadastrados e um botão de interrupção, quando o botão é pressionado o efeito muda, todos efeitos usam PWM.

int ledPin_red = 9;    
int ledPin_green = 10;
int ledPin_blue = 11;

int botao = 0;
int buzz  = 7;
volatile int select = 0;
unsigned long button_time = 0;  
unsigned long last_button_time = 0; 
int tempo=30;

long numero_aleatorio;


void setup()  
  Serial.begin(9600);
  randomSeed(analogRead(0));
  pinMode(buzz,OUTPUT);
  attachInterrupt(botao, troca, RISING);

void troca()
{
  button_time = millis();
  if (button_time - last_button_time > 300)
    {
      digitalWrite(buzz,HIGH);
      apaga_leds();
        if(select==0)
        {
          select=1;
        }
        else if(select==1)
          {
            select=2;
          }
        else if(select==2)
          {
            select=3;
          }
        else if(select==3)
          {
            select=4;
          }
        else if(select==4)
          {
            select=5;
          }
        else if(select==5)
          {
            select=6;
          }
        else if(select==6)
          {
            select=7;
          }
        else if(select==7)
          {
            select=8;
          }
        else if(select==8)
          {
            select=9;
          }
        else if(select==9)
          {
            select=10;
          }
        else if(select==10)
          {
            select=11;
          }
       else if(select==11)
          {
            select=12;
          }
       else if(select==12)
          {
            select=13;
          }
       else if(select==13)
          {
            select=14;
          }
        else 
           select=0; 
           
    last_button_time = button_time;
    digitalWrite(buzz,LOW);
  }
}

void loop()  
{
  //fadeLED(ledPin_red,100); 
  fade_red();
  fade_green();
  fade_blue();
  fade_all();
  fade_red_green();
  fade_red_blue();
  fade_green_blue();
  fade_rgb(); 
  fade_verm_voleta();
  fade_verde_amarelo();
  fade_blue_teal();
  pisca_aleatorio();
  pisca_aleatorio_vermelho();
  pisca_aleatorio_verde();
  pisca_aleatorio_azul();
}

void fade_red()
{
  if(select==0)
    {
     Serial.println("Estou no select 0");
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_red, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_red, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_green()
{
  if(select==1)
    {
     Serial.println("Estou no select 1");
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_green, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_green, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_blue()
{
  if (select==2)
    {
     Serial.println("Estou no select 2");
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_blue, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_blue, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_all()
{
  if (select==3)
    {
     Serial.println("Estou no select 3");
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_green, fadeValue);
        analogWrite(ledPin_blue, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_green, fadeValue);
        analogWrite(ledPin_blue, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_red_green()
{
  if(select==4)
    {
       Serial.println("Estou no select 4");
       for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_green, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_green, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_red_blue()
{
  if(select==5)
    {
       Serial.println("Estou no select 5");
       for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_blue, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_red, fadeValue);
        analogWrite(ledPin_blue, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fade_green_blue()
{
  if(select==6)
    {
     Serial.println("Estou no select 6");
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(ledPin_green, fadeValue);
        analogWrite(ledPin_blue, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(ledPin_green, fadeValue);
        analogWrite(ledPin_blue, fadeValue);           
        delay(tempo);                            
      } 
    }
}

void fadeLED(int pin, int tempo)
{
     for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) 
      { 
        analogWrite(pin, fadeValue);            
        delay(tempo);                            
      } 
    
      for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) 
      { 
        analogWrite(pin, fadeValue);     
        delay(tempo);                            
      } 
}

void fade_rgb()
{
  if(select==7)
    {
      Serial.println("Estou no select 7");
      int r, g, b;
     
      //vermelho para violeta
      for (r = 0; r < 255; r++) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      } 
      //violeta para vermelho
      for (b = 255; b > 0; b--) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      } 
      
      //verde para amarelo
      for (g = 0; g < 255; g++) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      } 
      //amarelo para verde
      for (r = 255; r > 0; r--) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      } 
      
      // fade from green to teal
      for (b = 0; b < 255; b++) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      } 
      // fade from teal to blue
      for (g = 255; g > 0; g--) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      }
    }
}

void fade_verm_voleta()
{
    if(select==8)
    {
      Serial.println("Estou no select 8");
      int r,b;
      for (r = 0; r < 255; r++) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      } 
      for (b = 0; b < 255; b++) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      }
      
      for (r = 255; r > 0; r--) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      }     
      for (b = 255; b > 0; b--) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      }
    }
}

void fade_verde_amarelo()
{
    if(select==9)
    {
      Serial.println("Estou no select 9");
      int g,r;
      for (g = 0; g < 255; g++) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      } 
      for (r = 255; r > 0; r--) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      } 
      
      for (g = 255; g > 0; g--) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      } 
      for (r = 0; r < 255; r++) 
      { 
        analogWrite(ledPin_red, r);
        delay(tempo);
      } 
    }
}

void fade_blue_teal()
{
    if(select==10)
    {
      Serial.println("Estou no select 10");
      int b,g;
      for (b = 0; b < 255; b++) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      } 
      for (g = 255; g > 0; g--) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      }
      
      for (b = 255; b > 0; b--) 
      { 
        analogWrite(ledPin_blue, b);
        delay(tempo);
      } 
      for (g = 0; g < 255; g++) 
      { 
        analogWrite(ledPin_green, g);
        delay(tempo);
      }
    }
}

void pisca_aleatorio()
{
  if(select==11)
    {
      Serial.println("Estou no select 11");
      numero_aleatorio = random(256);
      analogWrite(ledPin_red, numero_aleatorio);
      delay(500);
      numero_aleatorio = random(256);
      analogWrite(ledPin_green, numero_aleatorio);
      delay(500);
      numero_aleatorio = random(256);
      analogWrite(ledPin_blue, numero_aleatorio);
    }  
}

void pisca_aleatorio_vermelho()
{
  if(select==12)
    {
      analogWrite(ledPin_green, 0);
      analogWrite(ledPin_blue , 0);
      Serial.println("Estou no select 12");
      numero_aleatorio = random(256);
      analogWrite(ledPin_red, numero_aleatorio);
      delay(500);
    }
}

void pisca_aleatorio_verde()
{
  if(select==13)
    {
      analogWrite(ledPin_red, 0);
      analogWrite(ledPin_blue , 0);
      Serial.println("Estou no select 13");
      numero_aleatorio = random(256);
      analogWrite(ledPin_green, numero_aleatorio);
      delay(500);
    }
}

void pisca_aleatorio_azul()
{
  if(select==14)
    {
      analogWrite(ledPin_green, 0);
      analogWrite(ledPin_red , 0);
      Serial.println("Estou no select 14");
      numero_aleatorio = random(256);
      analogWrite(ledPin_blue, numero_aleatorio);
      delay(500);
    }
}

void apaga_leds()
{
  analogWrite(ledPin_red ,  0);
  analogWrite(ledPin_green, 0);
  analogWrite(ledPin_blue , 0);
}

Vermelho:
  


Verde:


Azul:


Todas cores juntas:


Vídeo:


Nenhum comentário:

Postar um comentário