This is a modification of 0.04. It adds a
9v zener diode voltage reference to prevent power supply noise from
causing oscillations, another buffer, and some switches and diodes to
control current flow direction.
The idea of using two drivers was to be able to drive current in two
directions, but there is a problem with that. Instead of settling at a
specific temperature like I wished, it cooled down to the specified
temperature, overshot, started heating it up, overshot, started
cooling, etc. The filter capacitor does not help, it makes it worse -
the bigger the capacitor, the slower and larger the oscillations in
Hence the diodes. Turning on only one switch or the other allows
heating or cooling but not both; it will heat or cool to the specified
point and overshoot slightly, then wait until it heats up again and
give it another burst of cooling. Sort of like your house thermostat,
it switches on and off instead of working in a linear fashion.
This might be kind of good enough, but really defeats the point of using
a bidirectional driver. What is needed is an analog control circuit
that can compensate for the thermal mass of the peltier device and
properly settle at an exact temperature, and KEEP IT there without
constantly switching on and off. This sort of thing has been done
many, many times before of course - it's a classic engineering problem.
Perhaps if the gain itself was reduced, instead of increasing lag, that
could get it to settle.