Neopixel Blockweise einschalten

Hallo,

ich habe ein Projekt vor in dem ich Neopixel blockweise einschalten will, also sprich, erst 0-10, dann 11-20, 21-30 usw.
welchen Befehl gibt es hier, oder wie könnte man das umsetzen?
Hat jemand einen Tipp für mich?
Das ganze soll dann ein Lauflicht werden mit den Buchstaben von hinten angestrahlt bzw. ausgeleuchtet werden.

Viele Grüße
Oli

Du beschreibst in einer Schleife die Neopixels und rufst danach show auf.

Gruß Tommy

und da ist leider auch schon mein PRoblem, ich kriege ein schönes lauflicht hin wo die Pixels 0-10 nacheinander angehen und auch wieder aus, aber ich will ja alle auf einmal, gleichzeitig einschalten.

Oli1204:
und da ist leider auch schon mein PRoblem, ich kriege ein schönes lauflicht hin wo die Pixels 0-10 nacheinander angehen und auch wieder aus, aber ich will ja alle auf einmal, gleichzeitig einschalten.

Dann zeige doch mal deinen aktuellen Sketch.

Setze den bitte in Code-Tags.

Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Das kannst du auch nachträglich machen.
Dazu den Sketch markieren und die Schaltfläche klicken.

Damit wird dieser für alle besser lesbar.

Hi
schreibe ein schleife von 0-10
setze die Farbe für die LED 1-10
hinter der Schleife den Show Befehl setzen - jetzt gehen alle 10 auf einmal an
dann etwas warten (delay) und die nächsten anmachen.
Wobei du für alle (z.b. 100) einfach ein "große" Schleife nehmen kannst, d.h. von 1 -90 Step 10

Gruß Martin

Oli1204:
und da ist leider auch schon mein PRoblem, ich kriege ein schönes lauflicht hin wo die Pixels 0-10 nacheinander angehen und auch wieder aus, aber ich will ja alle auf einmal, gleichzeitig einschalten.

Liest Du auch, was Dir geschrieben wird? Wenn nicht, können wir es lassen.

Beim Lauflicht rufst Du nach jeder LED show() auf. Wie ich Dir geschrieben habe, sollst Du erst nach jeweils 10 LED Show aufrufen (kein Delay zwischen den 10 LED).

Gruß Tommy

@Martin-11
'dann etwas warten (delay) ...'

Ernsthaft?
Versuchen wir hier nicht bei jedem Sketch, vom delay() wegzukommen?
Und nun wird wieder zu delay() geraten - also bitte, SO nicht!

Zum Tasten endprellen - jo, ein delay(20); haut Einen nicht direkt um (kommt aber auf die Situation an!!)
Alleine dadurch begrenzt Du die möglichen Loop-Durchläufe auf 50 die Sekunde - zumindest, sollte das delay() immer kommen.
Dafür (eher dagegen) haben findige Köpfe millis() erfunden - und eben den Umgang damit.

@TO
Das, Was Du an die LEDs an Farben schickst, ändert erst Mal rein GARNICHTS am Leuchtverhalten der LEDs.
Erst das .show() schickt die Daten in den Stripe - und zwar IMMER ALLE (was deutlich Zeit kostet, die Interrupts werden ebenfalls gesperrt, weshalb z.B. IR-Fernbedienungen nur schlecht mit WS2812B zusammen 'tun').
Besser ist Es, ERST den ganzen Stripe mit neuen Farben zu füllen und DANN diese Farben zu übernehmen.
Das soll NICHT heißen, daß Du für Dein Lauflicht alle LEDs gleichzeitig setzen sollst, bevor das .show() kommt - Du hast ja 'aktuelle Farben für den GANZEN Stripe' - mit jeder LED, Die 'läuft'.

Auch hier kommt kein delay() ins Spiel - wenn der Kram zu schnell wird, wird Das mittels millis() eingebremst.

MfG

Hallo postmaster,

sorry, wusste nicht das „wir“ von delay wegkommen (sollen/müssen).
Bei meinem LED-Band mit ca. 200 St. WS 2812 LED’s müsste ich im Sketch hinter den setPixelColor bzw. show- Befehlen etwas warten und das war für mich das Einfachste - hier können alle anderen Routine ruhig „stehen bleiben“.
Bei der Tasterabfrage habe ich auch mit millis() gemacht.

Gruß Martin