Created
October 26, 2017 04:26
-
-
Save Niximacco/3bcbad0f3c6f2c8046f5370bea13ce59 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Adafruit_NeoPixel.h> | |
#ifdef __AVR__ | |
#include <avr/power.h> | |
#endif | |
#define PINLEFT 15 | |
#define PINRIGHT 13 | |
#define OUTSIDE_START 0 | |
#define OUTSIDE_END 23 | |
#define MIDDLE_START 24 | |
#define MIDDLE_END 39 | |
#define INNER_START 40 | |
#define INNER_END 43 | |
#define NUM_PIXELS 44 | |
// Parameter 1 = number of pixels in strip | |
// Parameter 2 = Arduino pin number (most are valid) | |
// Parameter 3 = pixel type flags, add together as needed: | |
// NEO_KHZ800 800 KHz bitstream (most NeoPixel products w/WS2812 LEDs) | |
// NEO_KHZ400 400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers) | |
// NEO_GRB Pixels are wired for GRB bitstream (most NeoPixel products) | |
// NEO_RGB Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2) | |
// NEO_RGBW Pixels are wired for RGBW bitstream (NeoPixel RGBW products) | |
Adafruit_NeoPixel left = Adafruit_NeoPixel(44, PINLEFT, NEO_GRB + NEO_KHZ800); | |
Adafruit_NeoPixel right = Adafruit_NeoPixel(44, PINRIGHT, NEO_GRB + NEO_KHZ800); | |
// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across | |
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input | |
// and minimize distance between Arduino and first pixel. Avoid connecting | |
// on a live circuit...if you must, connect GND first. | |
void setup() { | |
left.begin(); | |
right.begin(); | |
left.show(); // Initialize all pixels to 'off' | |
right.show(); | |
} | |
void loop() { | |
// Some example procedures showing how to display to the pixels: | |
//WORKING | |
colorWipe(left.Color(100, 0, 0), 50); // Red | |
colorWipe(left.Color(0, 100, 0), 50); // Green | |
colorWipe(left.Color(0, 0, 100), 50); // Blue | |
displayREZZ(70); | |
} | |
void colorWipe(uint32_t c, uint8_t wait) { | |
// OUTSIDE | |
for(uint16_t i=0; i<NUM_PIXELS; i++) { | |
left.setPixelColor(i, c); | |
right.setPixelColor(getRight(i), c); | |
left.show(); | |
right.show(); | |
delay(wait); | |
} | |
} | |
uint16_t getRight(uint16_t left) { | |
if (left <= OUTSIDE_END) { | |
return OUTSIDE_END-left; | |
} else if (left <= MIDDLE_END) { | |
return (MIDDLE_END-left)+MIDDLE_START; | |
} else { | |
return (INNER_END-left)+INNER_START; | |
} | |
} | |
void displayREZZ(uint8_t wait) { | |
uint32_t leftREZZOutarray[96] = {left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 5, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 5, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0,0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 5, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 5, 0), | |
left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0)}; | |
uint32_t leftREZZMiddlearry[96] = {left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), | |
left.Color(0, 255 , 0), left.Color(0, 100 , 0), left.Color(0, 50 , 0), left.Color(0, 10 , 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0), left.Color(0, 0, 0)}; | |
uint32_t leftREZZCenterarry[96] = {left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), | |
left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0), left.Color(0, 255 , 0), left.Color(0, 5, 0)}; | |
for(uint16_t j=0; j<NUM_PIXELS; ++j) { | |
for(int i=0; i<NUM_PIXELS; i++) { | |
left.setPixelColor(i, leftREZZOutarray[i+j]); | |
right.setPixelColor(getRight(i), leftREZZOutarray[i+j]); | |
left.setPixelColor(47-i,leftREZZMiddlearry[i+j]); | |
right.setPixelColor(getRight(47-i), leftREZZMiddlearry[i+j]); | |
left.setPixelColor(63-i,leftREZZCenterarry[i+j]); | |
right.setPixelColor(getRight(63-i),leftREZZCenterarry[i+j]); | |
} | |
right.show(); | |
left.show(); | |
delay(wait); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment