SK6812 RGBW LED Strip Project Question(s)... Can anybody help?

Hi everyone!

I'm super new to Arduino, and I wanted to start with a simple(ish) LED strip project. Not very good at coding as well, one of the reasons why I wanted to start the project.

I have a couple of bar shelves as per the render and the idea was to have (2) sequences of LED strips on the bottom of each shelf that run the same code, illuminating though a light diffusing piece of acrylic. The idea was to control both these runs with the same Arduino Uno and change the lighting commands through my phone.

Each run is made of (75) LED's of a RGBW 5volt SK6812 strips, therefore I was looking to use Neopixel for this one.

Here's the stuff that I already bought and sought to use on this project:

  • 5 meters of RGBW 5v SK6812 strips, 30 LED/m density
  • 110-5V, 10A AC/DC power supply
  • Arduino Uno (ATmega328P, ZX0910, Tenstar Robot/ ZX, most likely a China clone)
  • A bunch of jumper cables (male-male)

Here are the issues I'm facing at the moment

  1. Can't seem to find a way to control the Arduino Uno with a phone without adding a Bluetooth dongle or a Node MCU into the mix. Ideally I'd like to use the Arduino Uno as the only necessary tool for control, and maybe down the line I'd add a Raspberry Pi into the mix to have Google Assistant or Apple Homekit capabilities as well. However, if there is no other way I suppose I can buy another controlling board, let me know what you think. Tried using the Blynk app, however can't seem to get any connection with their servers when running the cmd code. Keep getting error #10060 [unable to connect to cloud].

  2. With the way the shelving structure is set up, I needed to run two separate combos of 3 wires, (power, ground and data), I wanted to know how to program the Neopixel to have both shelves always doing the exact same thing, not sure if it is ok to split the same data pin output into two separate runs.

I appreciate in advance for any help!
I also apologize in advance for any frustration I may cause due to my lack of experience. Thought I could get through this easily with some YT and Google tutorials but it's way more complex than originally estimated.

Thanks!

Wrong guess!

The UNO has no wireless functionality. The NodeMCU (or actually WeMOS D1 Mini) has all the functionality and the UNO is not really useful for anything.

You will need a 74HCT14 as a level converter to drive the 5 V strips from the 3.3 V ESP.


Well, perhaps not so dogmatically, you could use a UNO with the Bluetooth dongle. But with an ESP, your interface is a Web page requiring no programming on the phone, just a Web browser.

It is ideal for learning.

I've never tried running two or more WS28xx strips in parallel, but some here will argue that it works. I would argue that it is out of spec for he WS28xx chip.

I would run each strip to two different I/O pins, then in code, make them run the same pattern. It's really pretty easy, and this allows the flexibility of running different patterns in the future if you wish. If you want to try running them in parallel, at least use two gates of the 74HCT14. Connect the inputs to the GPIO port and drive each LED strip from its own 74HCT14 output.

I strongly recommend the Wemos D1 Mini for this project for two reasons. The Wemos is faster, has more memory and it has WiFi built in. OK, three.

As Paul said, you can run a webserver on the Wemos D1 Mini.

It is totally ok to do this though, in fact you can split a strip at any point. Keep in mind that although WS281x strips do have a very high resistance on Din, this is not quite a logic input.

I use 74HCT04 (there is no need for the schmitt-trigger) and split the signal half way. You have to make the signal pass through 2 not-gates to get the original polarity again, so i split it while the polarity is inverted. (saves a gate)
If the cable is short enough, you probably don't need the extra TTL chip, and there is no harm in trial in error (in this case)

I've also used 74LS244 buffers (because I have a sleeve of them in my junk box). Any gate will work as long as it has a Vih (High-level input voltage) below 3V. Which means that 3V is a logical high.

The buffer has the advantage of being non-inverting, so only one gate is needed.

74LS244 are obsolete and are inappropriate for this purpose as their output HIGH voltage is only marginally more than the 3.3 V logic you are starting with.

74HC244 or 74HCT244 certainly. Gross overkill using an 8-bit buffer but that does not matter.

If it works for you, OK, but a bad idea to suggest to someone, an inappropriate solution. :roll_eyes:

This I do not understand. Draw me a picture and tell me what you mean - the polarity between pixels is the same?

a7

I didn't suggest the 74LS244, only that I have used them successfully on my WS2811 projects. I'll have to scope the output levels the next time I set up the holiday decorations.

He means you use a first gate to invert the signal, then use that gate to drive multiple other inverters (on the same chip), each to drive a separate output chain.

1 Like

Clever. Even I might have thought of that. THX.

a7

Thanks for the help Paul! I guess I`m going all in with a Node MCU (WeMOS D1 Mini) and a Rasp PI to do the whole google assistant and homekit thing.

Regarding the power feed to the strips, I`m using a AC/DC power supply that takes 127VAC to 5VDC. Can you elaborate more on the need for the 754HCT14?

Thanks again for all the help.

Hi Steve, thanks for the heads up, I`ll try and program the code to run on two separate data ports. Guess I have to learn more about this 74HCT14 thing.

Once I get a chance Ill upload it here and hopefully, when the project is done Ill submit here as well.

Thank you again!

The LED strip requires 5 V logic levels - 0 V for LOW and 5 V for HIGH (often quite misleadingly referred to as "TTL") to work totally reliably. People have had problems driving it with the 3.3 V logic levels of the ESP8266. The 74HCT14 is specifically designed to accept the 3.3 V logic levels (which actually is "TTL") and drive 5 V levels out.

It contains six inverters, so if you want the same signal out as you put in, you connect the output of one inverter to the input of a second, the signal is inverted twice and comes out "right side up". The inverters you do not use must have inputs tied to ground, nothing connected to their outputs, or you can connect the output of the first inverter to the inputs of the other five and have five separate buffered outputs.