Arduino Nano WS2812B Lauflicht FastLED Sketch

Vermutlich sind es keine Disco-Pflanzen, jedoch habe ich die Beobachtung gemacht, das der Wechsel der Farbe Rot von einer LED zur nächsten LED ~ 2,5 Sekunden dauert. Die Farbe Rot nimmt bei der LED langsam ab und nimmt bei der nächsten langsam zu und während des Wechsels sind auf den Stripes fast alle LED weiß, was widerum eine veränderung des Farbspektrums bedeuten würde.

Ist also mein optisches empfinden, wenn man die beiden Stripes beobachtet, wie es tatsächlich sich verhält kann ich nicht beurteilen, da ich keinerlei Messmethoden zur Verfügung hätte ...

sanweb:
Ist also mein optisches empfinden, wenn man die beiden Stripes beobachtet, wie es tatsächlich sich verhält kann ich nicht beurteilen, da ich keinerlei Messmethoden zur Verfügung hätte ...

Das menschliche Auge sieht Farben und Helligkeit nicht linear. Was Deine Pflanzen "sehen", ist davon unabhängig.

Eigentlich möchtest Du eine lange Rotphase mit einem weichen Übergang beim Wechsel. Dazu braucht man unterschiedliche Intervalle:

// https://forum.arduino.cc/index.php?topic=713848.msg4796724#msg4796724
// Arduino Nano WS2812B Lauflicht FastLED Sketch
#include <FastLED.h>

#define LED_PIN     11
#define NUM_LEDS    120
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
#define BRIGHTNESS  200
#define LED_GRUPPE 6
#define ROTZEIT 10000
CRGB leds[NUM_LEDS];
uint32_t jetzt;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  LEDS.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness(BRIGHTNESS);
  FastLED.clear();
  FastLED.show();
}

void loop() {
  jetzt = millis();
  animation();
  herzschlag();
}

void animation() {
  static uint32_t vorhin = jetzt;
  static uint32_t intervall = 10;
  static byte gb = 0;
  static byte led = 0;
  if (jetzt - vorhin >= intervall) {
    vorhin = jetzt;
    intervall = 10;
    for (byte j = 0; j < LED_GRUPPE; j++) {
      leds[j] = CRGB(255, 255, 255);
    }
    leds[led] = CRGB(255, gb, gb);
    if (led + 1 < LED_GRUPPE) {
      leds[led + 1] = CRGB(255, 255 - gb, 255 - gb);
    } else {
      leds[0] = CRGB(255, 255 - gb, 255 - gb);
    }
    if (gb < 255) {
      gb++;
      if (gb == 255) intervall = ROTZEIT;
    } else {
      gb = 0;
      led + 1 < LED_GRUPPE ? led++ : led = 0;
    }
    for (byte j = LED_GRUPPE; j < NUM_LEDS; j++) {
      leds[j] = leds[j - LED_GRUPPE];
    }
    leds[28] = CRGB(0, 0, 0);
    leds[29] = CRGB(0, 0, 0);
    leds[30] = CRGB(0, 0, 0);
    leds[31] = CRGB(0, 0, 0);
    leds[88] = CRGB(0, 0, 0);
    leds[89] = CRGB(0, 0, 0);
    leds[90] = CRGB(0, 0, 0);
    leds[91] = CRGB(0, 0, 0);
    FastLED.show();
  }
}

void herzschlag() {
  static uint32_t vorhin = jetzt;
  static uint32_t intervall = 222;
  if (jetzt - vorhin >= intervall) {
    vorhin = jetzt;
    digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
  }
}

Durch die Verwendung von millis() könnte der Nano auch noch spannende Informationen auf ein Display schreiben. Stattdessen habe ich einen "Herzschlag" eingebaut.

Hallo,

erst einmal vielen DAnk für deinen unermüdlichen Einsatz und Lösungsweg in dieser SAche.

Mal nachgefragt:

agmue:
Durch die Verwendung von millis() könnte der Nano auch noch spannende Informationen auf ein Display schreiben.

Was für Informationen könnten das sein und reicht ein Arduino Nano aus oder müsste hier schon ein Board her? Hört scih für mich wieder spannend an ... :smiley:

Was für Informationen

Lichtsensor
Lichttemperatur
Luft-Temperatur innen im Kasten
Temperatur im Raum,
Luftfeuchte,
Luftdruck
Luftqualität
CO2 und viele andere Gase
Uhrzeit
Datum
Wetter
Börsenkurse
Corona-Geheilte
...

Diese Liste kann fortgesetzt werden.
Nicht endlos - aber es gibt immer einen größeren Chip.

Werden Sukkulenten nicht mit zwei "k" geschrieben?

sanweb:
Hört sich für mich wieder spannend an ... :smiley:

Die meiste Zeit schnarcht der Nano gelangweilt vor sich hin. Die Resourcen sind knapp, daher können die Fonts für eine Anzeige den Speicher in die Knie zwingen, andere Dinge sind locker zu erledigen.

Ich habe gerade einen neuen ESP32-V4 mit einem neuen 1,3" OLED-Display ausprobiert, Bild anbei. Der ESP32 kann in Dein WLAN und auf dem Läppi im Browser Daten anzeigen (Anleitung: Einführung zu fipsok.de). Bitte laß Dich nicht von meinem Durcheinender verwirren, links unten der SPI-Anschluß für ein farbiges Display, rechts oben ein IC als Level Shifter für LED-Streifen.

Sonnenuntergang, Bewässerung, Wassernebler, Wind und Temperaturreglung wären weitere Themen.

Spannend genug?

Selbstverständlich mußt Du das selbst programmieren und Dir dafür die notwendigen Grundlagen erarbeiten. Das braucht Zeit und Geduld, aber da habe ich bei Dir ein gutes Gefühl :slight_smile:

Hallo,

spontan hätteich bei deinem Bild gesagt, da liegt ein Wemos D1, welche ich bereits mehrfach mit Tasmota geflasht und im häuslichen Bereich verbaut, sowie im IOBroker per MQTT eingebunden habe.

Mit dem Bereich Smarthome (Alexa, Homematic IP, IOBroker) bin ich egentlich durch und habe vom sprechendem Briefkasten, automatische Lichtsterung (mittels Shelly & Tasmota), Gas- & Stromzählerdaten sammeln, Rollosteuerung nach Sonnenstand und Aussentemperatur, über Gartenbewässerung bis hin Umbau der Senseo-Kaffeemaschine zur smarten Kaffeemaschine, schon so ziemlich alles integriert, so das ich mit dem Bereich schon durch wäre ... :slight_smile:

Ist alles in allem ein sehr spannendes Thema ... :slight_smile: :slight_smile:

sanweb:
... ein Wemos D1, ...

Der ESP32 hat mir halt besser gefallen, aber sonst paßt das schon. ESP8266 und ESP32 können auch die LEDs ansteuern, beim ESP32 geht es wohl etwas besser, wenn ich es richtig verstanden habe ::slight_smile:

Beim ESP8266 (wemos D1) musste ich mit einem Level-Shifter in der Datenleitung eines WS8212B arbeiten, da diese wohl mit einer anderen Spannung gesteuert wird als beim Arduino Nano (welchen ich u.a. auch bei Ambilight Projekten meiner PC Monitore verwustet habe), aber ehrlich gesagt, verstanden warum das so ist, hab ich es leider nicht mangels Kentnisse des Zusammenspiels der einzelnen Komponenten. Danach konnte ich den Steifen via ESP8266 (mit Tasmota) nach belieben steuern. Fand dann seinen Einsatz unterm Bett mit einem Xiaomi Bewegungsmelder und einem On/Off Schalter am Lattenrost als Nachtlicht ... :slight_smile:

Die WS2812B möchten 5 V am Dateneingang, im Datenblatt steht, ab wann HIGH erkannt wird. Der ESP8266 werkelt aber mit 3,3 V, also mit niedrigeren HIGH-Pegeln.

Meine WS2812B, APA102, WS2815 usw. funktionieren allesamt auch direkt an den ESP32, ein Level Shifter, bei mir 74LS245, ist aber die sicherere Variante.

Sollte der Nano also mal zu klein werden, kannst Du umsteigen.

Ich verwende meine LED-Uhr als Nachtlicht.

Sehr elegant gelöste Kabelfixierung mit dem Nagel ... :smiley: ... Sehr schönes handwerkliches Holz-Bearbeitungs-Projekt mit eine Note Microcontroller ... IR-Sensor, an der Seite, da musste aber günstige Position einnehmen mit der FB um den Empfänger zu erwischen. Vieleicht alls Feinschliff mit Lötkolben ö.ä. Muster oder Ornament (mit Blaupause aufgezeichnet/abgepauscht) einbrennen, an einer Brandstelle ein kleines Loch zur Rückseite durchbohren und von hinten nach vorne den IR-Sensor durchschieben. Durch Ornament und Platzierung innerhalb der Brabdfläche fällt er dann optisch nicht mehr auf, erst recht nicht, wenn man dann die Oberfläche noch mal schön mit Wachs oder Öl behandelt, dann wirden die Brandstellen schön schwarz ... :wink: ... Aber ein sehr, sehr schönes Projekt, gfällt mir ... :smiley:

sanweb:
Sehr elegant gelöste Kabelfixierung mit dem Nagel ... :smiley:

Ich bin halt ein Ästhet ::slight_smile:

Aber die blinkenden Edelstahlschrauben hast Du übersehen :cry:

sanweb:
IR-Sensor, an der Seite, da musste aber günstige Position einnehmen mit der FB um den Empfänger zu erwischen.

Nö, den habe ich rechts unten platziert, wo ich mich überwiegend aufhalte. Sender und Empfänger harmonieren ganz gut, denn wenn ich die FB irgendwo in den kleinen Raum halte, funktioniert es meist dennoch.

Also nix mit Ornament!