//Подключение библиотек
#include <Adafruit_NeoPixel.h>
//Обьявляем переменные, константы и массивы
#define RGB1 5
#define RGB2 6
#define RGB3 7
#define NUMPIXELS 8
int i, m = 255;
bool Color[3][8] = {
{0,1,1,1,0,0,0,1},
{1,0,1,0,1,0,0,1},
{1,1,0,0,0,1,0,1},
};
long NewColor[] = {
0xFF0000,0x00FF00,0x0000FF,0x00FFFF,0xFF00FF,0xFFFF00,0xFFFFFF,0x000000
};
//Обьявялем объекты
Adafruit_NeoPixel Ring1(NUMPIXELS, RGB1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel Ring2(NUMPIXELS, RGB2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel Ring3(NUMPIXELS, RGB3, NEO_GRB + NEO_KHZ800);
void setup() {
for (int i=2; i<=7; i=i+1) {
pinMode(i, OUTPUT);
digitalWrite(i, 1);
Ring1.begin(); Ring2.begin(); Ring3.begin();
Clear();
}
}
void loop() {
for(i=0; i<NUMPIXELS;i+=1) {
Led(); Ring_1(); Ring_2(); Ring_3();
Ring1.show(); Ring2.show(); Ring3.show();
delay(1000);
}
Clear();
delay(1000);
}
//Объявляем функции
void Clear() {
Ring1.clear(); Ring2.clear(); Ring3.clear();
Ring1.show(); Ring2.show(); Ring3.show();
}
void Led() {
digitalWrite(4, Color[0][i]);
digitalWrite(3, Color[1][i]);
digitalWrite(2, Color[2][i]);
}
void Ring_1() {
Ring1.setPixelColor(i, m*!Color[0][i], m*!Color[1][i], m*!Color[2][i]);
}
void Ring_2() {
Ring2.clear(); Ring2.show();
Ring2.setPixelColor(i,NewColor[i]);
}
void Ring_3() {
Ring3.fill(NewColor[i],0,NUMPIXELS);
}