After years of only ever using my Arduino to make an LED blink, me and my roommate Clinton got the bright idea to make use my Arduino-blinking skills to build an awesome decoration for our Halloween party, inspired by similar Stranger Things walls we saw online.
To build the wall's electronics, I used an Arduino Duemilanove, two strands of WS2811 RGB LEDs, a power supply, and some other odds & ends.
The board itself is made of styrofoam with a flowered wallpaper applied to it, and wooden framed edges.
I basically followed this Adafruit wiring guide, although the lightstrand I used doesn't have the addtional data line. I then wired in the power connector (this page of the same guide)
Running the code on your own lightstrand is fairly straight-forward. Depending on your needs, you can set up the project using either the Arduino IDE, or Visual Studio Code with the Arduino extension.
- Make sure you have the latest&greatest version of the Arduino IDE installed
- Include the NeoPixel library by going to Sketch > Include Library > Manage Libraries... and searching for Adafruit NeoPixel. I'm using v1.0.6.
- You'll probably want to set your board & COM ports to the correct values... after that, just plug in your Arduino, and compile & upload!
- Make sure you have the latest&greatest version of the Arduino IDE installed
- You'll also need Visual Studio Code & the Arduino extension installed.
- You'll want to double-check the paths mentioned in .vscode/c_cpp_properties.json and ensure they point to the proper folders on your machine. After that, you should be able to plug in your Arduino, press
Ctrl+Shift+P
, and typeArduino: Upload
!
You'll want to make several changes to the code before using it to run your own lightstrip, which you can do by editing the parameters at the top of the file.
You can update the phraseCount
and the phrase
list to add your own sayings. In my testing, my Arduino Duemilanove seems to hit a memory limit with much more than ~30 phrases.
You'll also probably want to check that the #define led
statements, pixelsInStrip
, and controlPin
variables match your setup. The #define led
statements in particular need to be updated in order for the code to know which letter to light up.
In addition, the code was written to make it simple to program your own effects. I've included two example functions (effects_curated()
&& effects_shuffle()
), but you can also write your own & directly call the fx_
functions I've created, or use them as examples to write your own.
If you run into any issues you can submit them to this repository, though depending on how long we keep the wall up I'm not certain I'll be able to help much...
Feel free to fork this repository and submit PRs for any missing features or effects that you'd like to see!
Here's what it looks like in the dark, right before the Halloween party when you're slightly buzzed but still think you could be steady enough to take a video: