#include <FastLED.h>
#define PIN 1 // Pino de dados da matriz de LEDs
#define Numleds 8 // Número de LEDs na matriz
const int analogPin = A0; // pino do potenciometro
CRGB leds[Numleds];
int cores[Numleds] = {0x008000,0x008000,0x008000,0xFFFF00,0xFFFF00,0xFFFF00,0x006400,0x006400};
//se o número de leds for alterado, essas cores também precisam ser
void setup() {
FastLED.addLeds<WS2812, PIN, RGB>(leds, Numleds); // GRB ordering is typical
}
void loop() {
int sensorReading = analogRead(analogPin); // lê o potenciometro
int ledLevel = map(sensorReading, 0, 1023, 0, Numleds); // mapeia o resultado entre 0 e o n de LEDs
for (int thisLed = 0; thisLed < Numleds; thisLed++) { // varre a matriz de LEDs
if (thisLed < ledLevel) { // se o nível lido for maior que a posição do LED na matriz
leds[thisLed] = cores[thisLed]; // acende o LED
}
else { // caso contrário
leds[thisLed] = CRGB::Black; // desliga o resto dos pinos
}
FastLED.show();
}
}