PWM solar charge controller