#include <Adafruit_NeoPixel.h>
#define LED_COUNT 35
#define LED_PIN_1 6 // Пин первого сегмента
#define LED_PIN_2 7 // Пин второго сегмента
#define LED_PIN_3 8 // Пин третьего сегмента
// Инициация ленты 1, 2, 3 сегментов соответственно
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN_1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip1(LED_COUNT, LED_PIN_2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip2(LED_COUNT, LED_PIN_3, NEO_GRB + NEO_KHZ800);
// setup() function -- runs once at startup --------------------------------
// Массив светодиодов для цифр в сегменте
int Pins_2[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,22,23,24,25,26,27,28,29};
int Pins_3[] = {0,1,2,3,4,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29};
int Pins_4[] = {10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,30,31,32,33,34};
int Pins_5[] = {0,1,2,3,4,10,11,12,13,14,15,16,17,18,19,25,26,27,28,29,30,31,32,33,34};
//Прописать поледовательность оценок по порядку
int bal[] = {2,3,4,5,4,5,3,4,3,4,2,2,3,4,5,4,3,4,5,4,3,2,5,5,5,5,5,5,4,4,3,2,5}; //последовательность оценок. кратно 3м
int NumBal = sizeof(bal)/sizeof(int);
int num =0;
int num1 =1;
int num2 =2;
int nowTime=0;
int period = 1; //Время показа цифры, сек
void setup() {
strip.begin();
strip1.begin();
strip2.begin();
strip.show();
strip1.show();
strip2.show();
strip.setBrightness(255);
strip1.setBrightness(255);
strip2.setBrightness(255);
}
void loop() {
Set_Number("strip" , strip.Color( 255, 255, 0),bal[num]);
strip.show();
Set_Number("strip1" , strip.Color( 255, 0, 255),bal[num1]);
strip1.show();
Set_Number("strip2" , strip.Color( 0, 255, 255),bal[num2]);
strip2.show();
nowTime = millis();
while(millis() - nowTime < period*1000){}
strip.clear();
strip1.clear();
strip2.clear();
num+=3;
num1+=3;
num2+=3;
if(num>=NumBal) num = 0;
if(num1>=NumBal) num1 = 1;
if(num2>=NumBal) num2 = 2;
}
void Set_Number(String display, uint32_t color, int number) {
switch(number){
case 2:
if(display == "strip"){
for(int i=0; i<25; i++) strip.setPixelColor(Pins_2[i], color);
}
if(display == "strip1"){
for(int i=0; i<25; i++) strip1.setPixelColor(Pins_2[i], color);
}
if(display == "strip2"){
for(int i=0; i<25; i++) strip2.setPixelColor(Pins_2[i], color);
}
break;
case 3:
if(display == "strip"){
for(int i=0; i<25; i++) strip.setPixelColor(Pins_3[i], color);
}
if(display == "strip1"){
for(int i=0; i<25; i++) strip1.setPixelColor(Pins_3[i], color);
}
if(display == "strip2"){
for(int i=0; i<25; i++) strip2.setPixelColor(Pins_3[i], color);
}
break;
case 4:
if(display == "strip"){
for(int i=0; i<20; i++) strip.setPixelColor(Pins_4[i], color);
}
if(display == "strip1"){
for(int i=0; i<20; i++) strip1.setPixelColor(Pins_4[i], color);
}
if(display == "strip2"){
for(int i=0; i<20; i++) strip2.setPixelColor(Pins_4[i], color);
}
break;
case 5:
if(display == "strip"){
for(int i=0; i<25; i++) strip.setPixelColor(Pins_5[i], color);
}
if(display == "strip1"){
for(int i=0; i<25; i++) strip1.setPixelColor(Pins_5[i], color);
}
if(display == "strip2"){
for(int i=0; i<25; i++) strip2.setPixelColor(Pins_5[i], color);
}
break;
}
}