#include <OctoWS2811.h>
const int ledsPerStrip = 56;
DMAMEM int displayMemory[ledsPerStrip*6];
int drawingMemory[ledsPerStrip*6];
const int config = WS2811_GRB | WS2811_800kHz;
OctoWS2811 leds(ledsPerStrip, displayMemory, drawingMemory, config);
int SegementsActive[10][7] = {
{1,1,1,0,1,1,1}, //value 0
{0,0,1,0,0,1,0}, //value 1
{1,0,1,1,1,0,1}, //value 2
{1,0,1,1,0,1,1}, //value 3
{0,1,1,1,0,1,0}, //value 4
{1,1,0,1,0,1,1}, //value 5
{1,1,0,1,1,1,1}, //value 6
{1,0,1,0,0,1,0}, //value 7
{1,1,1,1,1,1,1}, //value 8
{1,1,1,1,0,1,0} //value 9
};
int LedSegmentMap[10][7][8] = {
{//Map for 0
{0,1,2,3,4,5,6,7},
{8,9,10,11,12,13,14,15},
{16,17,18,19,20,21,22,23},
{32,33,34,35,36,37,38,39},
{40,41,42,43,44,45,46,47},
{48,49,50,51,52,53,54,55}
},
{//Map for 1
{16,17,18,19,20,21,22,23},
{40,41,42,43,44,45,46,47}
},
{//Map for 2
{0,1,2,3,4,5,6,7},
{16,17,18,19,20,21,22,23},
{24,25,26,7,28,29,30,31},
{32,33,34,35,36,37,38,39},
{48,49,50,51,52,53,54,55}
},
{//Map for 3
{0,1,2,3,4,5,6,7},
{16,17,18,19,20,21,22,23},
{24,25,26,7,28,29,30,31},
{40,41,42,43,44,45,46,47},
{48,49,50,51,52,53,54,55}
},
{//Map for 4
{8,9,10,11,12,13,14,15},
{16,17,18,19,20,21,22,23},
{24,25,26,7,28,29,30,31},
{40,41,42,43,44,45,46,47}
},
{//Map for 5
{0,1,2,3,4,5,6,7},
{8,9,10,11,12,13,14,15},
{24,25,26,7,28,29,30,31},
{40,41,42,43,44,45,46,47},
{48,49,50,51,52,53,54,55}
},
{//Map for 6
{8,9,10,11,12,13,14,15},
{24,25,26,7,28,29,30,31},
{32,33,34,35,36,37,38,39},
{40,41,42,43,44,45,46,47},
{48,49,50,51,52,53,54,55}
},
{//Map for 7
{0,1,2,3,4,5,6,7},
{16,17,18,19,20,21,22,23},
{40,41,42,43,44,45,46,47}
},
{//Map for 8
{0,1,2,3,4,5,6,7},
{8,9,10,11,12,13,14,15},
{16,17,18,19,20,21,22,23},
{24,25,26,7,28,29,30,31},
{32,33,34,35,36,37,38,39},
{40,41,42,43,44,45,46,47},
{48,49,50,51,52,53,54,55}
},
{//Map for 9
{0,1,2,3,4,5,6,7},
{8,9,10,11,12,13,14,15},
{16,17,18,19,20,21,22,23},
{24,25,26,7,28,29,30,31},
{40,41,42,43,44,45,46,47}
}
};
#define RED 0xFF0000
#define GREEN 0x00FF00
#define BLUE 0x0000FF
#define YELLOW 0xFFFF00
#define PINK 0xFF1088
#define ORANGE 0xE05800
#define WHITE 0xFFFFFF
#define OFF 0X000000
void setup() {
leds.begin();
//leds.show();
}
void loop() {
/*
//Countdown timer
for(int x = 0; x < 10; x++){
setSecond(x,RED);
delay(1000);
resetLeds();
}
delay(4000);
*/
setSecond(1,BLUE);
}
void setSecond(int digit, int color) {
//int digit = 1;
int ledsPerSeg = 8;
//int segstatus[7] = SegementsActive[digit]; // where 'value' is 0-9
for (int seg = 0; seg < 7; seg++) {
for (int led = 0; led < ledsPerSeg; led++) {
leds.setPixel(LedSegmentMap[digit][seg][led], color);
//leds.setPixel(LedSegmentMap[6][0][0], color);
}
}
leds.show();
}
void resetLeds() {
for (int led = 0; led < 56; led++) {
leds.setPixel(led, OFF);
}
}