#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel neo(20, 8, NEO_GRB + NEO_KHZ800); // prvkov je 20 na pine č. 8
byte cisloEfektu = 1;
void setup()
{
neo.begin();
pinMode(0, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(0), zmenaEfektu, FALLING);
}
void loop()
{
switch(cisloEfektu)
{
case 1: efekt1();
break;
case 2: efekt2();
break;
case 3: efekt3();
break;
default:
// total error !!!
break;
}
}
void zmenaEfektu()
{
cisloEfektu++;
if (cisloEfektu == 4)
cisloEfektu = 1;
}
void efekt1()
{
for (int i = 0; i < 20; i++)
{
if (i % 2 == 0)
neo.setPixelColor(i, neo.Color(255, 0, 0));
else
neo.setPixelColor(i, neo.Color(0, 0, 0));
}
neo.show();
delay(500);
for (int i = 0; i < 20; i++)
{
if (i % 2 == 0)
neo.setPixelColor(i, neo.Color(0, 0, 0));
else
neo.setPixelColor(i, neo.Color(0, 0, 255));
}
neo.show();
delay(500);
}
void efekt2()
{
neo.clear();
for (int i = 0; i < 20; i++)
{
int r = random(3);
if (r == 0)
neo.setPixelColor(i, neo.Color(255, 0, 0));
else if (r == 1)
neo.setPixelColor(i, neo.Color(0, 255, 0));
else
neo.setPixelColor(i, neo.Color(0, 0, 255));
neo.show();
delay(50);
}
for (int i = 19; i >= 0; i--)
{
neo.setPixelColor(i, neo.Color(0, 0, 0));
neo.show();
delay(50);
}
}
void efekt3()
{
for (int i = 0; i < 20; i++)
{
neo.clear();
neo.setPixelColor(i, neo.Color(255, 255, 255));
neo.show();
delay(50);
}
}