I'm using this motor shield for arduino from adafruit. It says it can drive 4 DC motors with it. However, two terminals M3 & M4 (as marked in the image) seem to be supplying lesser voltage.

motor shield

To avoid this becoming an XY problem, some more details:

The entire setup consists of an arduino, shield, raspberry Pi 3 & the motors being powered with a 2200 mAh 12v supply. The raspberry pi is powered from the 5v supply of this shield.

Now the problem as mentioned is that even though M1 & M2 get the 12v, M3 & M4 don't. When I measured they give varying degree of voltage (3v - 6v). I tried disconnecting & connecting various combinations, with & without motors connected, pi removed, etc. All are giving same result. When I supplied 5v as external power, these pins in question dropped to 2v-3v.

As per this documentation, there seems to be a difference in M3, M4 in that they run at 1KHZ, to save power. But my knowledge to make of this info seems to be limited. Can anyone point me to the right direction here?

The complete setup.The complete setup of hardware

  • 1
    L293D & L298 type bipolar drivers have absurdly high internal losses and should basically be considered to be obsolete by at least a decade and unsuited to low voltage applications. You will have much better results with an FET bridge. If you want to try to use the bipolar bridge in the meantime supply it with 2v or so more than you want the connected motors to see. Of course the bridge and your supply must be rated for the expected current! Mar 26, 2016 at 14:28
  • 1
    Also, a voltmeter measurement of a PWM type output is only going to be truly meaningful when the PWM is set to 0 or 100%. An analog meter might average something in between to a degree, but a digital one (and even more so if it is a budget model as pictured) could have sampling effects leading to misleading readings. Mar 26, 2016 at 15:03


Your Answer

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

Browse other questions tagged or ask your own question.