Kevin Darrah | Easy Addressable LEDs with Arduino! WS2812B Tutorial @Kevindarrah | Uploaded March 2016 | Updated October 2024, 21 hours ago.
UPDATE - I was using Arduino 1.83 recently and found that my code doesn't work as well - make sure you are using 1.67!!
UPDATE - check this out for the simple fix: youtu.be/ev-Di5GVQ3Y
In this video, I'll show you how I was able to control the famous WS2812B addressable LED using a standard ATMEGA328P running at 16MHz. Yea, I know it's been done before, but what's the fun in that... Here's my 2 cents in how I I did it, plus this is super easy code. Just drop the function in and you're pretty much ready to go. Look for more videos coming up - I plan on working with an FPGA to control 1000's of these LEDs - should be pretty cool. Let me know in the comments below how this method works out for you.
Here's the datasheet for the LED I'm working with:
world-semi.com/uploads/soft/150522/1-150522091P5.pdf
World Semi:
world-semi.com/en
Google WS2812B in Ebay to find a similar panel that I used in the video.
The CODE is HERE:
kevindarrah.com/download/arduino_code/WS1812_V4_FOR_VIDEO.ino
NOTE: This has only been tested with 45 LEDs, but should work with as many LEDs as you want. This code has only been tested with the ATMEGA328P-PU running at 16MHz. Using Digital Pin 8 for the Data line to the WS2812B is only supported at this time. I'm 99% sure the LEDs I was testing with are WS2812B's but since the panels are not marked, I could be wrong. Again, let me know how it works out for you.
Check out my Tindie store (trigBoard is available) tindie.com/stores/kdcircuits
Thanks to all the Patrons for dropping a few bucks in the tip jar to help make these videos happen!
patreon.com/kdarrah
Twitter: twitter.com/KDcircuits
For inquiries or design services:
kdcircuits.com
UPDATE - I was using Arduino 1.83 recently and found that my code doesn't work as well - make sure you are using 1.67!!
UPDATE - check this out for the simple fix: youtu.be/ev-Di5GVQ3Y
In this video, I'll show you how I was able to control the famous WS2812B addressable LED using a standard ATMEGA328P running at 16MHz. Yea, I know it's been done before, but what's the fun in that... Here's my 2 cents in how I I did it, plus this is super easy code. Just drop the function in and you're pretty much ready to go. Look for more videos coming up - I plan on working with an FPGA to control 1000's of these LEDs - should be pretty cool. Let me know in the comments below how this method works out for you.
Here's the datasheet for the LED I'm working with:
world-semi.com/uploads/soft/150522/1-150522091P5.pdf
World Semi:
world-semi.com/en
Google WS2812B in Ebay to find a similar panel that I used in the video.
The CODE is HERE:
kevindarrah.com/download/arduino_code/WS1812_V4_FOR_VIDEO.ino
NOTE: This has only been tested with 45 LEDs, but should work with as many LEDs as you want. This code has only been tested with the ATMEGA328P-PU running at 16MHz. Using Digital Pin 8 for the Data line to the WS2812B is only supported at this time. I'm 99% sure the LEDs I was testing with are WS2812B's but since the panels are not marked, I could be wrong. Again, let me know how it works out for you.
Check out my Tindie store (trigBoard is available) tindie.com/stores/kdcircuits
Thanks to all the Patrons for dropping a few bucks in the tip jar to help make these videos happen!
patreon.com/kdarrah
Twitter: twitter.com/KDcircuits
For inquiries or design services:
kdcircuits.com