An improved variable speed fan controller for use in devices such as laser printers.
The controller automatically adjusts its output signal to fans such that a fan
quickly settles into an appropriate operating speed, even if the fan has been newly
installed into the equipment. The controller can store values in non-volatile memory,
if desired, to keep track of recent changes in the fan's operating parameters and
corresponding control signal values. The controller is able to control relatively
inexpensive fans that don't necessarily operate at a predictable fan rotating speed
under repeatable conditions and control signals, by controlling the fan to an initial
or predetermined rotating speed; if the fan isn't running within a suitable range
of rotational speeds, then determining whether a fine or coarse adjustment should
be made to the fan's rotational speed. The controller makes appropriate adjustments
until the fan's rotational speed is within acceptable operating tolerances.