Speed Controller of 24v DC Motor with SLA Batteries and Arduino

Hello Everyone,

I am trying to build an Electric Bicycle for my senior project. My project includes 24V 350W 18A DC motor, Arduino, and SLA batteries. To start off this project i decided first to build a speed controller for the motor in one direction using arduino PWM, MOSFET (IRLB8743PBF), IC (4N35), and Schottky diode. I found similar project online and found a circuit diagram as shown in the link

. I built this circuit on a breadboard and connect 10k potentiometer to a programmed arduino but unfortunately i had some wires burned in the circuit. However, i think the circuit worked once i connected it to the SLA battery because the motor was turning with low speed (potentiometer on low level).

I am wondering if the burn cause was because of the high current that was coming out from the SLA Battery and the wires couldn't handle this high current or something wrong with the circuit ?! Is anyone have any idea of how to fix this issue or how to build a simple speed controller for this motor ?

Thanks :grinning:

Wires burn because too much current flows.

The clue is what wires burned, you have not told us this so it is hard to say.

The circuit looks fine.

Aside from what Mike said, the absolute maximum gate-source voltage for a IRLB8743PBF MOSFET is 20V. (Edit: The same goes for most MOSFETS, I should add.)
This won't be the cause of the problem, but assuming a 24V supply, this could lead to a very short life-span for the MOSFET.

PWM (speed control) won't be possible either with a simple opto and a 10k pulldown.
Switching losses (heat) would be very high.
Leo..

What size wire did you use for the motor leads? At 18A motor rated current I would use at least #12.

As "OldSteve" has pointed out you should bridge down the gate voltage to something comfortably below 20V or risk losing the MOSFET.

I'm using much the same circuit for a 110vdc motor and it's working nicely but in view of the much higher current you are using you should plot the MOSFET characteristics which you can get from the data sheet, add in the motor load line and max power dissipation hyperbola and find out just where you are working in the MOSFET capabilities.

Wawa:
PWM (speed control) won't be possible either with a simple opto and a 10k pulldown.
Switching losses (heat) would be very high.
Leo..

Yes but as you see it is the wire that burned and not the FET so the problem was not the switching loss like you speculate.

OldSteve warned OP for the max gate voltage, I added slow switching speed.
You need to look at mosfet drivers if you want to control a 350watt motor.
18Amp might not even be the stall current.
Beurnii, a poster here, worked on a similar project last year.
One of the threads:
https://forum.arduino.cc/index.php?topic=341707.0
There are more.
Leo..

, I added slow switching speed.

I know, but clearly this is not a problem here otherwise the FET would overheat not the wires.

Wood - trees vision problem.

Wawa et al
18A will most certainly not be the stall current. The stall current will be set by the applied voltage and the armature resistance, Ra.
Just to extrapolate from the rating data omarabdulla gave, rated current X rated volts gives 24 X 18 = 432 watts.
The rated watts is 350 so the motor loss must be 432 - 350 = 82W
Making the assumption that the loss is entirely due to Ra (a very close approximation):
Since P = I^2 X R 82 = 18^2 X R or 82 = 324 X R so R = 82/324 or .26 ohm
If stalled at rated volts the current will be 24/.26 = 92 amps
In view of this I would provide a current limit in the control software.

I should have mentioned this before. A dc motor generates lots of noise so you will need an RC snubber across the motor, preferably at the motor terminals. I have settled on .47 mfd and 100 ohms although there is a wide range of usable component ratings for this. I tried 10mfd and 25 ohms and this worked fairly well.
One thing to watch is voltage rating for the capacitor and watts rating for the resistor. I would use 100v and at least 2 Watts for your system. I tried a small resistor, 1/2 watt or so and it immediately lit up like a candle.

phoxx:
If stalled at rated volts the current will be 24/.26 = 92 amps

You can't ignore total system resistance.
Battery, connectors, wiring, fuse, mosfet, etc.
Leo..

Hi,

this circuit on a breadboard and connect 10k potentiometer to a programmed arduino but unfortunately i had some wires burned in the circuit. However, i think the circuit worked once i connected it to the SLA battery because the motor was turning with low speed (potentiometer on low level).

"BREADBOARD" HIGH CURRENT don't mix.

Can you post a picture of your burnt offerings please, what wires burnt?

TIP: You are using currents that as you have found capable of destroying things, use a fuse in the power lead from the battery to at least provide some protection. It is NECESSARY if you don't want to set fire to anything or one.

You need to check your road legislation too, electric bikes are allowed in most countries, but motor power levels dictate if you are legal or need registration.

You need to check the freq response of the opto and the PWM frequency from the arduino.

Tom...... :slight_smile:

WAWA
you're right, other resistances enter in but I was looking for a ballpark figure which would give some idea of what we are dealing with. The method I used was an "on the job" approach where you usually don't have all the information and have to use mental arithmetic and get a quick usable answer.