Hallo zusammen,
in meiner Freizeit versuche ich ein wenig mit einem Arduino UNO klar zukommen.
Im Moment sitze ich an einer Steuerung für LED-Streifen.
Ausgangsmaterial:
LED Streifen 5V 1 meter 144 LEDs
350 ohm Widerstand
Arduino UNO
Der Elektrische Aufbau
- und - vom Arduino uno zum LED-streifen.
D9 vom Arduino UNO zum Widerstand und vom Wid. zum Eingang des LED-Streifen.
Was soll passieren:
10 Pixel vom LED-Streifen sollen der Reihe nach angehen.
Danach sollen alle LEDs mit pixels.clear() gelöscht werden
und im Anschluß soll dann alles von vorn beginnen.
Damit man sieht, was passiert, habe ich Pausen von 300ms
eingefügt.
Was tatsächlich passiert:
Die LEDs laufen bis zum 10. Pixel durch aber beim Löschen
bleibt der ersten Pixel an. Ich kann diesen nur löschen,
wenn ich die auskommentierten Zeilen aktiviere.
Erste Frage:
pixels.clear() soll den Angaben nach alle LEDs löschen.
Warum wird die erste LED nicht gelöscht?
Zweite Frage:
Gibt es eine Möglichkeit, beim Einschalten erst alle LEDs
zu setzen und erst danach mit pixels.show() zu aktivieren?
Ich bin für jede Hilfe Dankbar.
Pittiplatsch
#include <Adafruit_NeoPixel.h>
#define PIN 9
#define NUMPIXELS 10
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int pause=300;
byte H=3;
void setup()
{
pixels.begin();
}
void loop()
{
pixels.clear();
/*
pixels.setPixelColor(0, pixels.Color(0,0,0)); // löscht erste LED wenn Aktiviert
pixels.show();
*/
delay (pause);
for (int a = 0; a < NUMPIXELS; a++)
{
pixels.setPixelColor(a, pixels.Color(0,0,H));
pixels.show();
delay (pause);
}
}