Hallo!
Ich bin Moritz, neu hier mit Uno R3, und gleich eine Frage:
Ich möchte eine LED- Animation mittels WS2812- Clone (PL9823) realisieren, die sich an einem Eingangs- Tastsignal orientieren soll (Signal am Taster -> LEDs leuchten auf). Die WS2811- Ansteuerung mittels FastLED- Library sowie die Abfrage eines Eingangspins mit Pullup funktionieren jede für sich, und seit neuestem auch zusammen.
Die gewünschte Tastendruck- confirm- Funktion per Onboard- LED an Pin 13 funktioniert prinzipiell auch, aber nur, wenn ich im Code alles FastLED- Betreffende auskommentiere. Mit den Zeilen
void setup() {
- FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);*
- FastLED.addLeds(leds, NUM_LEDS); *
}
scheint die Tasterdruckbestätigung wie ausgeschaltet; dafür funktioniert die Ansteuerung des WS2811.
Wer kennt sich mit der FastLED- Library aus? Eliminiert diese die Ausgabe per Digitalpin? Findet jemand den Fehler?
Würde mich sehr über Hilfestellungen freuen.
Gruß,
Moritz
Folgend mein kompletter Code:
#include <Bounce2.h>
#include <FastLED.h>
#define NUM_LEDS 61 // definiert globalen Platzhalter(?) NUM_LEDS für FastLED
#define DATA_PIN 7 // definiert globalen Platzhalter(?) DATA_PIN für FastLED
#define BUTTON_PIN 8 // definiert globalen Platzhalter(?) BUTTON_PIN für Bounce2
#define LED_PIN 13 // definiert globalen Platzhalter(?) LED_PIN für Bounce2
CRGB leds[NUM_LEDS];
Bounce debouncer = Bounce();
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
FastLED.addLeds<APA102>(leds, NUM_LEDS);
pinMode(LED_PIN, OUTPUT); // LED- Pin als Output definiert (LED an Pin13)
pinMode(BUTTON_PIN, INPUT); // Button- Pin als Input definiert
pinMode(BUTTON_PIN, INPUT_PULLUP); // aktiviert Pullup- Widerstand an Pin7, genauso wie "digitalWrite(8, HIGH);"
}
void loop() {
// Variablen- Initialisierung
int count;
int del = 10;
static int nr_Led;
debouncer.update();
int tast = digitalRead(BUTTON_PIN);
if ( tast == LOW ) {
digitalWrite(LED_PIN, HIGH); // LED an Pin13 ON als confirm, das funktioniert NICHT
delay(50);
digitalWrite(LED_PIN, LOW);
nr_Led++;
}
else {
digitalWrite(LED_PIN, LOW);
}
// Einzel- LED- RGB- Durchlauf
for (count; count < nr_Led; count++){
// lokale Variablen- Initialisierung, nur in dieser for- Schleife
int r = 0;
int g = 0;
int b = 0;
int steps = 10;
//Auf- Dimmen
for(r; r < 255; r=r+steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
for(g; g < 255; g=g+steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
for(b; b < 255; b=b+steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
//Ab- Dimmen
for(r; r > 0; r=r-steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
for(g; g > 0; g=g-steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
for(b; b >= 0; b=b-steps){
leds[nr_Led].setRGB(r, g, b);
FastLED.show();
delay(del);
}
}
}