ich beschäftige mich erst seit kurzem mit den Neopixels und Arduino. Daher sind meine Programmierkenntnisse eher mau, aber ich gebe mir Mühe. Den Code ich aus dem Internet und wollte ihn für meine Bedürfnisse abändern.
Im Moment scheitere ich an folgendem Projekt
ich habe einen 5m Neopixel WS2812-Stripe an einem D1-mini mit ESP8266.
Bei dem Stripe soll ab der mitte zwei Lauflichter loslaufen, aber der mitte, der eine nach rechts, der andere nach links.
Ich bekomme es aber nicht hin. Ein Lauflicht ab der mitte klappt, aber bei zwei bin ich am scheitern.
Hier ist mein Code, vielleicht findet jemand den Fehler, oder kann mir sagen wie ich es am besten umsetzen kann:
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.
Du willst zwei Lichtpunkte angehen lassen ... ja, warum machst Du Das nicht einfach?
i zählst Du von 0 bis 150, oder von mir aus von 150 bis pixelcount.
Dann setzt Du den Pixel links der Mitte und den Pixel rechts der Mitte - Beide haben den gleichen Abstand zur Mitte, weshalb man aus dem i Beide berechnen kann.
Nun kommt ein .show() und die aktuelle Lage wird angezeigt.
Wenn Du Das direkt in der FOR ablaufen lässt, wird der Stripe sehr sehr schnell gefüllt sein.
Du möchtest aber eher, daß die Pixel erst 'nach einer gewissen Zeit' weiter aufgefüllt werden, oder?
kannst du mir auf die Sprünge helfen wie ich das im code umsetzen kann?
Die Idee ist gut, aber mit meinen spärlichen Kenntnissen kann ich das noch nicht umsetzen...
Oli1204:
--> Ich sehe schon, ich habe noch einen weiten Weg vor mir...
Wenn Du mehrere Animationslayer getrennt voneinander aufbauen möchtest, schadet das blockierende delay(), das Du deshalb durch millis() ersetzen solltest. Leider sind viele Bibliotheksbeispiele mit delay, was sie einfacher aber auch weniger praktikabel macht.