My combat robot uses an L298N as it's main driver. That thing is having its maximum current rating pushed through it all the time, and is dealing with digital (on/off) motor control at 12V. And it doesn't get hot in the slightest. I even removed the heatsink for the sake of weight reduction (-5g) and it's still only slightly warm.
Why is my L298N staying cool while everyone seems to complain about how "inefficient" and "hot" they are? It's not like I'm pushing a small amount of power through them.
The only thing that comes to mind is braking. A lot of motor control code applies power to both terminals of the motor as a brake. Because I'm using geared motor, the output shaft stops immediately after power being taken away, meaning I don't need to actually "brake". If that didn't make sense, basically my "motor stop" code looks like:
digitalWrite(4, 0); digitalWrite(5, 0); digitalWrite(6, 0); digitalWrite(7, 0);
instead of the usual
digitalWrite(4, 1); digitalWrite(5, 1); digitalWrite(6, 1); digitalWrite(7, 1);
Yes, shame on me for not using arrays. Nevertheless, while motors are in the state of power on both sides, they start drawing obscene amounts of current that I suppose could heat up the L298N, but mine never actually enter this "braking" state. So is this why my L298N doesn't get hot? Are L298Ns getting hot just a myth? I need help figuring these things out.