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?