Choosing a Motor Shield

Hi,

I have a quest(ion) to find a good 24 - 36 V/ 8 – 15 A motor shield for my project.

At the moment I have 2 DC motors, that I would like to use for an electric assisted bicycle. One is a 250 W (@ 36V) Hub-motor (build inside a bicycle wheel), the other one is a 350 W (@ 24V) sprocket-motor. For convenience sake I’ll start my project with the 36 V Hub-motor.

The power is supplied by semi-traction lead acid /lead gel batteries, placed in series (in the future I would like to upgrade to Li-ion).

I want to use PWM for speed control, in combination with a throttle handle bar (originally for the Hub-motor). I would like to use an Arduino in combination with a good but inexpensive motor shield.
So I think I should be looking for a 36 V, at least 8 A motor shield, compatible with an Arduino.

At last but not least, I would prefer to use an European based website/shop (I’m located in Rotterdam, the Netherlands).

My quest brought me this: www.robotshop.com 1 and www.robotshop.com Some of these robotshop Pololu motor shields talk about an absolute maximum of 40 V, so I wonder if it applies for all.

Questions:

  • Are the above motor shields good for my project?
  • Are there any motor shields out there, preferably in the 30 – 100 Euro range, matching the requirements?
  • The 12 V lead batteries have a peak voltage of about 13.5 V, three in series would equate to a maximum voltage of 40.5 V instead of 36 V. Do I need to consider this higher voltage when looking for a motor shield, or can I use a version advertised as 36 V without risk of damage?

Alternatively I found this on Amazon: All in one solution

  • It looks like it could easily be implemented (without using the original throttle handle bar). Are there any risks with this approach, or is it feasible?
    If all else fails (I’ve read very mixed reviews): Banggood

Best regards Cubo

If you can get a data sheet and circuit diagram, you can look up the transistor data.

One of the most important difference between cheap and expensive motor drivers seems to be the cooling. Do you think that you have enough place and cold air for cooling such a driver? If not, try a cheap one and add temperature monitoring at least for a testing period. Also consider what can happen if a motor driver burns and shorts the battery.

Do you need to run the motor in both directions? If not, a single high-power MOSFET might be sufficient.

Like the ON Semiconductor RFD14N05L for $1.03:
https://www.digikey.com/product-detail/en/on-semiconductor/RFD14N05L/RFD14N05L-ND/458750

The gate voltage is 5V so you can drive it directly from the Arduino (through a resistor). It can switch 14 Amps. You should probably clamp it to a heatsink. At that price you can afford to put two in parallel to share the load. :slight_smile:

DrDiettrich:
If you can get a data sheet and circuit diagram, you can look up the transistor data.

One of the most important difference between cheap and expensive motor drivers seems to be the cooling. Do you think that you have enough place and cold air for cooling such a driver? If not, try a cheap one and add temperature monitoring at least for a testing period. Also consider what can happen if a motor driver burns and shorts the battery.

It surprised me that the robotshop motor shields don't have any heat sinks or ventilation, I could add those but other then an vent blowing straight on the circuitry I don't see any real options?

I don't mind looking up the transistor data but at this point, to me a transistor is one of those small black thingy's with three legs, that in essence is a small switch? I wouldn't know what to look for really, if you have a link or more information about the subject I will read it. However do to my lack of understanding, I thought I'd best to go for something as complete friendly as possible.

I have welded the bicycle with less amps than what would happen if those batteries would short circuit :wink:

johnwasser:
Do you need to run the motor in both directions? If not, a single high-power MOSFET might be sufficient.

Like the ON Semiconductor RFD14N05L for $1.03:
RFD14N05L onsemi | Discrete Semiconductor Products | DigiKey

The gate voltage is 5V so you can drive it directly from the Arduino (through a resistor). It can switch 14 Amps. You should probably clamp it to a heat sink. At that price you can afford to put two in parallel to share the load. :slight_smile:

That sounds potentially dangerous, is it dangerous? If not it could work for the 36 V hub-motor.

At that price I could put 5 in parallel and use a heat sink without ventilator? Also could I not essentially build a H-bridge out of those MOSFETS?

Best regards Cubo

Cubo15:
Also could I not essentially build a H-bridge out of those MOSFETS?

Yes, you can build an H-Bridge with MOSFETs. It's more complicated, more dangerous, and only useful if you want to run the motor in both directions.

An example of the danger is "Shoot Through" where the MOSFETs are turned on in such a way that the power supply is shorted. This causes a large current to flow, generally enough to destroy the MOSFETs and/or the wiring.

After a lot of reading I concluded that I’ve some problems, I was previously unaware of (I would have blown everything up). If I want to use any or multiple MOSFET’s, I think the following applies:

• Due to the capacitance of a MOSFET, I need a bleeder resistor between the Ground and the Source, a typical value is 10 kΩ
• To limit current from the Arduino, I need a resistor between the Arduino and the Ground, a typical value is between 200 – 1kΩ

• Multiple MOSFET’s (although Voltage driven) are best, not driven from a single Arduino channel (something with heating up and negatively effecting switching speed)
• Therefore multiple MOSFET’s usually have a chip or circuit between them and the Arduino

Therefore my best bet would be to find a MOSFET chip or better, a complete circuit (readily made) and combine that with multiple heatsinked MOSFET’s.

Secondly, to drive the motor in reverse and at the same time eliminated any danger, I was thinking of either using a H-bridge or using a double pole switch that manually reverses the polarity of the motor (while the circuitry isn't sending any signal). It is only needed if the bicycle needs to be put in reverse and situations like that are rare anyway.

Question:

Now I was thinking, could I use a cheap and simple (for the 36 V motor directly insufficient) motor shield like the L293D (up to 10 V and 600mA per channel) and use that to drive the power MOSFETS’s?
That way I could driver multiple motors, for now and future projects, without limitations as how large/strong the motors can be whilst utilizing PWM.

Will it work, any drawbacks?

johnwasser:
Yes, you can build an H-Bridge with MOSFETs. It's more complicated, more dangerous, and only useful if you want to run the motor in both directions.

An example of the danger is "Shoot Through" where the MOSFETs are turned on in such a way that the power supply is shorted. This causes a large current to flow, generally enough to destroy the MOSFETs and/or the wiring.

For another project I’m going for a relais based H-bridge (because I don’t need PWM), I suppose the way around this “danger” is proper programming, or is there something else I need to keep in mind?

Cubo15:
• Due to the capacitance of a MOSFET, I need a bleeder resistor between the Ground and the Source, a typical value is 10 kΩ

News to me. When using an N-Channel MOSFET as low-side switch (between Load and Ground) the Source pin is connected directly to Ground.

Cubo15:
• To limit current from the Arduino, I need a resistor between the Arduino and the Ground, a typical value is between 200 – 1kΩ

I believe that should be "between the Arduino pin and the Gate of the MOSFET". This is to limit the current when charging the Gate capacitance.

Cubo15:
• Multiple MOSFET’s (although Voltage driven) are best, not driven from a single Arduino channel (something with heating up and negatively effecting switching speed)

Yes. MOSFETs have very low resistance when fully ON. Each MOSFET in parallel adds more Gate capacitance. The resistor limiting the current from the Arduino pin will limit the rate at which the Gate capacitance can be charged. That increases the amount of time the MOSFET is not fully ON. The increased average resistance causes more heat dissipation in the MOSFET.

Is it possible to use multiple channels of a motor shield (or multiple motor shields), for the same motor?

This 50V motor shield is safe for 36V but has a maximum of 2A per channel (and 2 channels per shield).

Could I use 2 shields and use all channels (so four in total), in parallel to switch the single 36V motor?