Hi there. I have the VNH5019 shield and for some reason it keeps stopping under load. I will try to explain the situation.
First off - the programming side of things is ok with me but the electronics side I’m not the best with.
Anyway I bought this controller for use with a kids electric car. It has two upgraded 12v motors and I have an accelerator that acts as a POT so it has variable speed control. It’s all hooked up and works great. But when it’s in the grass going up a hill, it dies pretty much straight away and I have to power it off/on again.
First of all, I have configured it to use just 1/3 of the speed, so the motors won’t go more than md.setM1Speed(133).
I’m using an 18v battery (I know - I’m over volting these motors - I have another kids car with the same battery and motors with some other (basic) controller, but it that works fine) and according to reports, the motors can each spike at 15A in the grass at 12v so that would be around 22.5A @ 18v. I don’t have a multimeter that can test that many amps. But I’m not 100% sure that it’s the current that’s causing the issue or the way I’ve wired it up. I’ve currently only got a 20A fuse so I would have expected that to blow if it was drawing a fair amount of current.
If I disconnect one motor and then manually hold the other motor with my hand (to stop it from spinning) and then apply power to it (which then the motor tries to spin but can’t because I’m holding it), after a few seconds the controller stops and needs to be turned off/on again. This is only just applying a small amount of speed to the motor.
If I then touch the IC, it does feel rather hot. But not sure if that’s the reason it’s shutting down.
I guess my question is - is there a way I can check to see why it’s failing?
Also, I am using thick wires (12awg) but I’m using really small connectors to the motors that are kind of just hanging in there loosely. And I’m also using the standard 5mm terminal blocks (which is almost impossible to put 12awg wire in to) and the soldering of these blocks could use a bit of attention (I think there is some movement there if I wiggle them) - I’m only in the testing phase so that’s why I haven’t hooked the wires up permanently but could any of those issues cause my problem?
I bought some heatsinks today and put them on before but it still dies. Although when it does die, I only have to wait about 10 seconds and then it starts working again. Not sure if that can help diagnose the issue.
The behavior you are describing sounds consistent with the drivers drawing too much current and triggering the thermal shutdown protection. Can you post some pictures of your setup and a datasheet for your motor (or a link to where you got it)? What are you using to power and control the VNH5019 shield?
If you do not have a tool that can measure the current, you could try using the drivers’ current sense outputs. You can find information about those in the Current sense outputs section of the user’s guide, which is available on the product page under the “Resources” tab. Also, our Arduino library has functions for reading the current sense pins.
By the way, it seems like your application might be pushing the limits of what the included terminal blocks are rated for; they are rated for 16A. I suspect it is probably still okay for your application, but you might consider soldering your wires directly to the board to get a better connection, especially since you are using such large wires. At minimum, I recommend checking if the wiggling you mentioned is coming from the play between the plastic body and the pins of the terminal block, or if it is actually coming from your solder joint. If it is coming from your soldering joint, then that should definitely get fixed before you do any further testing.
Anyway when I tested the current, before the controller dies, it gets to about 30A for a few seconds and then stops (I’m surprised the fuse doesn’t blow actually but I know they can handle spikes).
I have another question - lets say there’s only a small amount of power running through it, say 3A, and I forcibly stop the motor from spinning (I know this is not good for it) - can this cause a fault? Does the controller know that because there is current flowing through, it expects the motor to turn but because it doesn’t, it generates a fault.
Having said that, 30A is pretty high, I wasn’t expecting that when I simulate heavy load. And that’s not even at full power.
Sorry I forgot to say that the power source is an 18v milwakee battery, the same as this: Sydney Tools
As for controlling it, I’m using an arduino Leonardo.
I’ve soldered the wires to the motors. Next I will solder the power cables to the controller as well. After putting the heatsinks on, for some reason the controller seems to die within a couple of seconds, and they aren’t really hot to touch. Hopefully soldering the power connections will make a difference.
When the shaft is locked, by definition the motor draws the stall current, which most likely overloads the motor driver (rated at 30A maximum). Brushed D.C. motors also briefly draw the stall current every time they start up. So, drawing the stall current is not a fault. You must choose a driver that can safely handle the stall current of your motor.
Note that the motors in some toy scooters have stall currents as high as 100A.