/* Beambox - The Tower that Glows to Your Commands http://www.instructables.com/id/BeamBox-A-tower-that-glows-to-your-commands/ By PerfectPixel 2016 Code by JDC928 (source here: http://doityourselfchristmas.com/forums/showthread.php?31079-Arduino-code-for-driving-RGB-Addressable-pixels-from-Vixen ) Edited by PerfectPixel Requires Adafruits NEOPIXEL library instead of the FastLED library Neopixel Library Available Here: https://github.com/adafruit/Adafruit_NeoPixel To Get Started Download Vixen ( http://www.vixenlights.com/ ) and follow the instructions below */ /* VIXEN Setup: * In Vixen display setup... * - Add an element group containing one element for each pixel attached to arduino * - Configure the 'Color Handling' as "They can be any color: Full RGB" * - Add a "Generic Serial Controller" * - Name it what you want (Although... Jdc928IsAwesome is great controller name) * - Set the channel count to 3x the number of Pixels you have * - Save, then configure these options * - Com Port: choose the correct port for your arduino's serial * - Baud Rate: 115200 (or whatever you changed it to below) * - Click OK * - Check the box "Send a text header" * - Type "VIXStart" in the header text box * - Click "OK" * * - Click and highlight the newly added Element in the elements list * - Click and highlight the newly created controller * - Your "Total Patch Points" and "Output" counts should match * - Click "Patch Elements to Controllers" * - Click OK and you should be ready to go * * * You should now be able open a Sequence add some effects to the new channels and see the strips responding accordingly */ /** * Pixel Strip Setup * Strips setups vary but generally as follows * - If your using a large number of strips you will * probably want to power them externally. * * - Connect external V+ to strip Vin * - Connect external Gnd to strip Gnd * - Connect external Gnd to Arduino Gnd * - Connect Strip Data to proper pin on Arduino * - Connect Strip DataClock to proper pin on Arduino if not using ws2812 */ #include // This is the Neo-Pixel library (ws2812) // Change to the library for your pixel types // Suggest using a library created by Adafruit // so the function names will be the same #define DPIN 9 // Change this to the pin# connected to your pixels DataIn // Will probably need to define a ClockPin for other pixel int PixelCount = 18; // Set this to the number of Pixels connected int bugLevel = 0; // This is just a way I manage turning debugging over serial on/off /* Sets up the NeoPixel Strip object Replace with proper Object initiation for your pixel types */ Adafruit_NeoPixel strip = Adafruit_NeoPixel(PixelCount, DPIN, NEO_GRB + NEO_KHZ800); void setup() { delay(100); // A delay for a reason I can't remember. I can live with one in the setup. strip.begin(); // Get strip started strip.show(); // Initialize all pixels to 'off' Serial.begin(115200); // Start the Serial communication } void loop() { // START LOOP if (Serial.available()>2) // Wait for a few bytes to be recieved { waitForVixenHeader(); // Header check function for (int pixCount=0; pixCount