Introduction: Stranger Things Lights With Arduino

Stranger Things is a really amazing series and their lights inspired me to build my own lights to display a message with the Arduino

Step 1: Requirements

Step 2: Building the Circuit

Building the circuit for this project is relatively straightforward and requires no soldering skills at all. To first start off,

  1. Strip the wiring off both ends of the string of lights. We do not need its connectors and will be using our own
  2. Connect the 5V and GND wires from the string of lights and to the converter jack. This will be used to power both the lights and the Arduino
  3. On the other end of the wire, connect the 5V and GND to the 5V and GND pins of the Arduino. That means that our Arduino will be drawing power from the LED strips which are connected to the power adapter. The reason we chose to do it this way is that we can power everything off one power adapter. If we swapped it the other way (have the Arduino power the lights), the Arduino would not have been able to provide the necessary current for the lights.
  4. Finally, connect the data pin to the Arduino. The Arduino will be sending instructions through this pin

Step 3: Setting Up the Computer / Loading on the Proram

In order to load the program on, we need the Arduino program/driver as well as the Adafruit Neopixel library

  1. Install the Arduino IDE if you haven't already:
  2. Install the Adafruit Neopizel Library - From the Sketch menu, > Include Library > Manage Libraries... In the text input box type in "NeoPixel". Look for "Adafruit NeoPixel by Adafruit" and select the latest version by clicking on the dropbox menu next to the Install button. Then click on the Install button.

Once you are done, copy the code below onto the IDE and upload it to the board (you can find a copy on my GitHub here: To change the word getting displayed, edit the displayWord variable located on line 22. You can also download the code itself below

<p>#include <adafruit_neopixel.h>#ifdef __AVR__  #include <avr power.h="">#endif<br>#define PIN 13
Adafruit_NeoPixel strip = Adafruit_NeoPixel(50, PIN, NEO_GRB + NEO_KHZ800);
void setup() {   strip.begin();; // Initialize all pixels to 'off'
  colorWipe(strip.Color(244, 220, 66), 50); // Wipe all the LEDs to make sure they work
  colorWipe(strip.Color(0, 0, 0), 0); // Turn everything off}
void loop() {  String displayWord = "readers"; // Use lowercase  String alphabet = "abcdefghqponmlkjixrstuvwxyz";    // Turn on individual lights  for (int i = 0; i < displayWord.length(); i++) {    // Turn on light    strip.setPixelColor(alphabet.indexOf(displayWord[i])*2, strip.Color(random(0, 250), random(0, 250), random(0, 250)));;
    // Turn off light    strip.setPixelColor(alphabet.indexOf(displayWord[i])*2, strip.Color(0, 0, 0));  }
  // Turn on all the lights for the word  allTurn(displayWord, strip.Color(random(0, 250), random(0, 250), random(0, 250)), alphabet);
  // Turn off all the lights for the word  allTurn(displayWord, strip.Color(0, 0, 0), alphabet);
void allTurn(String str, uint32_t c, String alphabet){   for (int i = 0; i < str.length(); i++) {    Serial.print(str[i]);    Serial.print(alphabet.indexOf(str[i]));
    // Turn on light    strip.setPixelColor(alphabet.indexOf(str[i])*2, c);;  }}
// Fill the dots one after the other with a colorvoid colorWipe(uint32_t c, uint8_t wait) {  for(uint16_t i=0; i<strip.numpixels(); i++)="" {="" strip.setpixelcolor(i,="" c);="";="" delay(wait);="" }}<="" p=""></strip.numpixels();></avr></adafruit_neopixel.h></p>

Step 4: Set Up Your Lights

Now that all of the hard stuff is over with, we can finally go about putting our creation up! Every 2 LEDs should be one letter. As you can see in the picture, the lights switch at certain intervals (so the order that the letter should be in are like this "abcdefghqponmlkjixrstuvwxyz".

Makerspace Contest 2017

Participated in the
Makerspace Contest 2017