Help with SN754410 and PWM to voltage

Hello everyone!

Me and a friend is doing a project where we want to control a few DC motors (one or two at a time) using the SN754410 powered by 3 AAA batteries.

The motors are fairly small (around 3V) and we want to be able to run these at four different speeds. We are using the Arduino Mega 2560 and have connected pin 2 and 3 to the two Enable pins (1, 2 EN and 2, 3 EN) on the SN754410 and pins 22 and 23 to the corresponding pins on the SN754410.

Our problem now is that we can not get the full range of voltage (from 0 to 4.5 V (or whatever the max from our batteries will be)) from the SN754410 to the motors. When checking the PWM signal from the Arduino with a multimeter we get the "right" duty cycle (i.e. 255 => 100%, 127 => 50%, and so on...) but when checking the voltage from the SN754410 we get roughly 2.2 V at the lowest (with analogWrite(2, 1); and so on) to roughly 4.45 V at the highest (analogWrite(2, 255);).

Have we missed some obvious detail as to why we can't get the full range of voltage from the SN754410? Is there an easy fix for this or do we have to rethink the entire setup?

Draw a schematic with pen and paper of how your circuit is wired, take a photo with a cell phone and post it. Take a photo of your circuit and post that. What are you using to power the motors ?

Ok, here is my sketch from fritzing. I am new to this program and not quite sure that I made everything in the correct way but hopefully it will do.

Worth noting:

We are using 3 AAA batteries (for a total of 4.5 V), not 2 like in the schematic. I just couldn’t find how to change the battery pack to 3 AAA.

Since we don’t care about which direction the motors spin we were advised that we could use the fwd/rev pins on the SN754410 to control two separate motors and simply connecting the other cable from the motor to ground on the breadboard. Hence the two motors…

We are using both sides of the SN754410 for a total of 4 motors per chip but I think that all those cables would have been too much for legibility.

So the question that remains is why the SN754410 gives us 2.2 V at the lowest and not values from 0 to 4.5 V?

Thankful for any help you can provide.

Anyone have any ideas as to why we don't get the full range of voltage values?

Your circuit is wired wrong ? (see attached )
motors should be connected across 3 & 6, and 14 & 11 respectively.
The second terminal of both batteries should not be connected to BATT(+).
Moreover, you have both motors connected on the SAME SIDE OF H-BRIDGE
ALSO,
pins 9,10,11, 14, & 15 of 754410 are NOT CONNECTED. (SEE ATTACHED DIAGRAM)
When your not to busy , maybe you should look at the datasheet for the chip too.
(You will see that pins 3 & 6 should be connected to the same motor, not one to one motor the other to another motor.)

FULL H-BRIDGE WITH 754410.jpg

sn754410.pdf (154 KB)

Thanks a lot! When using one motor per side and digital output for the enable pin and pwm for the fwd/rev pins the full range is available.

Regarding two motors on one side:

We were advised that it should work given that we do not need to be able to control whether the motor goes forward or reverse. Since the motors activated when we wanted them to we just assumed that we could continue having them wired this way.

Anyway, thanks a lot!

So you already fixed it and everything’s cool ?

mrSF: Anyone have any ideas as to why we don't get the full range of voltage values?

The chip is a darlington drive, you lose 2--3V or so. Basically use a supply 3V more than the motor rating. Darlingtons are more efficient at higher voltages where the fixed loss is less significant.

MOSFET H-bridges are superior, alas there aren't any cheap DIP ones.

[u]Reply#5[/u]

Thanks a lot! When using one motor per side and digital output for the enable pin and pwm for the fwd/rev pins the full range is available.