Hey guys! I would like some advice for my school project.
I have 3 pieces of ws2812b led-strips, 5 meters each and 60 LEDs/meter. I want to control these from my computer with a program I will be making. In the program you will be able to do animations, effects and also have some kind of ambilight-mode.
I know how to do general programming so the main program on the pc I’ll probably manage. However, I lack knowledge for the interface from the pc to Arduino to LEDs. I have researched as much as I can and feel like I only need some final opinions.
I’ve already made some tests with an Arduino Uno that I had at home. The pc communicates with the Arduino via serial (using the ordinary programming usb-port on the Uno) which works fine and sending the data to the led-strip is no problem. I’ve only used one of the led-strips (300 LEDs) during testing and a 5v 90w power supply. For the Arduino I use the Adalight-code from here:
and for the pc I took out the parts from there as well but made the colours cycle through red green and blue instead of using the screen to make an ambilight.
The results are a bit disappointing as I started this with very little knowledge and thought that you pretty much have infinite speed. After testing I now know better.
I tried different baud rates but coming close to 1Mbauds frames started to drop out. Using all 300 LEDs the best I got after testing different baud rates and delays in the pc program I was able to get 30-40 fps. I guess that’s ok for what I have. My conclusion is that the bottleneck is the Arduino Uno’s serial speed. Also the RAM is a problem as need to store 24-bit colour for my wanted 900 LEDs.
These tests were done with 1 out of 3 led-strips and if I would use them all the fps would drop to like 5-10, I would guess.
After some research I still see some hope. The Arduino Uno is my personal and I have a budget for the project to buy a new one specifically for this. As I understand, the Arduino Due is much faster, both in processing and sending data if you use the native usb. What could I expect from a Due? And also, I’m receiving and not sending data. Many posts suggest high speed while sending data to a pc, I would imagine that receiving is as fast? Is any other board better than the Due?
This guy states that the Due would be able to control thousands of LEDs:
is this still possible with a pc-Arduino interface?
If I would use the Due, it outputs 3.3 volts for the data pin on the strips while it “needs” 5v. I came across this article with an easy fix:
Is this reliable or is there any better solutions? As someone in the comments of the article stated that you could hook it up like normal if the power supply gives 5v or a bit less. Is this reliable because I am able to adjust the voltage of my power supply +-10%?
Since I want to use all 3 pieces of led-strips, would it be any difference in performance if you connect these 3 strips to different pins on the Arduino or if you make one long strip and connect only one pin?
Thanks in advance!