#include <Button.h>;
#include <Adafruit_NeoPixel.h>
uint8_t pins[] = {2,3,4,5,6,7,8,9,10,11,12,13};
uint8_t pins_left = sizeof(pins);
uint16_t cicle=0;
int swpinStart = 15;
#define LED_PIN 16
#define LED_COUNT 16
//int ledred = 16;
//int ledyellow = 17;
//int ledgreen = 18;
int piezpin = 19;
Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pinMode(swpinStart , INPUT);
strip.begin();
//pinMode(ledred, OUTPUT);
//pinMode(ledyellow, OUTPUT);
//pinMode(ledgreen, OUTPUT);
pinMode(piezpin, OUTPUT);
Serial.begin(115200);
for(auto p: pins) pinMode(p, OUTPUT);
for(auto p: pins) digitalWrite(p, HIGH);
randomSeed(analogRead(A0));
delay(1000);
}
void loop() {
if(digitalRead(swpinStart) == HIGH){
for (int i = 0; i < 16; i++)
{
strip.setPixelColor(i, strip.Color(255, 0, 0)); // Красный цвет.
}
strip.show();
tone(piezpin, 800, 100);
delay(1000);
strip.clear();
for (int i = 0; i < 16; i++)
{
strip.setPixelColor(i, strip.Color(255, 255, 0)); // Красный цвет.
}
strip.show();
tone(piezpin, 900, 200);
delay(1000);
for (int i = 0; i < 16; i++)
{
strip.setPixelColor(i, strip.Color(0, 255, 0)); // зелёный цвет, т.е. выключено.
}
strip.show();
tone(piezpin, 1000, 1000);
delay(1000);
/* digitalWrite(ledred, HIGH);
tone(piezpin, 800, 100);
delay(1000);
digitalWrite(ledred, LOW);
digitalWrite(ledyellow, HIGH);
tone(piezpin, 900, 200);
delay(1000);
digitalWrite(ledyellow, LOW);
digitalWrite(ledgreen, HIGH);
tone(piezpin, 1000, 1000);
*/
while(pins_left) {
uint8_t r = random(pins_left--);
for(auto p: pins) {
Serial.println(cicle);
if(!digitalRead(p) || r-- == 0){
digitalWrite(p,LOW);
cicle++;
}
}
delay(random(100 , 1000));
}
}
}