top of page

Mini-Project - Arduino Controller for WS2812 LED Strip Lights on Ceiling




I put 4 meters of WS2812B LED strip lights on my ceiling and needed a controller for them.  I bought a cheap controller on ebay, but I didn't really like the functions on it.  I spent a lot of time programming the WallPaw with functions for these LED strips, so it didn't take too long to modify the functions to work with a single long strip.  I also added a RF receiver module so that these strip lights would turn on/off when I use the RF outlet remote in the apartment to turn the rest of the lights on/off.  

The coolest change I made in the programming for these lights was making the sound-reactive function react symmetrically.  Instead of going from one end to the other with the lights, it starts in the middle and turns lights on going out to both sides.  This is shown in the video above around the 17-second mark.  

The controller takes in 5V DC and uses a boost converter to boost it to 10V or so, which is then used to power the Arduino's.  This might not be necessary - Arduino's can use 5V input if you use the Voltage Input pins instead of the DC-barrel jack, bypassing the voltage controller.  However, due to the variable nature of power that the LED strips need, I wasn't confident that the cheap eBay power supply would always supply 5V.  This way I know the Arduino's will have enough power to run no matter how bright/dim the LED lights are.  

Features and Function

Remote controlled
Brightness control
Effect animation speed control
Single color
  • All lights
  • Only a few sections lit
  • All lights pulsing in/out
  • Sound reactive pulse
  • Sound reactive symmetrical flashing
Two color​
  • Alternating colors in various sections
Sound reactive​
  • Volume bar - more lights illuminate when sound is loud.  This is dynamic, so as sound gets louder it becomes less sensitive and vice versa.
  • Pulse - all lights illuminated, get brighter/dimmer based on sound level
Fading rainbow - a rainbow of colors all around the paw, which scrolls around at the set animation speed
Rainbow sound reactive - sound reactive setting where the color scrolls through the rainbow
Bouncing balls - a simulation of balls bouncing.  It looks cool on straight LED strips, on the paw it looks like random lights
Snow - all lights on a dim white, with a random one lighting up every half second or so
Three color pulse - Red/green/blue pulsing in and out
Theater Chase Rainbow - Theater Chase sequence where lights light up in sets of 3 to give the appearance of lights "chasing" each other. 

Parts list

Parts List
  • Foam board

  • WS2812 LED strip - 5 meters

  • Arduino Uno

  • Arduino Mega

  • 5V to 24V boost converter module

  • Infrared receiver module

  • RF Receiver module

  • Connector wire 

  • DC barrel jack connectors

  • 5V 15A PSU

  • 44-key IR LED remote

  • Wire clips

  • Soldering iron

  • Hot glue gun (this is essential)

  • Wire cutters/strippers



Nothing too complicated here - I just laid out the parts I needed and arranged them in a way that I could run power to everything.  

The RF module isn't pictured here, but I put it in the bottom right corner of the blue breadboard.  



You can download the source code from this Google Drive folder:

bottom of page