How to control DC Motor Drivers using Shift Register?

Hi, I just wanted to know if it's possible to control this

VNH2SP30 Monster Moto Shield

using shift register?

I have 10 dc motors about 10amp each, and I was wondering if this possible, so I can add more drivers using only one arduino uno like this:

If there's a better way to do this plz let me know . :confused:

Shift registers can be used if the motors are only turned on and off. PWM only can be simulated, with the PWM frequency and duty cycle resolution limited by the time for the shift-out of the data.

You may be better off with a multi-channel PWM module, with separately programmable PWM channels. These modules also have more than the 8 bit duty cycle resolution of the Arduino PWM outputs.

If you look at the schematic you will see that the driver uses 5 pins per motor (10 per shield):

CS (Current Sense)
EN/DIAG (Enable input, Diagnostic output: LOW = disabled)
PWM
INA
INB

You may find that you can leave the CS and EN pins disconnected. That leaves three pins per motor. The INA/INB pins set direction and braking. The PWM inputs control speed.

If you only need CW/CCW/Braking control connect the 20 IN pins to a chain of three 8-bit serial-in/parallel-out shift registers and you're done.

If you need speed control, connect the 10 PWM pins to one of those 12-channel PWM controller chips.

I think pulling EN low (to coast) would be the same as setting PWM to zero so if you use the PWM inputs you don't need the EN pins. You may want to connect the 10 CS pins to a 16-input analog multiplexer or to 10 of the analog inputs of an Arduino Mega. You may want to connect the 10 DIAG pins to a parallel-in/serial-out shift register so you can detect controller faults.

If you use an Arduino Mega you should have enough pins for everything without using shift registers: 16 PWM channels, 16 analog inputs, lots of digital I/O.

@DrDiettrich @johnwasser Thank you so much for your reply. Much appreciated

I need to control both direction and speed. I just ordered a new arduino mega along with a multi-channel PWM module for the digital pins and leave the analog pins for the shift registers. The rest of the arduino mega pins I'll use them for other devices like sensors..etc

Thanks and god bless! :slight_smile: