Need a low frequency (can preset at each value of 15Hz to 25Hz) PWM signal

Of course, an unmodified blink without delay will not fulfill all your requirements, but it is very close:

Lets say you want a frequency of 20Hz.
If you want a 10% duty cycle, that is 5ms ON and 45mS OFF
If you want a 20% duty cycle, that is 10ms ON and 40mS OFF
etc.
etc.

Therefore:
The ON period = ( 10 * DC / Freq ) milliseconds, where DC is duty cycle in % and Frequency in Herz
The OFF period = ( 10 * (100 - DC ) / Freq ) milliseconds.

So all you want is the blink sketch with variable on and off times.

Do you want to be able to vary the frequency, and if so, within what range ?
You've already said the duty cycle is from 15% to 85 %

How do you want to enter these parameters into the sketch, say with a potentiometer ?
How do you want to display the selected parameters (if at all) ? with a 1602 LCD ?

1 Like