SN754410 H-Bridge Issue

First off I am using the Wiring I/O board, while not exactly an Arduino, they seem very similar. I am having a lot of issues with their message boards so I am going to ask the question here, and hopefully you all can help!

I am trying to connect a motor to the controller via the SN754410 H-Bridge. I have 5v going to both VCC1 and VCC2. When I have the Enable pin set to HIGH and either Motor pin 1 or Motor pin 2 set to HIGH, then both of the outputs get set to high (5v), so the motor does not spin. If the Enable pin isn high and both Motor pins are set to LOW, then both output pins are at .5v

These seems like it should be very straight forward, what am I missing?



first of all you need a separate power supply for the motor. Motors consume a lot of current and make noise, so you want them on a separate power supply- that's why the driver chip has two pins.

Unless you have a 2 or 3 volt motor, the motor supply should also be higher than 5V, as you lose about 2V or so in the driver chip's output stages.

The real problem here though is that to make the motor turn, one of the input pins has to be high and the other has to be low, and vice-versa for the other direction. Both high or both low means no action.


The motors are pretty small, so I am not worried about losing much voltage, in fact I read about 4.8v on the outputs. Here is what I have tried:

| EN | Pin1 | Pin2 | Output1 | Output2 | | - | - | - | - | - | | HIGH | HIGH | LOW | 5v | 5v | | HIGH | LOW | HIGH | 5v | 5v | | HIGH | HIGH | HIGH | 5v | 5v | | HIGH | LOW | LOW | .5v | .5v | | LOW | LOW | LOW | .0v | .0v |



the signals sent to the chip sound right- it should be working. Double-check your wiring. DO you have 5V connected to the LOGIC pin, i.e. pin 16?

also check to see if you are using the same pair that is enabled: pin 1 is the enable for output pins 3&6, pin 9 is hte enable for outpus 11 & 14. Look at the datasheet and see if you are driving the same side.


OK, so I got my hands on a oscilloscope and I took a look at what was happening. When I replace the motor with a 1K resistor everything looks good, when I put the motor in place I get all sorts of weirdness (like the ATMega crashing). This leads me to think that it is noise coming from the motor and foulng everything up.

Since I do not have a strong background in ectronics, does anyone have any ideas for filtering out the noise?



Shocka, try connecting a couple of capacitors between each of the power terminals and ground. For good measure you could also connect a capacitor across the two power terminals. Ceramic capacitors of .047uf to .1uf work well, the actual value is not critical. See figure 2 and figure 3 on this site:

If you are powering the motor from the Arduino board, try using an external power supply for the motor.

Even a small DC motor will draw more than the 40mA that Arduino can source. Especially just when the motor starts.

ITP has a nice L293 tutorial, I know you are not using an arduino, but the code is simple enough to look over should take you 5 minutes.

Once of the nice things they put in is a “led flash” function that runs at startup, so if you are powering the motor from the board, and the draw is too high and your device resets, the led flashing will be a good indicator.

try something like a 220Uf capacitor on the motor's power supply.