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.
Tags:
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por