INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
LED Flacker (Lagerfeuer effekt)
08.01.2021, 19:49
Beitrag #1
LED Flacker (Lagerfeuer effekt)
Guten Abend,
ich möchte einen Neopixel (RGBW) ambient flackern lassen. So richtig toll ist der Ergebnis nicht, aber seht selber.

Die idee: ich generiere eine Random Nummer und lasse dann die Farbe Rot oder Grün langsam an diese anpassen.

Das Problem:
1. Wenn der Grün wert über zwischen 150 u. 255 ist (je nach der Intensität von Rot) wirkt das "Feuer Flackern" zu Grün.
Kann ich den "byte colorG" begrenzen auf z.b. 0-150.
Vieleicht habt ihr noch eine andere Idee so einen Effekt zu erzeugen.

2. Das größere Problem
Sobald der Loop ca. eine Minute läuft fängt er an zu buggen.
Die LED leuchtet Rot und wird langsam schwächer bis sie Aus ist.
Danach leuchtet die wieder Maximal und wird wieder schwächer bis sie Aus ist ....
Immer im gleichen Rhythmus.

Das komische ist sobald ich die Arduino IDE wieder Öffne -> den Serialmonitor schließe und wieder Öffne fängt sich das Programm und läuft wieder ohne Probleme.
Ohne dass ich es Neustarte. Der Loop läuft in einem durch.
Hoffe ich konnte das Problem verständlich Schildern ansonsten gerne Fragen, wenn es Unklarheiten gibt.


Code:
#include <Adafruit_NeoPixel.h> // Library *1

#define PixelCount 6  // Ich arbeite nur mit einem Pixel zum Testen
#define PixelPin 11

Adafruit_NeoPixel strip(PixelCount, PixelPin, NEO_GRBW + NEO_KHZ800);

byte colorR = 0; // Rot
byte colorG = 0; // Grün
byte colorB = 0; // Blau hier nicht verwändet
byte colorW = 0; // Weiß hier nicht verwändet
byte goalR;
byte goalG;

void setup() {
    Serial.begin(9600);
    strip.begin();
    strip.show();
}

void loop() {
    goalR = random(0, 255);
    bool RedZiehlErreicht = false;
    delay(10);

    if (RedZiehlErreicht == false) {
        while (goalR >= colorR) {
            colorR += 2;
            strip.setPixelColor(1, strip.Color(colorR, colorG, colorB, colorW));
            strip.show();
            delay(10);
        }
        while (goalR <= colorR) {
            colorR -= 2;
            strip.setPixelColor(1, strip.Color(colorR, colorG, colorB, colorW));
            strip.show();
            delay(10);
        }
        RedZiehlErreicht = true;
    }

// ___ Neuer Abschnitt für Grün selber code wie oben ___

    goalG = random(0, 255);
    bool GreenZiehlErreicht = false;
    delay(10);

    if (GreenZiehlErreicht == false) {
        while (goalG >= colorG) {
            colorG += 2;
            strip.setPixelColor(1, strip.Color(colorR, colorG, colorB, colorW));
            strip.show();
            delay(10);
        }
        while (goalG <= colorG) {
            colorG -= 2;
            strip.setPixelColor(1, strip.Color(colorR, colorG, colorB, colorW));
            strip.show();
            delay(10);
        }
        GreenZiehlErreicht = true;
    }
}

*1 Die verwendete Library
https://github.com/adafruit/Adafruit-WS2801-Library

hoffe der Code ist einigermaßen leserlich
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2021, 20:04
Beitrag #2
RE: LED Flacker (Lagerfeuer effekt)
Hast Du Dir mal die jLED-Lib angeschaut? Die soll sehr gut für Effekte sein.
Ansonsten die FastLed-Lib mit den Fire-Beispielen mal austesten.

Solche Effekte erfordern viel Finetuning, da kann man ruhig mal bei anderen kiebitzen Wink

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 07:20
Beitrag #3
RE: LED Flacker (Lagerfeuer effekt)
(08.01.2021 20:04)Tommy56 schrieb:  Hast Du Dir mal die jLED-Lib angeschaut? Die soll sehr gut für Effekte sein.
Ansonsten die FastLed-Lib mit den Fire-Beispielen mal austesten.

Solche Effekte erfordern viel Finetuning, da kann man ruhig mal bei anderen kiebitzen Wink

Gruß Tommy

Die effekte von FastLED sind wirklich gut vieleicht greife ich darauf zurück wenn ich meinen loop nicht repariet bekomme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
09.01.2021, 07:54
Beitrag #4
RE: LED Flacker (Lagerfeuer effekt)
(08.01.2021 19:49)Natsnok schrieb:  1. Wenn der Grün wert über zwischen 150 u. 255 ist (je nach der Intensität von Rot) wirkt das "Feuer Flackern" zu Grün.
Kann ich den "byte colorG" begrenzen auf z.b. 0-150.
Vieleicht habt ihr noch eine andere Idee so einen Effekt zu erzeugen.
Oh man... Heute Morgen nochmal rübergeschaut und den Kopf auf den Tisch gehauen.
Ich kann den Grün wert ja über die Random (0, 255) einstellen. Blush
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  ATTiny13a: mit push button zum nächsten Effekt springen crazysky 22 1.266 28.05.2021 10:02
Letzter Beitrag: Vapalus
  Effekt mit ISR für Button Karl Stanger 6 646 30.01.2021 13:16
Letzter Beitrag: Karl Stanger
  seltsamer Effekt bei LCD-TFT mit GLCD-Funktion HaWe 13 4.677 06.05.2015 07:58
Letzter Beitrag: HaWe
  LED - Glühlampen-Dimm Effekt do1xxy 4 4.522 23.06.2014 16:01
Letzter Beitrag: do1xxy

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste