Hallo,
für ein besseres Verständnis, worum es überhaupt geht, sende ich mal den Code
#include "BlinkFireMillis.h"
#include "CandleLight.h"
unsigned long beginIntervall; // Start eines neuen Intervalls in Millisekunden
long lightIntervallLength; // die Länge eines aktuellen Intervalls
uint8_t newBrightness; // die neue Endhelligkeit beim Fading
uint8_t stepBrightness; // Einzellschrittgröße beim Fading
uint8_t currentBrightness; // aktuelle Brightness
CandleLight candleLight;
void setup() {
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
randomSeed(analogRead(0));
}
void loop() {
candleLight.Flickering();
}
#ifndef BlinkFireMillis_h
#define BlinkFireMillis_h
#include <arduino.h>
#include "FastLED.h"
// How many leds in your strip?
#define NUM_LEDS 1
#define DATA_PIN 6
// Define the array of leds
CRGB leds[NUM_LEDS];
#endif
#ifndef CandleLight_h
#define CandleLight_h
#include "BlinkFireMillis.h"
class CandleLight {
private:
int number; // Position in der Stripe, beginnend mit 0
unsigned long beginIntervall; // Start eines neuen Intervalls in Millisekunden
long lightIntervallLength; // die Länge eines aktuellen Intervalls
uint8_t newBrightness; // die neue Endhelligkeit beim Fading
CRGB color;
public:
CandleLight() {
CandleLight(0, CRGB::OrangeRed);
}
CandleLight(uint8_t number, CRGB color) {
this->number = number;
newBrightness = random(50,255);
lightIntervallLength = random(100,300);
FastLED.setBrightness(newBrightness);
this->color = color;
leds[number] = color;
FastLED.show();
beginIntervall = millis();
}
void Flickering() {
if (millis() > beginIntervall + lightIntervallLength) {
newBrightness = random(50,255);
lightIntervallLength = random(100,300);
FastLED.setBrightness(newBrightness);
FastLED.show();
beginIntervall = millis();
}
}
};
#endif
Meine Absicht ist es in CandleLight.h FastLED.setBrightness(newBrightness); durch in etwa so etwas zu ersetzen
fadeLightBy (uint8_t fadefactor), damit ich die Helligkeit für jede einzelne LED regeln kann.
Das hat aber nicht funktioniert, weil als Resultat gar nichts mehr geflackert hat, bzw. die LED leuchtete konstant.
fadeLightBy braucht als Parameter x%/100256 z.B. 25% Leuchtstärke 25/100256=64
25/100 würde im Falle von INT vermutlich wohl 0 ergeben. Deshalb meine Vermutung!
Da FastLED.setBrightness die Einstellung aller LED's betrifft, nutzt mir diese Funktion nichts. Ich möchte jede LED einzeln und im eigenen Rhythmus flackern lassen.
Für eine LED funktioniert der Programmcode (FastLED.setBrightness) natürlich, aber eben nicht mehr für jede Instanz im eigenen Rhythmus.
Vielen Dank für eure Aufmerksamkeit
LG THomas