diff --git a/School/vg2/borg/demos/dice.ino b/School/vg2/borg/demos/dice.ino new file mode 100644 index 0000000..d2ac3e6 --- /dev/null +++ b/School/vg2/borg/demos/dice.ino @@ -0,0 +1,62 @@ +#include +#include + +#define NUM_LEDS 54 +#define DATA_PIN 7 +#define COLOR (CRGB) 0x00FF00 + +CRGB leds[NUM_LEDS]; + +void setup() +{ + FastLED.addLeds(leds, NUM_LEDS); + + randomSeed(analogRead(0)); +} + +void loop() +{ + roll(random(1,7), 0, leds); + mirror(0, leds); + FastLED.show(); + delay(1500); +} + + +void roll(byte n, byte side, CRGB* leds) { + setColor({side, 255, 255}, (CRGB) 0, leds); + switch (n) { + case 1: + setColor({side,1,1}, COLOR, leds); + break; + case 2: + setColor({side,2,0}, COLOR, leds); + setColor({side,0,2}, COLOR, leds); + break; + case 3: + setColor({side,2,0}, COLOR, leds); + setColor({side,1,1}, COLOR, leds); + setColor({side,0,2}, COLOR, leds); + break; + case 4: + setColor({side,0,0}, COLOR, leds); + setColor({side,2,0}, COLOR, leds); + setColor({side,0,2}, COLOR, leds); + setColor({side,2,2}, COLOR, leds); + break; + case 5: + setColor({side,0,0}, COLOR, leds); + setColor({side,2,0}, COLOR, leds); + setColor({side,1,1}, COLOR, leds); + setColor({side,0,2}, COLOR, leds); + setColor({side,2,2}, COLOR, leds); + break; + case 6: + setColor({side, 0, 255}, COLOR, leds); + setColor({side, 2, 255}, COLOR, leds); + break; + default: + printError((CRGB) 0xFF0000, leds); + break; + } +}