I made a brushed dc motor driver. The motor speed is controlled with PWM (from an Arduino). The motor that I'm using draws 3 amps without load.
The first problem that I had was that when I tested the PCB for the first time R2 burned and Q2 was damaged (all three pin where internally connected). I though that Q2 was defective so I change it and the PCB worked perfectly. Then I tested the same circuit, different PCB, and happened the exact same thing, R3 burned and Q2 damaged, that can't be coincidence. Right?
Then I ran the motor at max speed for around 2 minutes, and the circuit worked fine, no overheating at all.
When I test the circuit with load (in a rc tank) the Heatsink heat a little bit (as expected), but then one of the drivers failed and the motor keep spinning. A mosfet failed.
Any suggestion on how to make the circuit work reliably, without the mosfet failing?