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.

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

Postagens mais visitadas deste blog

Tá na hora de piscar LEDs de maneira melhorada

LEDs on/off com PHP, Python e RPi

PagSeguro e PHP - Usando a tela do PagSeguro (checkout redirect)