/*
Projeto: controle um anel de LED RGB x 16 WS2812
Autor: André Silveira
Data: 23/11/2019
*/
#include "Adafruit_NeoPixel.h"
#define LED_PIN 5 // Pino digital do "DIN" do módulo WS2812
#define NUM_LEDS 16 // Número de Leds do módulo Led WS2812
#define BRIGHTNESS 255 // Intensidade do LED (0 até 255)
int i; // Variável que identifica a posição do LED no anel (0 até 15)
int r; // Variável valor da cor Red
int g; // Variável valor da cor Green
int b; // Variável valor da cor Blue
int v = 0; // Variável para contador
Adafruit_NeoPixel leds(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
leds.begin();
leds.clear();
}
void loop() {
for(i = 0; i < NUM_LEDS; i++) {
if ((i-1) >= 0) { // Identifica LED anterior
leds.setPixelColor((i-1), leds.Color(0,0,0)); // Apaga o LED anterior
}
v = v + 1; // Contabiliza de 0 até 3
if (v > 2) { // Limpa contador quando for iqual 3
v = 0;
}
switch (v) { // Identifica variável do contador
case 1: // Se contador iqual a 1
r=255;
g=0;
b=0;
break;
case 2: // Se contador iqual a 2
r=0;
g=255;
b=0;
break;
default: // Se contador qualquer valor
r=0;
g=0;
b=255;
break;
}
leds.setPixelColor(i, leds.Color(r,g,b));
leds.show();
delay(300);
}
leds.clear();
leds.show();
} |