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

You can use timer interrupts as well for this. Those work for much longer intervals, and are not affected by other tasks. I've used it for blinking an led during a long running, otherwise blocking task. No need for a second Arduino! Just set the interrupt to fire and set the output accordingly, together with the length of the next interval (for duty cycle changes).