Driving a 12v 500ma Motor from a shift register and a Transistor array

Hello,
I’m trying to drive a DC motor from a shift register connected to a transistor array.


Here is my schematic,

The first shift register controls relays, and this works just fine, But when we try to control the DC motor from the 2nd shift register, It tries to move but then stop, So you can hear the motor make noise for a second then its done.

with a Volt meter on the out put of the first shift register it reads 3.3 v when the singal is high, and then the relay turns on. This is great !

But when we connect the volt meter to the 2nd shift registers output it Spikes from 0 -3.3 v then instantly back down to 0 or about .06v

Also we tested Powering the Transistor array with a +3v power to the input pin. This bypasses the shift register, and the motor turns just fine. So that leads me to believe that the transistor array is wired correctly.

When I plug the transistor array and motor into the 1st shift register that is triggering the relay correctly, It causes the relay no to work or the motor.

I’ve also tried swapping the shift registers to see if one was bad, but they function the same.

The motor only needs to move forward so I don’t really want to use a motor driver board, But I’m lost as to why this is happening. Or even how to correct it. It seems that the Motor is shorting out somehow.

At last resort I guess I could run the motors from a relay, but this to me seems wrong, the Transistor array should function like that.

HI @Brian

Have you looked at the 3.3V supply and ground pins on the HC595 shift register? Sometimes CMOS parts behave like this when you don’t have power hooked up right since they can phantom power themselves via the input protection diodes.

What specifically am I looking for ?

I know VCC is +3.3v into the shift register, using a voltmeter
and GND on the shift is directly connected to the GND of the powers supply

Your schematic doesn’t show the power and ground connections for the HC595–as in a lot of schematics, they are implied, so just to be completely clear: you have checked pins 16 and 8 of the HC595 for power and gnd connections, right? Pin 16 should be tied to +3.3V and pin 8 to GND.

So you mentioned that the ULN2803a works and the motor runs if you drive the inputs directly with +3.3V. Have you looked at the output of the shift-register HC595 when the ULN2803a is not connected to it? That might be a good step too. If it works OK without a load, try adding 100-1k resistor to GND to see if that works.

Also looking again at the schematic, where does serial data in enter the lower shift register? You have connected the two clocks and the reset, but pin 14 is undriven. This seems wrong.

looks like the schematic is a backwards here, Shift 1 Pin 9 (QH*) connects to Shift 2 pin 14 (SER)

So Keep writing more and deleting and re writing while testing. I figured it out. By adding a small capacitor from the UNL2803 output to the +12v rail Everything is running smoothly.

Thank you BKO for reading and taking the time to reply to my crazy ranting.

1 Like