I have an Arduino pro mini and I tested digital write of an pin and it is 3.2V and then I connected it to a 3V motor, but when I connected the motor to it, The voltage drops under 0.2 Volt, Can any one describe the science behind voltage drop ?

I know I've better use a transistor and separate the motor power but, what you should do when you have a single 3V power source? and I know there are some motor driver chips, but is it possible to keep it simple?

  • Science behind this? It's either some big motor or you forgot to make that pin an output, and pullup is even weaker than push-pull driver. Look for terms like Voltage source, ideal voltage source and loaded voltage source. (+ info from answers)
    – KIIV
    Apr 26, 2020 at 21:49

2 Answers 2


NEVER drive a motor directly from an Arduino IO pin. You will kill the Arduino.

It's not a question of voltage, it's a question of current, and that is where the transistor comes in. If you have a 3.3V Arduino (as it sounds like you have) then you may be able to drive the motor using the 3.3V output of the Arduino (VCC pin? Not sure with that model) and a transistor. That is the simplest arrangement.


simulate this circuit – Schematic created using CircuitLab

  • Using that circuit is a bad idea. (not the part about never trying to drive a motor directly from a GPIO pin. That part is true.) At the very least you'll need a flyback diode across the motor to prevent reverse EMF from damaging the transistor. Another problem is that the 3.3V output from most Arduinos is VERY low current - and quite unlikely to be enough to drive a motor. It might overheat the voltage regulator, or cause the 3.3V line on the Arduino to droop
    – Duncan C
    Apr 26, 2020 at 19:40
  • @DuncanC Good call on the flyback diode. I forgot that. But you are wrong about the 3.3V. On old Arduinos where the 3.3V was provided by the FT232 chip it was limited to 50mA. Now it's in the order of hundreds of mA - and on a 3.3V board it will be many more. But I did qualify it with may be able to.
    – Majenko
    Apr 26, 2020 at 19:43
  • @DuncanC That's CircuitLab's symbol for a schottky. It wants to be a schottky, not a normal diode, so it switches into reverse faster.
    – Majenko
    Apr 26, 2020 at 19:44
  • @DuncanC By the way - for the 3.3V, ignore the specs on the Arduino website. Those haven't been updated since the R1, and it has gone through many revisions since then.
    – Majenko
    Apr 26, 2020 at 19:46
  • And anyway, for the Pro Micro 3.3V it uses the MIC6219 which can provide 500mA peak.
    – Majenko
    Apr 26, 2020 at 19:48

You can drive the motor from the same 3v supply that powers your Arduino (assuming the supply can deliver enough current for both). What you can't do is power the motor through the Arduino, neither from a pin, nor from its on-board voltage-regulator. And especially don't try to use a 5v Arduino's 3v pin to drive it. Their 3v regulators provide only a limited amount of current.

If you try to drive a motor through the Arduino and it needs too much current, you risk frying the Arduino. If you supply the motor from the same power supply but not through the Arduino, and the motor takes too much current, the worst that will happen is the supply voltage will fall and Arduino will shut down.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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