instructables Easy LED Holiday Light Show Wizards in Winter WS2812B LED Strip Instructions
- June 9, 2024
- instructables
Table of Contents
Easy LED Holiday Light Show: Wizards in Winter
WS2812B LED Strip With FastLED and an Arduino Tutorial by Zero To
Infinity
Easy LED Holiday Light Show Wizards in Winter WS2812B LED Strip
I designed and programmed this holiday light show to display anywhere. I used one WS2812B led strip with a pixel density of 30 pixels/ meter. Since I used 5 meters, I had a total of 150 LEDs. I kept the code simple so that anyone new to using WS2812B LED strips could easily follow the code. This also means that if you use di erent amounts of pixels, the timing will be o , so you should stick to 150 LEDs. Also, keeping it simple, the music system is not managed by the Arduino at all. At the beginning of the program, there are 3 ashes of green and 1 ash of red, then the actual light show starts. Since you have to start the music manually, these initial ashes are to give you an indication of when to start playing the music. I have included the code below. Feel free to add on to or change this code for non-commercial purposes.
Supplies:
- WS2812B LED Strip
- Arduino
- Wires
- 5V 10A Power Supply | If you are using more than one strip, you will need to use a larger power supply. Each pixel uses 60mA, so 150 pixels * 60mA = 9A. Your power supply must be able to handle this if you intend to use full brightness at white. You must use a 5V power supply if you are using 5V LED strips and if you are using 12V LED strips, you will need to use a 12V power supply, but also use a 12-5V converter to power the 5V Arduino.
https://www.instructables.com/ORIG/FRI/3P3V/K5R380TA/FRI3P3VK5R380TA.ino
Download the FastLED Library
If you don’t already have the FastLED library downloaded, download the latest
version from
github.com/FastLED/FastLED/releases
Download the FastLED library, and move it to your Arduino libraries folder. Do
NOT change the name of this folder. In the Arduino IDE, go to Sketch, Include
Library, and then Add .ZIP Library. Select the FastLED folder.
Once your library is set up, include the line #include This line tells the
program that you are using that library.
Define a Few Variables
As I mentioned earlier, in order to keep the code simple, changing the number
of pixels will change the timing or the light show.
The line #de ne NUM_LEDS 150 is where you put the number of pixels used. In
this case, it will be 150.
The line #de ne DATA_PIN 5 is where you put the digital pin that you connected
the data wire to.
The line #de ne BRIGHTNESS 255 is where you put the brightness from a scale of
0-255, with 255 being the brightest.
The Setup Section of Code
In the setup section, there is a delay for 2 seconds and the line
Fast LED. add Leds (leds, NUM_LEDS).set Correction(Typical LED Strip);
WS2812B indicated the type of LED strip that we used and DATAPIN is the
variable that we dened in a previous step. GRB is the color order. This could
vary depending on the LED strip used. Try the code as is, and if the colors
aren’t the same as in the video, try changing this to RGB, or BRG for example.
You can leave the rest of this line the same.
The lines Fast LED. set Brightness(max bright); set max power _in _volts
_and _milliamps(5, 8000);
limit the power usage of the LED strip. This is an amazing feature from the
Fast LED library. The number 5 is the voltage that we used, and the number
8000 is the maximum current that the LED strip can use in mA. It is
recommended to only use 80% of the power supply’s capability to extend its
lifetime. Since I have a 10A power supply, 0.8*10 = 8A, or 8000mA.
The Loop Section | Aka, the Cool Part of the Code
Now that we are done setting up the program for our particular LED strip, we can get to part the actually makes the strips light up. To keep this section looking clean, I used wrote functions to control the strips and do di erent e ects. The above picture to the left is part of the loop section, which runs the functions. The picture on the right is below that and is where I wrote what each function does.
Wiring
The WS2812B LED strips have 3 terminals at each end. 2 for power, and 1 for
the data signal coming from our Arduino.
Simply connect 2 wires to the Arduino’s power terminals, and connect 2 power
wires to the LED strip. You should also add 2 power wires called power
injection wires to the end of the strip because voltage loss can lead to dim
LEDs at the end of the strip if you don’t do this. Check the labels on the
strip to see which terminal is for what. Mixing up the polarity could lead to
a fried strip. Also, connect the Arduino’s ground wire to the ground wire on
the LED strip to establish a common ground for better data transmission. I
mentioned that you should add power injection wires, but you CAN NOT do this
for the data wire. This is because each LED rebroadcasts the data signal to
the next one, so make sure to connect 1 data wire to the specied Arduino pin
and the LED strip. The strip should have a small arrow indicated the direction
of data travel. Make sure the put the data signal wire at the beginning and
not the end. Mixing this up could lead to a fried strip.
Mounting the LED Strip
I mounted my LED strip to the inside of a window by simply taping it. However,
there are many other ways that you could mount your LED strip. You could use
an aluminum channel such as https://tinyurl.com/s2km4v3 to put the strips
outside on your rooine. If you are putting your LED strips outside, I
recommend using the ip65 strips if you are using an aluminum channel because
they are semi-waterproof, and are thinner than the 1p67, which may not t in
some channels. If you intend to mount this outside without a channel, use the
ip67 strips, which are practically waterproof. To go around a corner, such as
the ones at the peaks of your rooine, you should ideally cut the strip, and
use wires to go around the corner. You may be able to away with just bending
the strip, but be wary of how much you bend them because it’s easy to pop o an
LED.
I love when lights are set to music 🙂
Easy LED Holiday Light Show: Wizards in Winter
WS2812B LED Strip With FastLED and an Arduino Tutorial:
Documents / Resources
|
instructables Easy LED Holiday Light Show Wizards in Winter WS2812B LED
Strip
[pdf] Instructions
Easy LED Holiday Light Show Wizards in Winter WS2812B LED Strip, WS2812B LED
Strip, WS2812B Strip, Strip
---|---
References
- Releases · FastLED/FastLED · GitHub
- Yours for the making - Instructables
- Easy LED Holiday Light Show: Wizards in Winter | WS2812B LED Strip With FastLED and an Arduino Tutorial : 6 Steps - Instructables
- Zero To Infinity's Profile - Instructables
- content.instructables.com/ORIG/FRI/3P3V/K5R380TA/FRI3P3VK5R380TA.ino
- tinyurl.com/s2km4v3
- instructables.com/ORIG/FRI/3P3V/K5R380TA/FRI3P3VK5R380TA.ino
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>