Peltier driver: MOSFET heats up fast

Hi everyone,

I'm a software engineer with a budding interest in electronics. I also have an interest in brewing beer and I thought it would be a nice idea to combine two hobbies.
Therefore I bought the Arduino starter kit and as a first project I would like to control the temperature during the fermentation process (keep it at 20 degrees Celsius for 14 days). My plan is to use a Peltier element as a heating device.

I've implemented the PID loop, am able to write logging data to an SD card, read out the temperature sensor and control the Peltier via PWM. The problem I'm running into however is that the MOSFET I use to drive the Peltier heats up very fast (painful to touch after about 10-15 seconds).

To identify the problem I've isolated the Peltier-driving part from the project. I've adapted the circuit of project number 9 in the Arduino starter kit book but replaced the motor with my Peltier, left out the switch and replaced the 9V battery with a 12V / 3A DC adapter.
Project 09: Motorized Pinwheel


int peltierPin = 3;

void setup() {

void loop() {
  analogWrite(peltierPin, 60);

With a PWM value of 60 as in the code above the Peltier heats up slowly on one side, and cool on the other, however the MOSFET gets hot incredibly quickly. While heating is the intention, I'd prefer to only do it with the Peltier :-).

Arduino Starter Kit
Peltier: TEC1-12706
Source: 12V / 3A DC adapter

I've attached a photo of my setup. Help is most welcome :slight_smile:

++Karma; // For a well presented first post.

You need a logic level MOSFET, which that is not.

Try IRL520, the L denotes logic level.

Logic level MOSFETS are designed to turn on fully with 5V, hence logic level. Other MOSFETS require more than 5V, so yours is not turning on properly, is acting as a resistor and thus getting hot according to I x V.

Don't beat yourself up about this; it's a mistake I've made and I really should know better!

Much appreciated!

I've ordered a few and will continue next week.

Can I assume the heatsink devices are on the cold side of the Peltier? Are you going to use a fan to keep them warmed to room temperature? If not, you would be better off to just use a resistor to produce the heat, which will be what you are really doing, using the internally generated heat form the Peltier junctions.

Interesting problem. Your peltier device uses 60 Watts, that is 5 amps at 12VDC. Expect to replace it with a more powerful one. The MOSFET suggested will probably get above 100C depending on your heatsink. Picking a logic level MOSFET with a lower RDSon will run a lot cooler. I generally use a BTS7960 bridge for prototyping, it makes a great LED driver. You can use it as two single drivers or Bridge and they are very inexpensive. Another device is a BTS660, it also works great and will stay cool at 5 amps no heat sink. It will need an open collector driver (transistor) to drive it.

Alas the IRF520 is fraudulently sold as suitable for use with microcontrollers like Arduino,
which is it not. Its a hopeless choice for most scenarios in fact - wrong voltage rating,
very poor on-resistance, not logic-level, and absolutely ancient.

For low voltage use choose a logic-level MOSFET with say 30 to 40V rating, 0.015 ohms
on-resistance or better.

If you want to interface to a MOSFET from a 5V microcontroller you need either to
choose a logic-level MOSFET (The on-resistance in the datasheet will be given
for Vgs=4.5V or 5V). Or you can use a MOSGET gate driver chip (powered at 12V) to
drive any non-logic-level MOSFET. Very important - don't be confused by the threshold
voltage rating, this is not the on voltage.

If you have a 3.3V microcontroller the options are much more limited as MOSFETs
able to work from 3.3V are almost all surface mount only. MOSFET gate driver chips
are usually 3.3V logic compatible thankfully.

If you want to use PWM with a MOSFET driving a high power circuit, choose a MOSFET
gate driver chip anyway.

An example is the MIC4422, available in through-hole and surface mount.

I would like to control the temperature during the fermentation process (keep it at 20 degrees Celsius for 14 days). My plan is to use a Peltier element as a heating device.

Better to use a heating element for heating.

If you want to use the Peltier for cooling, then you need a much larger heatsink than those stick-on heatsinks.
Think "large computer CPU heatsink with fan".

A 36watt (12V*3A) power supply is not enough for a 60watt Peltier.

A breadboard can't carry those high currents.

Think large heatsink with noisy fan in fact - lots of rapid airflow as every degree cooler you can make the
warm side, the cool side will benefit by the same amount. You want to bring the warm side temperature
down close to ambient, not just dissipate the heat.