Motor shield to control 3 12V DC motors?

Hi everyone,

I am working on making a control box where I have 3 DC motors that have encoders on them (See here). I want to control using the Arduino and Matlab. I actually bought the Adafruit motor driver V2 but neglected to realize that it can only drive motors up to 3A stall current max, whereas mine is 3.6A. Additionally, I'm not sure it can even control 12V motors.

I found this and it seems doable at first, but gets rather complicated later on. I would rather not have to directly control the voltage and current, but instead have a shield or chip of some sort do it for me.

Is there anything like that I could use? For example, when using load cells I hooked up a INA125P as a cheap but simple amplifier. Is there an IC that allows analog or digital input and then supplies the correct current/voltage to the dc motor? I want to be able to control both directions and understand I will need a secondary power supply.

Thanks!

Hi,

the Adafruit Motor shield V2 looks good for the motors, as long as the continuos load/current is not exceeding the rated current of the driver ICs. The only problem with that shield will be matlab. You have to build you own library to talk to the motor controller over I2C. Matlab/Simulink does support I2C on an Arduino but I doubt that you can use a third party library that uses I2C in simulink.

The INA125P you mentioned for your load cells is an opamp which is used to amplify a signal, it is not a power amplifier. You could build your own power amp with a transistor and a few passives, but to control the speed of a motor you should just use PWM. You read the output of the encoder, calculate the rpm of the shaft and then adjust the PWM.

Hey, thanks for the reply, that is very informative.

As far as I2C, I don't think it is possible with Simulink but directly with Matlab code it is. There is an Adafruit Motor Shield V2 library (surprisingly).

Strangely I couldn't get the code to work, but maybe I'll try it in C++ later just to see if it was a software or hardware issue. Since I have the Arduino Mega 2560 R3 it seems to be fully supported, while R2 and lower require some jumping between analog pins to the I2C pins.

Also thanks for replying to that other post. Since I'll likely use a max of 2A current supply, I suppose I might as well just go with this driver shield (Adafruit). I was considering the other because I thought I needed higher current. The loads are relatively low that the motors will need to withstand, but I will check for current draw under load later.

Thanks!