A digital programmable driver for a solenoid valve comprises at least one
valve driver circuit for opening and closing the valve and a controller
capable of sending an output signal to the valve driver circuit. The
valve driver circuit comprises a power switch for providing current to
the valve in order to open the valve. The output signal sent by the
controller directs the power switch of the valve driver circuit to
provide current to the valve, thereby causing the valve to open. The
controller receives a plurality of parameter values, and responsive to
the plurality of parameter values, calculates a rise time, a pull-in duty
cycle, a fall time, and a hold duty cycle so as to modify the output
signal sent to the valve driver circuit. The plurality of parameter
values comprises valve resistance, valve inductance, supply voltage,
valve pull-in current, valve hold current, and valve pull-in time.