Boa noite a todos, estou lendo o livro do Arduino Básico e estou me deparando com várias dúvidas no projeto 8.

O resultado é bem simples, faz com que as 3 lâmpadas pisquem e formem várias cores,  porém a fórmula é bem complexa para mim. Para isso peço a ajuda de vocês.

 

//projeto 8 - lampada humor

float RGB1[3];

float RGB2[3];

float INC[3];

 

int red,green,blue;

 

int redpin=11;

int greenpin=10;

int bluepin=9;

 

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(100);

   

    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(1000);

  }

}

 Dúvida

1)Na linha float RGB1[3]; o [3] refere-se aos pinos 11,10 e 9?

2)Qual a função desta frase, float INC[3]; ,no projeto ?

3) RGB1[1]=0; , o 0 é para a lâmpada iniciar apagada?

4) Por que subtrair RGB1 por RGB2 e depois dividir por 256 neste cógido:

for(int x=0;x<3;x++){

    INC[x]=(RGB1[x]-RGB2[x]/256);}

5) Por fim, não entendi o restante:

 

  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(100);

   

    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(1000);

Sei que a fórmula é bem grande mas para muitos deve ser fácil de ser estudada. Peço a ajuda de vocês.

Obg.

Exibições: 326

Responder esta

Respostas a este tópico

RGB1[3] significa que a variavel RGB1 será um array de 3 posições, o mesmo para INC[3].

Não, RGB1[1]=0 nao significa que a porta vai ser iniciada com nivel logico baixo, voce apenas deu o valor 0 pra essa variavel.

Primeiro ele divide RGB2 por 256, e ai sim ele subtrai de RGB1, regras da matematica, divisão vem primeiro. Deve ser apenas alguma forma de dar um valor mais aleatorio, nao da pra saber assim só olhando o código.

Quanto ao resto, só tem loop e instruções basicas. estude mais.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço