Steuerung LED-Strip für ein Projekt

Hi Sie dort :wink:

Du benutzt t als zufällige Zeit - als INT deklariert.
Warum INT? Erwartest Du negative Wartezeiten?
Nein -> UNSIGNED (vorzeichenlos) hast Du direkt den doppelten Zahlenvorrat.
int 16bit, bei signed 15bit + Negativ-Bit, bei unsigned 16bit.
-32768...32767 zu 0...65535
Erklärt, warum Du nur auf ~30 Sekunden (32767ms, um genau zu sein) kommst.
Bei 'int unsigned' - ich schreibe uint16_t (u steht hier ebenfalls für unsigned, int16->16bit breit, t ist wohl ein Überbleibsel aus der Urzeit, in der Art laß ich darüber) wird das 15.te Bit nicht für das Vorzeichen benutzt, sondern ganz normal als Zahlen-Wert - da jedes weitere Bit den doppelten Wert hat -> doppelter Zahlenraum.
Meine Schreibweise hat den Vorteil, daß ICH immer sehe, wie breit meine Variablen wirklich sind.
Bei int/long/long kann Das je nach verwendetem µC variieren.

Wenn Du auf das delay() ganz verzichtest?
Ok, akut macht Dein Sketch dann eben die ganze Zeit Nichts - wie beim delay() auch - ABER in DEINER Schleife (loop) - bei delay eben in einer while-Schleife der delay()-Funktion (Zum Selber-Googeln yield() ).

Dein Delay-Konstrukt sieht ... äh ... 'interessant' aus - was willst Du damit bezwecken?
Schaue Dir Blink_without_delay in der IDE an und/oder die Nachtwächter-Erklärung hier im Forum.

Dann strickst Du Deine delay()-Warterei auf einzelne Schritte um und prüfst bei jedem (der tausenden) loop()-Durchläufe pro Sekunde, ob die Wartezeit bereits um ist, Du also den nächsten Schritt machen kannst.
Combie (Klick auf den Nachtwächter, dort ich Der nämlich verlinkt) hat auch Makros im Angebot, wo man sich eigene und von einander unabhängige Timer zusammen bauen kann.

MfG