Controlando LED RGB com arduíno
Antes de começar, verifique se os LEDs que você possui são de ânodo ou cátodo comum, pois o esquema muda de acordo com o tipo escolhido. O esquema considera os com ânodo comum, ou seja, vou ligar o positivo na perna maior.
Para entender o projeto, não deixe de ler a matéria sobre ânodo, cátodo e PWM.
#include <Pin.h>
Pin red(9);
Pin green(10);
Pin blue(11);
int cores[][3] = {
{255, 0, 0}, //Vermelho
{0, 255, 0}, //Verde
{0, 0, 255}, //Azul
{255, 255, 0}, //Amarelo
{255, 0, 255} //Rosa
};
//Aplica as variações de intensidade de cor
void toColor(int r, int g, int b, int time) {
red.setGraduation(r);
green.setGraduation(g);
blue.setGraduation(b);
delay(time);
}
void setup() {
randomSeed(analogRead(0)); //Melhora a qualidade do random();
}
void loop() {
int cor = random(0, 5); //Escolhe uma cor aleatória
toColor(cores[cor][0], cores[cor][1], cores[cor][2], 300);
}
O set de cores pode ser personalizado, como eu fiz no código acima, ou completamente aleatório. Para isso é só trocar a linha...
toColor(cores[cor][0], cores[cor][1], cores[cor][2], 300);
Para a linha...
toColor(random(255), random(255), random(255), 300);
Aí a cor será selecionada aleatoriamente entre uma gama impressionante de cores. Faça o upload do código e curta o show!
Para entender o projeto, não deixe de ler a matéria sobre ânodo, cátodo e PWM.
O circuito
Liguei o pino de 3.3v (pois com 5v fica muito claro) a um resistor de 300ohms e, daí, no ânodo do LED. Os pinos 9, 10 e 11 controlarão as cores vermelho, verde e azul, respectivamente.
O circuito...
Conectado aos devidos pinos...
O código
Note que será necessário ter a biblioteca Pin.h para que o projeto funcione. Confira a última versão.#include <Pin.h>
Pin red(9);
Pin green(10);
Pin blue(11);
int cores[][3] = {
{255, 0, 0}, //Vermelho
{0, 255, 0}, //Verde
{0, 0, 255}, //Azul
{255, 255, 0}, //Amarelo
{255, 0, 255} //Rosa
};
//Aplica as variações de intensidade de cor
void toColor(int r, int g, int b, int time) {
red.setGraduation(r);
green.setGraduation(g);
blue.setGraduation(b);
delay(time);
}
void setup() {
randomSeed(analogRead(0)); //Melhora a qualidade do random();
}
void loop() {
int cor = random(0, 5); //Escolhe uma cor aleatória
toColor(cores[cor][0], cores[cor][1], cores[cor][2], 300);
}
O set de cores pode ser personalizado, como eu fiz no código acima, ou completamente aleatório. Para isso é só trocar a linha...
toColor(cores[cor][0], cores[cor][1], cores[cor][2], 300);
Para a linha...
toColor(random(255), random(255), random(255), 300);
Aí a cor será selecionada aleatoriamente entre uma gama impressionante de cores. Faça o upload do código e curta o show!
Comentários
Postar um comentário