Marty_DK:
Finally, I'm driving the motor with the standard arduino PWM frequency, which I believe is 500Hz.
I was hoping that relatively low switching speed would make a dedicated driver unnecessary - If I also used a suitable mosfet, like the IRL3034, for example..
500Hz is about all you can expect from the irlb3034 one. To find out what current you need to drive a mosfet is fairly simple.
Gate charge (coloumbs) / current (amps) = Time to charge (seconds).
for the irlb3034 for example. And a gate resistor of 270 Ohms. 5v/270 Ohm = 0.019A or 19 mA.
(there is a small resistance of the gate itself but quite small 2.1Ohm in this case)
gate charge = 108nC typical ( from datasheet Qg).
108/0.019 = 5685 ns or 5.68 us to charge or discharge the gate at that current.
To switch it on and off takes 11.4us
Pwm frequency at 500Hz has a period of 2000us. It would only spend less than one percent of the time switching, no worries (1/175).
Now if you tried to drive it at 20Khz = 50us period, It would spend 1/5 of the time just turning on and off.. massive switching losses .. bad news
I like to keep switching time to less than 1 percent ( some people say even less ).
So if you did want to drive this mosfet at 16Khz and have it switch efficiently.. working backwards..
16Khz = 62.5 us period.
62.5 / 100 = 0.625us ideal time spent switching, 312ns for charge time and discharge.
108nC / 312ns = 0.346Amps or 346mA.
So a mosfet driver capable of 350mA output would be needed to run this mosfet at 16Khz with one percent time spent switching.
These are ideal numbers switching times, I have used the irlr7843 ( 34nC Qg) direct from the output of an atmega switching at 16Khz with a 50 Ohm gate resistor, it works, the atmega might not last long but whatever..