#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define NUM_LEDS 21 // 7 segmentos * 3 LEDs por segmento
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, LED_PIN, NEO_GRB + NEO_KHZ800);
// Mapeamento dos segmentos conforme o número
const int segment[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 0, 0, 1, 1, 1, 1}, // 3
{0, 0, 1, 0, 1, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 1, 1, 1, 0, 1, 1}, // 6
{0, 0, 0, 1, 1, 1, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 0, 1, 1, 1, 1, 1} // 9
};
int segmentIndex, ledIndex;
void setup() {
strip.begin();
}
void loop() {
for (int currentNumber = 0; currentNumber <= 9; currentNumber++){
updateDisplay(currentNumber);
delay(1000);
}
}
void updateDisplay(int number) {
for (int i = 0; i < NUM_LEDS; i++) {
strip.setPixelColor(i, 0, 0, 0); // Desliga os LEDs
}
// Acende os segmentos
for (int i = 0; i < 7; i++) {
segmentIndex = segment[number][i];
for (int j = 0; j < 3; j++) {
ledIndex = i * 3 + j;
if (segmentIndex == 1){
strip.setPixelColor(ledIndex, 255, 0, 0); // Vermelho
} else strip.setPixelColor(ledIndex, 0, 0, 0); //Apagado
}
}
strip.show();
}