#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel neo(20, 4, NEO_GRB + NEO_KHZ800);
int nh;
int crTime1 = 0;
int i = 0;
int num = 0;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(A0));
neo.begin();
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), button, FALLING);
}
void loop() {
if(num == 0){
if(i < 20){
for(i = 0; i < 20; i++){
nh = random(0,3);
if(nh == 0){
neo.setPixelColor(i, 255, 0, 0);
}
else if(nh == 1){
neo.setPixelColor(i, 0, 255, 0);
}
else if(nh == 2){
neo.setPixelColor(i, 0, 0, 255);
}
neo.show();
delay(50);
}
}
else{
for(i = 19; i > 0; i--){
neo.setPixelColor(i, 0, 0, 0);
neo.show();
delay(50);
}
}
}
else if(num == 1){
for(int j = 0; j < 20; j++){
if(j%2 == 0){
neo.setPixelColor(j, 255, 0, 0);
neo.show();
}
else{
neo.setPixelColor(j, 0, 0, 0);
neo.show();
}
}
delay(500);
for(int j = 0; j < 20; j++){
if(j%2 == 1){
neo.setPixelColor(j, 0, 0, 255);
neo.show();
}
else{
neo.setPixelColor(j, 0, 0, 0);
neo.show();
}
}
delay(500);
}
else if(num == 2){
for(int i = 0; i < 20; i++){
neo.setPixelColor(i, 255, 255, 255); //white
neo.show();
delay(50);
if(i == 20){
i = 0;
}
neo.setPixelColor(i, 0, 0, 0);
neo.show();
}
}
}
void button() {
if(num == 0){
num = 1;
}
else if(num == 1){
num = 2;
}
else if(num == 2){
num = 2;
}
}