PWM (0-5v) to a 0-10v variable signal

Hi Everyone,

Atm i am trying to use an arduino with the PWM pins to control an output that can be varied between 1-10v (for laser energy control). having a few issues in getting the circuit correct, and to the 0-10v range.

reason for 1v minimum is laser is not stable below 10%.

I have tried:

  • low filter pass with inductor ( only issue is not variable)
  • transistor with a 10v supply, using the PWM signal to regulate the supply. (think i may have wrong transistors or not have enough of an understanding to get it just right.

Attached is the low filter pass that uses an inductor to boost the voltage to 0-60v, but i don’t think its what i need (correct me if i’m wrong).

The signal has a max rating of 500mA 0-10VDC.

Thank you in advance for any advice/assistance.

Arduino Playground - RegulatedPositiveVoltageBooster.pdf (331 KB)

  • transistor with a 10v supply, using the PWM signal to regulate the supply. (think i may have wrong transistors or not have enough of an understanding to get it just right.

How did you have the transistor wired? What happened? A transistor is the simplest choice, with the gate connected to a digital pin. You need a common ground between the laser and the Arduino.

Hi Rob,

there is something I do not understand. You want to control something with 0-10V from the PWM output, but the power supply is 10V. Am I right ?

If so, why are you using a voltage booster? This system is used to produce an "high" voltage from a "low" voltage.

If the power supply is 10V, then the easiest thing to do is to use a PNP transistor connected like this : - emitter : to 10V power supply - base : to PWM output via a 4k7 resistor (any value from 2k2 to 10k will be OK in practice) - collector : to your application

You will then get a PWM modulated 10V (so the output will go from 0V to 10V depending on the PWM duty cycle)

In your case, beside the fact that the booster is probably not the best solution, you are probably facing a saturation of the inductor. Do not forget that the PWM frequency on Arduino is not very high (between 500H and 1kHz), and this would require inductor with an high value. For most ferrite inductors, you will need much higher frequency (consider 50kHz as a strict minimum)