quinta-feira, 17 de outubro de 2013

Piscando LEDS!


Agora a brincadeira vai começar!. relativamente facil! mas muito legal!, vamos brincar com um led RGB, RGB significa respectivamente, Vermelho, Verde e Azul, as tres cores primarias!, esse led contem tres leds dentro de um, por isso as 4 pernas, apesar disso, é extremamente facil trabalhar com ele!

Como ligar um led:

Leds "aguentam" uma tensão muito pequena, queimando facilmente se for utilizado uma tensão maior que a permitida, como no arduino temos 5V nas saidas, atraves da lei de ohm, calculamos o valor do resistor para cada led, que é algo em torno de 1K. através de uma tensão aplicada em cada um deles, podemos criar 16.777.216 cores diferentes, nessa tabela da pra vermos como criar cada cor: http://www.rapidtables.com/web/color/RGB_Color.htm





Como ligar os leds no protoboard

Seguindo este exemplo:


O "cabo" amarelo, representa a cor AZUL do led, passando atraves de um resistor
O "cabo" verde, representa a cor VERDE do led, passando atraves de um resistor
O "cabo" laranja, representa a cor VERMELHO do led, passando atraves de um resistor

Segue um video representando o funcionamento do mesmo




Código

float RGB1[3];
float RGB2[3];
float INC[3];

int red, green, blue;

int RedPin = 11;
int GreenPin = 10;
int BluePin = 9;
int del = 1;
int del1 = 1;
void setup()
{
    randomSeed(analogRead(0));

    RGB1[0] = 0;
    RGB1[1] = 0;
    RGB1[2] = 0;

    RGB2[0] = random(256);
    RGB2[1] = random(256);
    RGB2[2] = random(256);
}

void loop()
{
    randomSeed(analogRead(0));

    for (int x=0; x<3; x++) {
       INC[x] = (RGB1[x] - RGB2[x]) / 256;
    }

    for (int x=0; x<256; x++) {
       red = int(RGB1[0]);
       green = int(RGB1[1]);
       blue = int(RGB1[2]);

       analogWrite (RedPin, red);
       analogWrite (GreenPin, green);
       analogWrite (BluePin, blue);
       delay(del);

       RGB1[0] -= INC[0];
       RGB1[1] -= INC[1];
       RGB1[2] -= INC[2];
    }

    for (int x=0; x<3; x++) {
       RGB2[x] = random(556)-300;
       RGB2[x] = constrain(RGB2[x], 0, 255);
       delay(del1);
    }
}

Nenhum comentário:

Postar um comentário