Problemas con codigo delay

Hola, buen día a todos. Tengo un problema, escribí el siguiente código, de momento me sirvió para hacer unas pruebas, pero ahora deseo realizar otras funciones, pero debido a que tiene delays, no es posible, he buscado la manera de realice la misma función empleando la función millis(), pero no la he encontrado, espero que alguien me pueda ayudar, le agradecería en gran manera.

Saludos a todos y gracias nuevamente.

while (cicl > 0) {
for (j = 150; j >= 0; j--) {
digitalWrite(8, HIGH);
delay (3.5);
digitalWrite(8, LOW);
delay (j);
lcd.clear();
lcd.setCursor(3, 1);
lcd.print("Ciclos restantes:");
lcd.setCursor(3, 2);
lcd.print(cicl);

}
cicl--;
}

Debes usar tags para insertar códgios. Lee las normas por favor

Primero dela(3.5) no funciona como tal sino como delay(3). Solo usa enteros.

La respuesta a tu problema es usar millis() pero su uso no es tan directo como delay.
Asi que mira el ejemplo del IDE BlinkWithoutDelay.ino o busca el tutorial en Documentación sobre millis()