//Viral Science www.viralsciencecreativity.com www.youtube.com/c/viralscience
//WS2812B RGB LED DICE
#include <FastLED.h> //Download & Install FastLED.h Library
//Pin Defination for Arduino - Uncomment below 2 lines if you are using Arduino and comment the below ATtiny85 Lines
#define LEDPin 3 //WS2812b LED Strip
#define TouchPin 2 //Touch Sensor
//Pin Defination for ATtiny85 - Uncomment below 2 lines if you are using ATtiny85 and comment the above Arduino Lines
//#define LEDPin 1 //WS2812b LED Strip
//#define TouchPin 0 //Touch Sensor
#define NUM_LEDS 7
CRGB leds[NUM_LEDS];
void setup()
{
FastLED.addLeds<WS2812, LEDPin, GRB>(leds, NUM_LEDS);
FastLED.clear();
pinMode(TouchPin, INPUT_PULLUP);
//StartPattern();
}
void loop()
{
for (int i = 0; i < 6; i++)
{
diceNumber(i);
delay(30);
if (digitalRead(TouchPin) == HIGH)
{
int x = 30;
for (int j = 0; j < 15; j++)
{
i++;
if (i == 6)
{
i = 0;
}
delay(x);
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 0, 0);
FastLED.show();
delay(x);
x += 5;
diceNumber(i);
}
while (digitalRead(TouchPin) == LOW) {}
for (int k = 0; k < 3; k++)
{
delay(100);
}
}
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 0, 0);
FastLED.show();
delay(30);
}
}
void diceNumber(int n)
{
switch (n)
{
case 0: //Dice Roll 1
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(255, 165, 155);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 0, 0);
FastLED.show();
break;
case 1: //Dice Roll 2
leds[0] = CRGB(255, 255, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(255, 255, 0);
FastLED.show();
break;
case 2: //Dice Roll 3
leds[0] = CRGB(0, 255, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(0, 255, 0);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 255, 0);
FastLED.show();
break;
case 3: //Dice Roll 4
leds[0] = CRGB(0, 200, 255);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 200, 255);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(0, 200, 255);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 200, 255);
FastLED.show();
break;
case 4: //Dice Roll 5
leds[0] = CRGB(100, 0, 255);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(100, 0, 255);
leds[3] = CRGB(100, 0, 255);
leds[4] = CRGB(100, 0, 255);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(100, 0, 255);
FastLED.show();
break;
case 5: //Dice Roll 6
leds[0] = CRGB(255, 0, 150);
leds[1] = CRGB(255, 0, 150);
leds[2] = CRGB(255, 0, 150);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(255, 0, 150);
leds[5] = CRGB(255, 0, 150);
leds[6] = CRGB(255, 0, 150);
FastLED.show();
break;
}
}
void StartPattern ()
{
leds[0] = CRGB(0, 0, 0);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(255, 100, 100);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(0, 0, 0);
FastLED.show();
delay(500);
leds[0] = CRGB(255, 255, 20);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(255, 255, 20);
FastLED.show();
delay(500);
leds[0] = CRGB(100, 255, 100);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(0, 0, 0);
leds[3] = CRGB(100, 255, 100);
leds[4] = CRGB(0, 0, 0);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(100, 255, 100);
FastLED.show();
delay(500);
leds[0] = CRGB(20, 255, 255);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(20, 255, 255);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(20, 255, 255);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(20, 255, 255);
FastLED.show();
delay(500);
leds[0] = CRGB(150, 50, 255);
leds[1] = CRGB(0, 0, 0);
leds[2] = CRGB(150, 50, 255);
leds[3] = CRGB(150, 50, 255);
leds[4] = CRGB(150, 50, 255);
leds[5] = CRGB(0, 0, 0);
leds[6] = CRGB(150, 50, 255);
FastLED.show();
delay(500);
leds[0] = CRGB(255, 20, 120);
leds[1] = CRGB(255, 20, 120);
leds[2] = CRGB(255, 20, 120);
leds[3] = CRGB(0, 0, 0);
leds[4] = CRGB(255, 20, 120);
leds[5] = CRGB(255, 20, 120);
leds[6] = CRGB(255, 20, 120);
FastLED.show();
delay(500);
}