Does someone make an H-bridge motor controller that doesn't require a PWM input and can handle at least 12V 10 amps on the high power side? Furthermore, one that doesn't share a ground with the motor. I've been scraping the internet and my nails are all gone! I don't know if I'm looking up the wrong key terms. Do I have make my own if I really want one - actually 16. Seems like these would be much better than the mechanical relays that flood the market for high voltage control from an arduino. I would like to use these in place of 2-channel relay modules that control linear actuators. I don't need to control the speed just need to full speed extend and full speed retract, but would like the reliability of a board without any mechanical components. Furthermore, I don't want the LVM because I'm using a MEGA and would like to keep these actuators controlled from one board - the MEGA has 15 LVM outputs.
Robin2:
If you don't need speed control then you should be able to use any h-bridge to give full speed in either direction.
...R
Nope, the standard topology(*) requires PWM to pull HIGH. This is due to the bootstrapped high-low
MOSFET driver configuration. A few MOSFET drivers can do continuous HIGH, like the HIP4081A, but
most don't bother as the microcontroller can be programmed to match.
(*) Read datasheets for chips like HIP4081A, FAN7388, IRS2001
MarkT:
Nope, the standard topology(*) requires PWM to pull HIGH.
I certainly don't claim to be an expert but analogWrite(p,255) is identical to digitalWrite(p,HIGH) and analogWrite(p,0) is equivalent to digitalWrite(p,LOW).
Are you saying that those won't work with some h-bridges?
IIRC I have used an L298 module, a DRV8833, an Infineon TLE5206 and a ROHM BD6212. I have never consciously avoided analogWrite(p,255) and I have never noticed any problem with any of them.
Robin2:
I certainly don't claim to be an expert but analogWrite(p,255) is identical to digitalWrite(p,HIGH) and analogWrite(p,0) is equivalent to digitalWrite(p,LOW).
Are you saying that those won't work with some h-bridges?
IIRC I have used an L298 module, a DRV8833, an Infineon TLE5206 and a ROHM BD6212. I have never consciously avoided analogWrite(p,255) and I have never noticed any problem with any of them.
...R
I'm talking about real motor drivers, big beasts using 4 discrete n-channel MOSFETs for high current...
The L298 isn't MOSFET, can't handle any current anyway. Single chip H-bridges will say in the datasheet
what there behaviour is, but most can't handle a motor bigger than a walnut, certainly not the
10A given in the question...
What concerns me is that the 12v power supply for the motor needs to share a ground with the 5v arduino input if I'm understanding the documentation correctly. Am I correct about this? It also seems I can use it without PWM, but I may need to keep that option open.
One other thing I don't see in the documentation is how many amps the control side pulls. I'm assuming it's minimal. I would like to control at least 12 and at most 16 of these from one MEGA. In these situations do I go and look up how much power the chip requires to flip the switches?
Yes, there has to be a signal return path from the driver's logic ground back to the Arduino's GND so the signals sent from the Arduino output pins have a path back to the Arduino (a CIRCUIT). I wouldn't think the control logic would take more than a few milliAmps.
Buy one and give it a shot.
First of all, we’re talking brushed DC motors, not brushless.
Don’t know what your budget is, but I’ve delivered an industrial ‘bot using six of these: CTR Electronics
off a Mega. These are less sophisticated but will work too: CTR Electronics
It says their control is “PWM”, which is true in the strict sense - it’s not the 0-100% duty cycle PWMs that you’re thinking of, and generated off Arduino PWM pins. Their “PWM” is the signaling used to control hobbyist servos. You use the Servo class Servo - Arduino Reference where the parm of 0 is full speed one direction, 90 means stopped, and 180 means full speed the other direction.
Their yellow wire goes directly to an DO pin, and green wire (the small green wire) to ground. Other writers are correct in that the speed controller control signal (small green) and power input ground (black) must be common to the Arduino ground. The supplied output power goes directly to the motor and neither of the two output wires is grounded, both go directly (and only) to the motor.
They’re smart enough to figure out whether their control input is CAN or the Servo-lib PWM. They also have a button that switches between “coast”, when the motor is set to stop it will freewheel to stop, or “brake”, where the motor is actively braked when its speed is set to stop: http://www.ctr-electronics.com/downloads/pdf/Victor%20SPX%20User's%20Guide.pdf
I'd forgotten those BTS7960 half-bridges - they use one p-channel and one n-channel FET chip
and a controller chip all in the same package, obviating the need for bootstrapping. Total
voltage is limit to 40V or so but still its probably the right solution for your needs.
p-channel FETs are rarely used in high power electronics due to their 3 times higher on-resistance
for the same die size, but this is a counter-example that fits a niche.
Update: I want the PWM! The BTS7960 works great! I'm able to do a smooth ramp up on the acceleration and deceleration to the limit switch nicely. So far so good. I think this is the ideal solution for a linear actuator. I'll have to change my plans a bit as far a controlling everything from one MEGA, but I think that was inevitable. I'll probably be asking about that soon.