Probleme mit meiner for Schleife

void Setup{
Serial.begin(9600);
setLED(230);
}

void loop{}

void setLED(int value){
  int ledgroup = (value/17);

int green=ledgroup;
  for (int i=0;   i <=5 || i<= green; i++){
    ledgroup--;
   Serial.println("step1");
       Serial.println(ledgroup,DEC);
  }
int yellow=ledgroup;
  for (int i=6;   i <=10 || i<= yellow; i++){
    ledgroup--;
   Serial.println("step2");
       Serial.println(ledgroup,DEC);
  }
  int red=ledgroup;
  for (int i=12;   i <=14 || i<= red; i++){
    ledgroup--;
   Serial.println("step3");
       Serial.println(ledgroup,DEC);
  }
}

Hab ihn nur Testweise ins Setup geschrieben weil ich ihn nur Testweise einmal ausführen wollte. Im Loop verhält er sich genauso, dort hängt er sich auch nach "step1" auf.

Gibt es denn sonst noch eine bessere Möglichkeit diese Werte quasi auf drei Funktionen aufzuteilen?

Gedacht habe ich mir das so dass die erste Funktion bei einem Wert von 8 quasi 6 mal ausgeführt, dann zur nächsten Springt und dort noch 2 mal ausgeführt wird. Also die erste Funktion mindestens x mal, maximal 5 mal, dann zur nächsten, mindesten x-5 mal und maximal 5 mal etc..