I want to control the brightness of my LED strip. In this way, I'm thinking about using a MOSFET N-channel. Can you see what I conceive below :

Circuit planned

I want to manage the Id current by shifting the Vg voltage thanks to PWM of Arduino. Can you see below my idea :

enter image description here

May I have your opinion about :

  1. Can I control Id current by shifting PWM on the pin D6 of Arduino MEGA (i.e by controlling Vg)?
  2. I have big trouble to understand MOSFET datasheet, could you help me and explain me which one could I use ?

Thank you for your help !


I have added an example of the Vg voltage which is a PWM applied on the GATE. Could someone says me if :

  • Does voltage on the GATE of the MOFSET (here Vg) control the current flowing between the DRAIN and the SOURCE ?
  • If yes, can I control the current flowing through the MOSFET by applying a PWM on the GATE of the MOSFET ?
  • 1
    \$\begingroup\$ If you are going to PWM it, you don’t have to care about that “shift”. PWM away as is! \$\endgroup\$
    – winny
    Jul 23 '18 at 21:10
  • \$\begingroup\$ Sorry may be my english is not correct. I meant by shifting, modifying the duty cycle of PWM over time in order to slightly increase the value of Vg, and then increasing the value of Ig too. Thanks for your help \$\endgroup\$ Jul 23 '18 at 21:13
  • \$\begingroup\$ I understood you. By operating by PWM, you will never be affected by it. Pretty much you are jumping between two operating points, zero and far right hand side of the graphs. With no smoothing, you never end up in between. \$\endgroup\$
    – winny
    Jul 23 '18 at 21:42
  • \$\begingroup\$ yes, that works well for controlling brightness, i use it everywhere \$\endgroup\$
    – dandavis
    Jul 24 '18 at 16:59

Your circuit won't work the way you imagine. You are trying to control the DC current flowing by changing the voltage across the LED strip (I assume that the strip has inbuilt resistors for the LEDs).

While you could add extra capacitance across the gate of the FET and produce a changing Vg it will be quite difficult to control.

However if you select a PWM frequency well above any optical perception you can use the PWM to simply alter the period of time it is on compared to off.

For example, if you set the PWM frequency to say 490 Hz and have the PWM duty cycle at 50% ...then the LEDs will be about half brightness. You can then simply set the duty cycle to get the required brightness.

The Arduino has a function (analogwrite()) which does this exactly.

Read the analogwrite() documentation then follow any of the endless bouncing ball projects with a single LED to test it out.

Since you are buffering the LED strip via an inverting amplifier (the FET) the values will be inverted for you, but you should be able to handle that.

  • \$\begingroup\$ Thank you for your answer. I edit my message to indicate the type of led I use. I would like to precise you that the PWM is applied on the GATE of the MOSFET. Could you confirm me that the voltage on the GATE of the MOFSET control the CURRENT flowing through the MOSFET ?? \$\endgroup\$ Jul 27 '18 at 19:16
  • \$\begingroup\$ PWM will work for you. However you are only setting the Vg to one of two values 'low' and 'high'. The current flow in the LED strip will be determined by the average of 'ON' vs 'OFF' time \$\endgroup\$ Jul 27 '18 at 22:37
  • \$\begingroup\$ Thanks a lot @Jack Creasey, it looks simpler for me to apply PWM on the GATE to control the brightness of the LED strip. \$\endgroup\$ Jul 29 '18 at 10:36

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.