Delay ohne delay

Wenn ich es auf 3 runtersetze denn steigt der PW; wert um 1 pro sekunde.
Der Wert soll aber innerhalb von einer oder mehreren sekunden von 0 auf 51 steigen können.
So wie im folgenden beispiel:

for(int fade = 0 ; fade <= 51; fade +=1) { 
    analogWrite(ledPin, fade);             
    delay(30);     
  }