How to drive a Peltier element?
Peltier devices work on current, but usually have significant enough resistance so that voltage control is possible.

Peltier devices are one of the few things you do not want to run with pulses, particularly in cooling applications.  The cooling effect is proportional to current, but the internal heating due to \$I^2R\$ losses is proportional to the square of the current.  Starting at 0, increasing current causes increasing cooling.  However, at some point the resistive heating due to more current outweighs the additional cooling power of the higher current.  More current beyond this actually therefore causes less overall cooling.  The maximum cooling current is one of the parameters that should be supplied by the manufacturer.

While maximum cooling occurs at some specified current, efficiency steadily decreases with increasing current.  Therefore you don't want to PWM a peltier cooler between 0 and the maximum cooling current.  Driving it at the steady current to produce the same overall cooling is more efficient.

Of course the microcontroller regulating the temperature will still produce PWM pulses.  These pulses need to be filtered so that the Peltier device sees relatively smooth current.  The general rule of thumb is to try to keep the ripple below 10% of nominal, but of course that is just a tradeoff someone picked.  Fortunately, this is usually not a difficult requirement to design to.