I am very new to the world of circuit design and would greatly appreciate some feedback on this circuit I made. It is based on an Arduino Pro Mini and its purpose is to illuminate nine 2V, 20mA LEDs as well as twelve SK6812 RGB LEDs. At full brightness, they require 60mA. Since the circuit will be inserted inside a 3D printed scale model, I would like to make sure the components are well protected so they can last a long time.

Here is the schematic of the main circuit. The resistors values of 50Ω and 150Ω are there to limit the current inside the LEDs to 20mA which is the recommended limit per pin on the Arduino (see link above). Also, the 9 LEDs need a total of 180mA, just below the 200mA limit.

enter image description here

Each group named PIXEL_QUADx corresponds to a circuit that is very similar to the one at the end of the SK6812 datasheet. Their schematic is shown below. The 0.1µF capatitors, 470Ω resistor, and 1000µF capacitor (on the schematic above) are added because of the recommendations found on Adafruit's website.

enter image description here

My first question is: is this circuit correct? Other points I am not sure about are:

  • Should there be a 470Ω resistor on each PIXEL_QUAD group, or only on the first one?
  • Would it be possible to power everything from batteries? USB?
  • On the Arduino datasheet, it says the RAW input range is 5-16V, but recommended range is 6-12V. Should I use a 9V supply instead? How would this work?
  • 180mA for the LEDs is close to the 200mA output limit of the Arduino. Would it be safer to power the white LEDs directly from the power supply? (This would mean no PWM brightness control)
  • Anything else that I missed that needs to be checked?

First of all you should learn more about electronics and prototype it on breadboard. Question 1, according to your link, it's say

Adding a ~470 ohm resistor between your microcontroller's data pin and the data input on the NeoPixels can help prevent spikes on the data line that can damage your first pixel. Please add one between your micro and NeoPixels! Our NeoPixel rings already have this resistor on there

Is that clear?

Question 2 If current consume below 500 mA you can use USB. For battery, use the voltage above 7V and suitable current will fine.

Question 3 See arduino schematic in official web for reference. it simply use linear voltage regulator then convert voltage to 5V. please read more about power consumption of linear regulator. for short you should use 7 at least because regulator have drop out voltage. if you use too high voltage on raw regulator might get hot and burn due to power loss.

Question 4 Sure it's safer, If you want to control dimming you should use transistor to drive more current.

Question 5 A lot!!

  1. If you have constant 5V from usb or adapter you should power them through 5V pin instead. to avoid voltage dropout
  2. Do you calculate forward voltage of LED? for example white LED have about 3V forward voltage. when you series them you need at least 6V to power its, also you must include forward voltage to led resistor calculation.
  3. If you have 9 leds and each one consume 20 mA. then you put 8 of them in 4 series of 2 leds. you need 20*4 + 20 = 100 mA enter image description here
  4. Please learn more and do some experiment.
  • \$\begingroup\$ if you have 9 leds and each one consume 20 mA. then you put 8 of them in series. you need 20*4 + 20 = 100 mA uh, no? \$\endgroup\$
    – Passerby
    May 11 '20 at 17:42
  • \$\begingroup\$ Ok, so only one 470 ohm resistor is needed. In fact, my white LEDs have 3.2 typical forward voltage and not 2.0, I will have to rework that part of the schematic. I'm not sure about point nb. 3, can you ellaborate? I'm asking all this right now so I can buy the right components to start experimenting. \$\endgroup\$
    – JD80121
    May 11 '20 at 19:15
  • \$\begingroup\$ 3.2v typical at 20mA typical. Reduce the current and the forward voltage drop also lowers. Depends on how brighty you want it to be. LEDs at 5mA or 10mA are still pretty bright. \$\endgroup\$
    – Passerby
    May 11 '20 at 20:05
  • \$\begingroup\$ I will edit my answer \$\endgroup\$
    – M lab
    May 11 '20 at 22:31
  • \$\begingroup\$ Thanks to both of you! In fact, the current that passes through LEDs in series should not be added. \$\endgroup\$
    – JD80121
    May 12 '20 at 14:10

White LEDs typically require about 3 volts, so you can't run two in series from an Arduino output.

Best practice is to not push the Absolute Maximum ratings of parts, so you should have the Arduino outputs drive transistors which in turn drive the LEDs - then you can drive the white LEDs with higher currents if required. Each transistor could drive two LEDs in parallel, each with its own series resistor.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.