I am trying to use an Arduino UNO to drive a relatively big thermoelectric assembly (24V, 5A). Given that the peltier in the assembly must both heat and cool down, the system should be able to provide -24 to +24 VDC to the assembly.
My idea was to have the Arduino UNO accept an user input as a temperature setpoint, read the NTC thermistor that comes with the assembly and use the Arduino PID library to then drive a motor shield such as this one which will provide current to the thermoelectric assembly.
Even if the shield is designed to drive an electric motor, I think it should work just the same: accept an external power source (in my case at 24 VDC) and then output a voltage with a variable polarity.
I am fairly new at this and I do not know if it would make sense or not.
The Peltier and temperature is a rather slow process so PID is likely not needed.
Make sure to circulate the air! Then is the question where in the confinement to measure the temperature.
Look for formulas how to translate NTC readings into degrees. They are none linear but they are commonly used.
Dear @Railroader , thank you for your quick reply! Air circulation to drive away heat from the peltier is taken care by three 24VDC fans one of which is mounted directly on the "hot" side of the peltier itself.
Given that the final aim is to cool or warm an aluminum plate that's mounted on the peltier, the thermistor is directly inserted into the aluminum block.
You're saying that PID is not necessary, so what would you use to keep the peltier at the setpoint temperature?
That sounds very good to me.
I suggest a proportional PWM for the heating. Too high or too low decides the direction of the heater. If PWM doesn't work use a regulated time frame to control the Peltier.
thank you @jremington , but any kind of controlling approach would fail if the motor shield can only do 24 V on/off rather than a continuous output as @jim-p seemed to suggest. I am doing a lot of reading and I'm frankly confused on this point
An H bridge type driver can produce a bipolar drive at its output terminals. In fact, checking the venerable L298, cheap as chips, the maximum supply voltage is 46v so it should easily cope with 24. You get 2 drivers in a package so maybe could parallel them to get max current of 4A. Easy to drive with PWM from Arduino, a breakout board with an L298 and heatsink is really cheap.
I have no idea what you mean by "continuous output".
An H-bridge motor shield can produce full on, full off, full reverse and can also be controlled by PWM for PID proportional control. H-bridges are universally used to control Peltier modules. You can find many successful examples on this forum, and elsewhere, for both kinds of controllers discussed in this thread.
The L298 won't work for most Peltier modules, as each channel can handle at most 1 Ampere on average.
Dear @jremington thank you for your reply and sorry for my imprecise language.
What I mean is that I expect the motor shield to have some kind of PWM pin to which I can send a command like
analogWrite (pwmPin, 127); //
and expect roughly 12 VDC output if the power source is 24 VDC.
I am not sure on how to use the H-bridge to change polarity, I'm still studying. As far as I understood some motor shields have a "Direction" pin that might be set HIGH or LOW and that should correspond to +12 VDC or -12 VDC in the previous example.
I am also not sure on how to combine these in a PID except with some kind of logic control on the temperature value that tells the Arduino that if the temperature is too cold it needs to set LOW the Direction pin before applying the PID output.
Again, sorry if all of this is veri naive or basic, I am really trying to piece together all the information and there's a -lot- of it.
Anyway, as you suggest, I'll keep checking this forums for good examples
I don't know of any H-bridges that do not have such an input. There is usually an IN and an ENABLE input, and usually, either one can be used for PWM control. I use this one for a Peltier module.
Yes, PWM filtering is needed, not only due to power saving, but also to avoid overstressing the PN junctions - large currents during raw PWM on-state heat device up quickly, while off-state lets it cool. Each of these phases introduce expansion/shrinking which leads to eventual cracks in ceramic. Thus you should strive to DC with minimum ripple.
Tom...
PS. All valuable info about driving Peltiers.
@jim-p then there's something I'm missing, since when I used commercially available thermoelectric assembly controllers they seemed to do -exactly- that, see for example this one
@TomGeorge , in the page you linked it states that PWM can be used (and, in fact, many commercial controllers do), it's just not as efficient. They state that the "ripple" of the PWM current should be kept to a minimum (<10%) how should that be done? How can I evaluate the ripple of my PWM controller?
While I've seen lots of people arguing around the need of "smoothing" the PWM output, I've read that an inductor can do the trick. Can you explain how and how should that be wired to the output of a PWM?