Mehrere LEDs zeitversetzt faden

Hallo zusammen,

für ein Weihnachtsprojekt will ich einen kleinen Tisch-Weihnachtsbaum mit 32 LEDs bestücken.
8 Gruppen zu je 4 LEDs.
Ich möchte sie aber zu unterschiedlichen Zeiten faden, also hochfahren lassen und dann wieder dimmen.
Jede Gruppe soll quasi zeitversetzt starten und dann wieder dimmen.
Ich denke ich war mit den Arrays schon nicht weit weg aber ich kriege entweder ein Flackern oder ich kann sie leider nur alle auf einmal starten lassen.

Habt ihr einen Rat für mich?

// Dem Array out_LEDs[] die Nummern
// der vier Pins zuweisen.
const uint8_t out_LEDs[] = {3, 5, 6, 9};

// Das Setup
void setup() {
  // In einer Schleife von 0 bis 3 zählen.
  for (int8_t i = 0 ; i <= 3 ; i++ ) {
    // Den vier Pins sagen, dass sie Ausgänge sind.
    pinMode(out_LEDs[i], OUTPUT);
  }
}

// Die Haupt-Schleife (Main-Loop)
void loop() {
  // In einer Schleife alle Ausgänge abarbeiten.
  for (int8_t j = 0 ; j <= 3 ; j++ ) {
    // Von 0 bis 255 zählen zum Hochfaden.
    for (int16_t i = 0 ; i <= 255 ; i = i + 5 ) {
      // Dem aktuellen Ausgang den Wert zuweisen.
      analogWrite(out_LEDs[j], i);
      delay(5); // Diesen Wert kannst Du verändern.
    }
    delay(100); // Diesen Wert kannst Du verändern
    // Von 255 bis 0 zählen zum Runterfaden.
    for (int16_t i = 255 ; i >= 0 ; i = i - 5 ) {
      // Dem aktuellen Ausgang den Wert zuweisen.
      analogWrite(out_LEDs[j], i);
      delay(5); // Diesen Wert kannst Du verändern.
    }
  }
}

Deine Delay stehen sich und Dir im Weg.
Schaue Dir Blink without Delay an.

Gruß Tommy

Und vor allem die for-Schleifen. solange die läuft, macht der uC nix anderes, sprich, kann den 2ten Ausgang nicht faden.

Mach dir nix draus, das Problem hatten die meisten schon. Der nächste Schritt ist schwer, weil du wahrscheinlich deine Denke zum Programmierem umstellen musst.

Aber bis zum ersten Advent könntest du das noch hinkriegen :wink:

versuche mal statt der Pins {3,5,6,9} die Pins {3,9,10,11} zu benutzen.

Mal als zusätzlichen Anstoß: Du hast schon eine Schleife, die immer wiederholt wird. --> loop

In der muss alles passieren und da darf nichts sein, was die aufhält.

Es gibt auch noch eine weitere Erklärung, den Nachtwächter

Schau Dir das mal an.

Gruß Tommy

Ich würde es mir einfach machen und auf INTERVAL.h setzen. Und die jeweiligen vorberechneten Helligkeitswerte aus einem Array holen, damit das Auge ein gleichmäßiges Faden sieht.