Author Options:

Is it possible to use PWM on Arduino to control the voltage of an external power source? Answered

Let's say I want to vary the speed of the motor that operates at 12V. Since PWM on Arduino only provides the maximum current of 5V it can't power the motor sufficiently. So my question is how can I use PWM on Arduino to increase or decrease the input voltage of the external source? I will appreciate your answers.



Best Answer 2 years ago

If you want to control some motors then you can use Special Motor Driver IC's. eg

L293D which is a 2 channel motor driver IC and provide 600ma current capability per channel.

L298 which is also a 2 channel motor driver IC and can provide 2 ampere current capability per channel & can work upto 50volts

So using Arduino's PWM and the above two IC's you can basically control the speed of the Motors.

If you want to go for applications like led intensity control then you can use various Power Transistors or MOSFET as driver element.


2 years ago

Yes, you can create variable voltages with PWM, a boost controller can increase the voltage, but it lowers the current (from what is available). And a buck controller can decrease the voltage but increase the current.


(Here an arduino would power a mosfet which acts as the switch in the circuit)

So yes, it can but you would want a motor controller, as buck/boost is meant more for a constant change.


2 years ago

The Arduino can't supply a current of 5V - current is measured in ampere and not volt.
Plenty of examples on the Arduino pages on how to use transistors or mosfets to control devices that require more power than what the Arduino can supply or handle.