Peltier PWM controller (setpoint temperature)

Hi all,

This will hopefully be my first of many posts on this forum.

I must admit I am a totaly noob when it comes to general electronics knowledge I know a tiny bit about voltages and currents. Just don't start about Ohms and stuff.

I am willing to learn however as the Arduino has really peaked my interest.

I have had an idea in my had for a long while.

I am a Peltier fanatic. I love them.

But now I want to go a step further past the normal PC usage(100% powered TEC all the time!).
I want to control it! preferably with the Arduino.

I would just like to know if the following is ever possible with the Arduino before I start diving into this.

I want to be able to control multiple high powered TECs(100W+) via PWM with the Arduino.
This is possible with the Arduino. The part I wasn't able to find was.

I want to be able to set a temperature which the arduino should compare to a temperature sensor and adjust the PWM duty cycle accordingly

Example:

My TEC is cooling the water which in turn cools the CPU, the water temperature I have set is 20C.
When I start to load my CPU this temperature will rise. I want the Arduino to raise the duty cycle of the PWM until the water has been dropped to 20C again or until PWM has reached 100% ofcourse.

Is such a thing possible with the Arduino or is this out of its league?

I realise that I will need to learn a lot before I can implement this, but if it isn't even possible why bother?

Beste regards,
Pebbles

Welcome to the wonderful world of the arduino.

Yes this is possible and not too complex. You will have to drive the Peltier device with a FET but that is simple enough. And yes you will have to learn about ohms.

my thoughts,

start reading a free booklet - http://www.earthshineelectronics.com/files/ASKManualRev4.pdf

I would just like to know if the following is ever possible with the Arduino before I start diving into this.

Sometimes you just need to do it to find out -> tinkering is fun!

A popular thermometer is the DS18B20 which has a good library - MilesBurton.com - The examples should get you started.

Thank you for the welcome :slight_smile:

I have indeed read that a FET is the way to go for powered higher powered devices like TECs with PWM.

The part which I have not seen on the WWW is the setpoint temperature and automatically adjusting PWM Duty cycle.

I am looking to write a windows application in which you can see the current temperature and the setpoint temperature. If I can also show the current PWM Duty cycle on screen that would be awesome.
Example application

PS: What software is recommended for mapping out a circuit? preferably something that is easy to work with for a novice like me.

The part which I have not seen on the WWW is the setpoint temperature and automatically adjusting PWM Duty cycle.

There are two ways of doing this. The first is the easy banging, turn on if it is too hot, turn off if it is to cold.
The second is to use the same principals of servo control where the closer you are to where you want to be the slower you go. This can involve a lot of maths. Try looking up servo control loops.

Grumpy_Mike:

The part which I have not seen on the WWW is the setpoint temperature and automatically adjusting PWM Duty cycle.

There are two ways of doing this. The first is the easy banging, turn on if it is too hot, turn off if it is to cold.
The second is to use the same principals of servo control where the closer you are to where you want to be the slower you go. This can involve a lot of maths. Try looking up servo control loops.

This is exactly what I am looking for. The first option is to inefficient + in a Computer the On/Off part can make the 12V line in the PSU fluctuate.

I will look op the servo control loops.

This is exactly what I am looking for. The first option is to inefficient + in a Computer the On/Off part can make the 12V line in the PSU fluctuate.

I think inefficient is the wrong word, it is actually very effecent but is subject to overshoot and undershoot. However using PWM is not going to do anything about the PSU fluctuations, that is a problem with the PSU not being able to supply enough current. It will be worse with PWM because of the constant rapid switching.

Grumpy_Mike:

This is exactly what I am looking for. The first option is to inefficient + in a Computer the On/Off part can make the 12V line in the PSU fluctuate.

I think inefficient is the wrong word, it is actually very effecent but is subject to overshoot and undershoot. However using PWM is not going to do anything about the PSU fluctuations, that is a problem with the PSU not being able to supply enough current. It will be worse with PWM because of the constant rapid switching.

Although my electronic knowledge is low. I do think that when I run the PWM a 2+kHz(recommended for Peltiers) the PSU won't be affected by the fluctuations. my is idea to have fairly slow changes in PWM duty cycle.

If I start adding heat to my peltier cooled waterloop and the PWM duty cycle for example was 25%. That the PWM should slowly rise 30-35-40 until the new equilibruim is found.

Also I will be using a proper high wattage computer PSU which are pretty robust and stable.( they have to handle GPU's and CPU's going from idle to full load, so why shouldn't they be able to handle a peltier going from idle to load?

This is the kind of PSU I am talking about:
Corsair AX850 review(test results)

PS: Over- and undershooting is a risk with the setup I have in mind. Condensation can be a problem.

Although my electronic knowledge is low. I do think that when I run the PWM a 2+kHz(recommended for Peltiers) the PSU won't be affected by the fluctuations. my is idea to have fairly slow changes in PWM duty cycle

It matters not if the device is on all the time or running under PWM the instantaneous current draw from the supply is the same. It is only when you average the current flow over several cycles is a PWM at say 50% half the current of it being on all the time. If the turning on of the device causes a glitch in the PSU then it can't supply that much current instantaneously and so driving a load with PWM will show the same problem.

As you don't say what the load is it is hard to say if that PSU is up to the job.

Lets see if I understand correct.

Say that the TEC I am going to use draws 20A at 12V.
If I run a 50% duty cycle on the PWM then the the TEC will be as if it is working at 6V 10A.
But in fact it is running at 0A 0V for 50% of the time and 20A 12V the other 50%, because of this the PSU needs to be able to withstand the 20A that is being drawn by the TEC 50% of the time even though that switching frequency in the TEC is over 2000 times a second?

Please correct me if I'm misunderstanding what you are trying to say.

edit:
Just a quick question, will this method require cooling of the FET I might use?

I have found this topic on another forum a while back, it applies the same idea I have only with a ready to go fancontroller as PWM means.
Topic

search for "N-channel MOSFET 96A 100V TO220 IRFB4410" to find the part about the MOSFET he is using
search for "20/12/08" to find a picture of how he build his transistors. Those black boxes are heatsinks? are these always needed when working with high amp MOSFETs?

because of this the PSU needs to be able to withstand the 20A that is being drawn by the TEC 50% of the time even though that switching frequency in the TEC is over 2000 times a second?

Yes the peak current is the same PWM or not. The output capacitor on the PSU will be able to spread this a little but if full power gives a glitch (dip then rise in voltage) the a PWM will give the same glitch.

Say that the TEC I am going to use draws 20A at 12V.
If I run a 50% duty cycle on the PWM then the the TEC will be as if it is working at 6V 10A.

No 50% would be running at 10A still at 12V. If you half both voltage and current you have a quarter of the power.

will this method require cooling of the FET I might use

It depends entirely on what sort of FET you use.
This brakes down into it's package dissipation, the current you are drawing and the on resistance of the FET.

"N-channel MOSFET 96A 100V TO220 IRFB4410"

This is not a logic level FET and so can't be driven directly from the arduino. You either need a logic level FET or you need to boost the arduino's 5V output signal to at least 10V with a transistor or another FET.

Grumpy_Mike:

"N-channel MOSFET 96A 100V TO220 IRFB4410"

This is not a logic level FET and so can't be driven directly from the arduino. You either need a logic level FET or you need to boost the arduino's 5V output signal to at least 10V with a transistor or another FET.

OK i looked up what you meant with logic level FETs.
Standard MOSFETs require a 10V gate voltage to be turned on 100%
Logic level MOSFETs require 5V gate voltage to be turned on 100% <----- this one i need to run PWM directly from the Arduino as the Arduino's operating and thus PWM voltage is 5V right?

I think that based upon your level of knowledge you may better using a motor controller. Something like:
http://www.robotshop.com/eu/cytron-10-30v-30a-single-brushed-dc-motor-controller.html?utm_source=google&utm_medium=base&utm_campaign=GoogleUK

This would make it straightforward to do. I know it's a lot more than just buying a suitable mosfet but bear in mind that a simple mosfet circuit doing PWM will create a lot of interference and probably need cooling, especially if you are controlling it from an Arduino pin.

I've looked around a bit and it seems you can't just drive a peltier with a PWM signal - it requires smooth DC drive so you need to low-pass-filter the PWM with LC filter. To keep the filter components manageable that means a high switching frequency.

Peltiers physically wear out (thermal cycling) if switched on and off at low frequencies and if switched at high frequencies you lose lots of power as they absorb the AC component as heat. Well that's what some site say but I think the real problem is that they are very good heat conductors when not carrying current.

call me stuborn but I really want to do this from scratch ]:smiley:

I've been reading into MOSFETs and I believe I understand the basics now.

What I am looking for is een N-channel enhancement MOSFET which has a fully-on state @ 5Vgs.
Looking at the TECs I plan to use(12V/10A) I will need a MOSFET capable of handling 12V+ and over 10A.

I found that the Rds(on) should be as low as possible to reduce Power dissipation in the MOSFET.

I have found this MOSFET which I believe should be perfect for my usage.

N-channel MOSFET,IRL3202 48A 20V

It has the following specs:
Vdss: 20V (TECs will run @ 12V)
Rds(on): 0,016 Ohm
Id:48A@25C (TECs will be 10A each, will use 1 MOSFET per TEC)

To calculate the Pd(power dissipation) at the MOSFET I need to do Id²*Rds(on) this gives me 10x10x0,016=1,6W no heatsink required right?

Does this all add up?

I will ofcourse be looking if I need an LC Filter.

Can the Arduino drive multiple MOSFETs off 1 PWM output or do I need to use 1 PWM output for each MOSFET I want to drive?

Does this all add up?

Yes. :slight_smile:

I will of course be looking if I need an LC Filter.

Where?
Supply decoupling - probably.
On PWM signal - no.

I thought about trying this with a mosfet shield, maybe worth looking at: Power Driver Shield Kit - DEV-10305 - SparkFun Electronics

Grumpy_Mike:
Yes. :slight_smile:

YAY! learning is fun!

Where?
Supply decoupling - probably.
On PWM signal - no.

I don't know, I'm trying to find some meaningful information. I'm unable to find any obvious information why it would be needed and what the consequences are if I don't get one.

techadmin:
I thought about trying this with a mosfet shield, maybe worth looking at: Power Driver Shield Kit - DEV-10305 - SparkFun Electronics

Looks pretty good, but as I said I would really like to build it from scratch.

I have an expansion on my current idea, hear me out :P.

running only on PWM doesn't increase the COP of a peltier I'm only decreasing current, this wil reduce power consumption, but the maximum temperature difference on the TECs will be the same.
reducing voltage will improve COP and lower dT, which I don't mind because I'm not looking for more then 5C-10C under sub-ambient temperatures.

I'm thinking about using relays to switch my used TECs(4 of them) into 2 pairs when the PWM duty cycle is below for example 50% and temperatures are still dropping.

I think that a combination of this might become the ULTIMATE TEC CONTROLLER!

what do you guys think about this, is it doable?

damnit I can't wait until I get my hands on my Arduino and start experimenting :slight_smile:

1.6W might overheat a TO220 device without a heatsink - it needs at least something to help with that, small heatsink probably OK.