Help with designing hardware for LED strip control with Arduino Nano (RGB, non addresasble)

Hi everyone,
I want to power and control a 7 meter,24V , 14.4 w/m, rgb, non addressible LED strip using an arduino nano and giving user control input to it with three potentiometers and three buttons. I want to make it modular for maintenance or perhaps and for upgrade reasons. The three modules will be:

  • the High current control module,
  • the microcontroller module and
  • the UI module.
    I would like some help when it comes to including the appropreate components (for filtering, safety, connections etc.) and also the logic and philosophy of the hardware, because I don't want to rely on AI for it and don't have full techical knowlegde.

important notes:

  • The control module will be hidden away and the UI module will be in reach of the user. The microcontroller module will be co-located with either the high-current module or the UI module. The cable run between the two resulting physical clusters will be about 2 meters.
  • I have already purchased the Arduino Nano, three logic-level N-channel MOSFETs (IRLB8743), a PCA9685, a 24V-to-5V step-down converter, and the potentiometers. I will buy whatever else is needed (the schematics show some components not yet purchased).
  • I designed the schematics of the modules (using schemalite, if you want to view and tweak the json files) with the logic that the connections will be (control module) - (microcontroller module) --[2m distance]-- (UI module). The order of the connections is still under consideration and might change.
  • All boards will be perfboards and the cases will be 3d printed.
  • It will be for use at home, hidden secondary lighting
  • I have already made another post previously, but there has been some progress and now I'm stuck on refining this hardware design.

I want this to be a well-working, safe design and need guidance to ensure I get it right. Thank you so much for your time, I really appreciate any input and advice!
UI_module.json (11,5 KB)

Was continuity or something else missing from your other topic of the same subject?

  • Nice drawings... but... the images are "transparent" so when viewed here, the background is translucent black, making viewing less than optimal.
  • Also, in the other topic you were asking for your code to be written for you. Did you read about using Arduino Nano PWM pins? https://docs.arduino.cc/tutorials/generic/secrets-of-arduino-pwm/

See this:

oh, oops. how could i fix it?

i had thought way less of the project, didn't have diagrams and also the post had taken a different direction from the help i needed, so i thought a fresh start would help.

no, that must not be my other post. when it comes to coding it, i think i got it for the basics, and also i think the ui is too complicated for me to want to get anyone else in trouble by trying to explain. Because mistakes in code are non-destructive, i'm willing to give it several tries

oh yeah, that's my other post. I think i didn't give an informative answer to that (if i gave any answer). So sorry about that!
Answering to your previous message, I want to continue with what i (fortunately or not) have already bought, and when i have more time i'll upgrade to IoT with esp32. when you say it will require building some small electronic circuits, do you mean something more or different than soldering on perfboards, like pcb? If yes, can it be avoided? (also, wanted to mention that the pca9685 works fine with the mosfets i have)

just checked it out: there is a button (second top-right) that opens the image in a second tab and is with white backround

Then all you need is the level shifter I mentioned.

In MsPaint, save as PNG or BMP. In GiMP >> IMAGE >> FLATTEN

The Arduino "Secrets of PWM" page is very good at explaining what it is, then giving a sketch for practice. PWM is how you will control the MOSFETs. Arduino use only eight bits for PWM, so whether controlling WS2812 or MOSFET, there will only be 256 steps. Perhaps ESP32 has finer granularity (I think they do 4096 steps... but that might be AIN only... I would have to read more ESP32 stuff to be sure).

are you sure? when i say i'd like to work with what i have, i also mean the arduino nano. the confusion must have happened because i said i'll upgrade to IoT with esp32 later, meaning i'll use the esp32 altogether later. my bad.
having that in mind, do you find my diagrams complete, or have i not included something important or of detail?

the 8 bits per color of the WS2812 are because of the internal chip of the strip, not because of the resolution of arduino. For the mosfet control, that's why i got a pca9685, which is a 12-bit pwm generation module.
esp32 goes up to 16 bit resolution i think

To clarify,

  • you are using 3 channels of a PCA9685, which has 4096 levels for each PWM signal
  • you intend to read 3 potentiometers using the onboard analog inputs, which have1024 discrete levels
  • You are using mosfets to drive the 3 colour circuits of a LED strip, NOT a WS2812 addressable LED strip

Is that all correct?

yes.
i'm planning to have a look up table with gamma correction taken into consideration.
the LED strips will have a power cable and three ground cables, one for each color.
what else would you like to know?

I'm good, it just seemed that others had muddied the waters with irrelevancies.

I believe your drive of each mosfet gate requires another resistor, but there are others here who could help you get that corrected - I think you need a resistance in series from PCA9685 output to the mosfet gate, and I think the resistance to ground should be at the PCA9685 end of that series resistor, to pull it low when the PCA isn't driving the pin - but I'll let someone else advise as to the correctness of that, and what exact values to use.

One problem you may face - a lookup table with 1024x3 entries will consume more RAM memory than available in the Nano, so you'll need to put your tables in PROGMEM; look up the term in the references.

So something like this?

I will definitely not do 1023 entries. I was thinking either 255, so i could also have fastled, work with its hsv values and pump the rgb values it gives me to the LUT, or perhaps 511 and when I'm working with fastled, I'll take the 2*number it gives me. Do you think that could work?

Also thanks for the idea of progmem, I'll have that in mind.

No that is wrong.
The PCA9685 already has a current limiting resistor, seem like others are giving you bad advice.

The pinouts on the connectors are backwards. Also what is that transformer?

Do not put capacitors across the buttons.

On you diagrams, it is not clear what is a connection and what is a crossover. On most schematic programs, a dot indicates a connection

hmm, how should i connect it then? Is what i already have done good?

which connectors are you reffering to? I can't see what's oppositely connected

it's supposed to be the step down converter

It is supposed to be a hardware filter for debouncing. how to i wire it correctly?

I'm sorry for that confusion. The program i used didn't have that so i tried to make up for it using different colours for wires that don't connect. If it's still unreadable, could you suggest a free browser program that i could use to make the diagrams?