Indirekte Beleuchtung / Trockenbauprofile

Betreff: Hilfe bei indirekter Beleuchtung mit ESP32 und LED-Streifen

Guten Morgen liebe Community,

ich freue mich, dieses perfekte Forum gefunden zu haben, um meine Ideen und Herausforderungen zu meinem aktuellen Arduino-Projekt mit euch zu teilen. Als Informatiker wage ich mich nun erstmals an die Welt der Arduino-Entwicklung und hoffe auf eure Erfahrung und Hilfe.

Zu meinem Vorhaben: In meinem Arbeitszimmer habe ich die Decke abgehängt und möchte dort 12 Meter indirekte Beleuchtung installieren. Die Steuerung soll über das ESP32 Modul erfolgen. Die Idee ist, das Licht zunächst über den herkömmlichen Zimmerschalter einzuschalten und dann über eine App zu steuern. Zusätzlich habe ich Deckenprofile für LED-Streifen eingebaut, die ähnlich wie ein Laserschwert nacheinander angehen sollen, wenn der Lichtschalter betätigt wird.

Bisher habe ich die beiden ESP32 Module und LED-Streifen mit den Spezifikationen DC5V WS2812B 5m 30/60/144 LED in Schwarz. Jetzt stehe ich vor zwei Herausforderungen: die richtigen Netzteile zu finden und sicherzustellen, dass die ESP32 Module die Einstellungen beibehalten und sich nicht ständig zurücksetzen, wen ich das Licht ein und ausschalte.

Habt ihr bereits ähnliche Projekte umgesetzt und könnt mir bei diesen Herausforderungen weiterhelfen? Über Tipps zu geeigneten Netzteilen, Programmierung und dem Umgang mit ESP32 Modulen würde ich mich sehr freuen.

Liebe Grüße und vielen Dank im Voraus,
Eddy

Fotos folgen

lies dir mal den sehr umfangreichen Überguide von Adafruit durch:

da findest du auch Angaben zur Berechnung des eigentlichen Strombedarfs.

Wenn du dass dann für deine Pixel mal ermittelt hast und bekannt gibst, gibts vermutlich auch Hinweise auf passende Netzteile.

Rechnen musst du selber, da aus deinen Angaben nicht herauskommt wie viele Pixel es sind.

Die benötigen recht viel Strom, Du mußt mit bis zu 60 mA je Pixel rechnen, und benötigen daher parallel Stromkabel und ca. alle 50 cm eine Stromeinspeisung.

Es gibt WS2815 mit 12 V Versorgung und damit weniger Strom, so ca. 15 mA je Pixel. Da genügen dünnere Kabel und seltenere Einspeisungen.

Die haben ein eigenes Dateisystem drauf, wo Du Voreinstellungen speichern kannst, Stichwort preferences. Siehe ESP32 Save Data Permanently using Preferences Library.

Als Bibliothek empfehle ich FastLED.

Hallo,
ich würde den ESP unter Spannung lassen wenn Du den Schalter ausschaltest. Bei Ein muss der ESP erst mal hochfahren, und vermutlich im Wlan anmelden. Das kann ein paar Sekunden dauern. Wenn Du so lange warten willst bist das Licht angeht.

Eventuell mit dem Lichtschalter ein ein Relais schalten und mit dem Kontalt auf einen Eingang des ESP.
Nun hast Du ja schon die 5V LED streifen, ist ein bischen blöd. Die 5V streifen sind ziemlich hungrig und dann wird die Verkabelung etwas umständlich. 60mA werden je Pixel etwa benötigt bei weiß. Das macht dann 60mA*144 LED´s = 8,6A. Die bekommt man natürlich nicht über die Leiterbahn auf dem Streifen. Also legt man parallel ein Kabel 2x2,5mm2 und zapft das etwa jeden Meter an und speist den Streifen dann zweiseitig ein.

Was hat das Netzteil mit dem Abspeichern von Daten zu tun?

Zur Spannungsversorgung. Man kann auch die Spanungsversorgung über eine höhere Spannung machen und dann mit vielen kleinen DC/DC Wandlern auf 5V bringen. Zwischen jedem der Teilstücke, die mit einem eigenne Wandler versorgt werden muß ein 330 Ohm Widerstand in die Datenleitung geschaltet werden.
Grüße Uwe

vielen Dank für eure schnellen und hilfreichen Antworten auf meine vorherige Anfrage. Nach euren Ratschlägen habe ich erkannt, dass ich bei meinem aktuellen Projekt einige Fehler gemacht habe. Nach reiflicher Überlegung denke ich nun darüber nach, alles zurückzusenden und auf die Erfahrungen der Community zu setzen, um neu zu starten.

Leider ist es nicht mehr möglich, zusätzlichen Strom einzuspeisen, da die Decke bereits geschlossen ist. Auf dem beigefügten Bild könnt ihr sehen, dass ich nur am Anfang und am Ende der Gesamtstrecke Strom verlegt habe. Dies resultierte aus meinem Unwissen darüber, dass auch dazwischen Stromzuführungen notwendig sind. Das war mir bis dahin neu.

Konkret habe ich einmal 6 Meter Strom für insgesamt 12 Meter und einmal 4 Meter Strom für insgesamt 8 Meter verlegt. Meine Frage an euch ist nun: Wäre es trotz dieser Konstellation möglich, das Projekt umzusetzen, und wenn ja, was müsste ich dafür kaufen und beachten?

Ich freue mich über eure weiteren Ratschläge und bedanke mich im Voraus für eure Hilfe.

Liebe Grüße
Eddy

p.s. mir würde es reichen wenn das Licht in der Mitte einfach angeht und diesen Laserschwert Effekt hat und nacheinander angeht. Es muss nicht unbedingt Bunt sein. Weiß würde ausreichen und ggf dimmbar.
Übrigens habe ich 0,75 3 Adrig verlegt um die Spannung besser zu verteilen

nummerier mal deine Pixel durch, lade ein neues Bild hoch und dann sag was für dich die Mitte ist

edit:
Nach 45min käme ich auf etwas was vermutlich sowohl mit gerader wie auch ungerader Pixelanzahl funktionieren müsste.

// Neopixel von der Mitte her einschalten
// https://forum.arduino.cc/t/indirekte-beleuchtung-trockenbauprofile/1216888/7

#include <FastLED.h>

constexpr uint16_t NUM_LEDS {129};  // How many leds in your strip?
constexpr uint16_t DATA_PIN {12};   // Pin

CRGB leds[NUM_LEDS];                // Define the array of leds

constexpr uint8_t startPin {A0};    // testweise als Tasterevent
constexpr uint8_t stopPin {A1};

class Effect {
    int16_t step = 0;                           // aktuelle Stufe
    uint32_t previousMillis = 0;                // Zeitmanagement
    uint16_t interval = 100;                    // Verzögerung in ms
    const uint32_t onColor = 0x604020;          // z.B. ein nicht zu grelles Weiß
    enum State {OFF, ON, UP, DOWN} state = OFF; // was tut der Strip gerade

  public:
  
    //hartes ein
    void on() {
      for (uint16_t i = 0; i < NUM_LEDS; i++) {
        leds[i] = onColor;
      }
      state = ON;
      FastLED.show();
    }
    
    // hartes aus
    void off() {
      for (uint16_t i = 0; i < NUM_LEDS; i++) {
        leds[i] = 0;
      }
      state = OFF;
      FastLED.show();
    }

    // Schrittweise ein
    void start() {
        state = UP;
        step = 0;
        leds[NUM_LEDS / 2] = onColor;  // mittlere LED einschalten
        FastLED.show();
    }

    // setzt zwei LEDs
    void setTwo(uint32_t color) {
      int16_t actual = NUM_LEDS / 2 + step;
      if (actual < NUM_LEDS) leds[actual] = color;
      actual = NUM_LEDS / 2 - step;
      if (actual >= 0) leds[actual] = color;
      FastLED.show();
    }

    // Finite State Machine - muss in loop() aufgerufen werden
    void update(uint32_t currentMillis = millis()) {
      switch (state) {
        case ON :
        case OFF :
          // nothing to do
          break;
        case UP :
          if (millis() - previousMillis > interval) {
            previousMillis = currentMillis;
            setTwo(onColor);
            step++;
            if (step > NUM_LEDS / 2) state = ON;
          }
          break;
        case DOWN:
          if (millis() - previousMillis > interval) {
            previousMillis = currentMillis;
            setTwo(onColor);
            step--;
            if (step < NUM_LEDS / 2) state = OFF; 
          }
      }
    }
};
Effect effect;

void setup() {
  Serial.begin(115200);
  // Uncomment/edit one of the following lines for your leds arrangement.
  // ## Clockless types ##
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
  FastLED.setBrightness(25);  // max Helligkeit einstellen
  pinMode (startPin, INPUT_PULLUP);
  pinMode (stopPin, INPUT_PULLUP);
  effect.off();     // hartes abschalten
  
  effect.start();   // testweise bei Programmbegin bereits langsam einschalten
}

void loop() {
  if (digitalRead(startPin) == LOW) effect.start();
  if (digitalRead(stopPin) == LOW) effect.off();
  effect.update();
}
//

Sind die grünen Striche Datenleitungen vom ESP32 zu den LED-Streifen?

Wenn ja, dann dürften sich diese Störungen einfangen und Du siehst nur ein zufälliges Muster. Das hängt von der elektromagnetischen Umgebung ab.

Servus wie berechne ich denn die Pixel?
ich habe folgendes Band:
F5V-WS2812B-60L-60 LED-B
DC5V
max. Power 18W/ m

d.h. 60 LED pro meter bei 12 meter = 720 LED´s
oder 60 LED pro meter bei 8 m =480 LED

@noiasca danke für die viele Arbeit mit dem Code. Kann ich dich ON anschreiben für mehr tipps?

an diser Stelle.. macht es vielleicht Sinn 12V LED Streifen zu holen

Grüße

![Diagramm AZ|660x499](upload://4tJDasI5pNHezi6uOL3Cl0Jmr9L.png)

Deine Rechnung sieht gut aus.

12 m * 18 W/m / 5 V = 43,2 A

Ich bin nur ungern der Spielverderber, aber mir ist unklar, wie Du diesen Strom ohne Zwischeneinspeisung zu den LEDs transportieren willst.

Hallo,
dann dürften auch 12V Streifen letztlich keine Lösung sein, auch da wird man mehrfach einspeisen müssen.

720 *15mA= 10.8A

Würde das nicht funktionieren wenn ich die immer am Anfang und am Ende mit Strom versorge? dann wären es nur 6m bzw 4 meter.

Hallo,

Dann wollen ca. 5A über die Leiterbahn des Streifens fließen, das wollen die CU Bahnen sicher auch nicht, vom Spannungsabfall mal ganz abgesehen. Das ist ja noch mal ein anderes Thema. Nun habe ich mit der 12 V Type keine Erfahrung, kann also nicht sagen wie lang man die Streifen machen. kann.

Rechne doch mal selbst:
6m / 2 (von 2 Seiten bei 6 m Länge) = 3m * 60 LED = 180 LED * 60 mA = 10,8 A
Selbst bei 4/2 m sind es noch 7,2A.
Wie willst Du die durch die dünnen Leiterbahnen durch bekommen?
Da leuchten auf Dauer eher die Leiterbahnen, als die LED.
Da zahlt dann im Zweifel auch keine Versicherung, wenn die Bude abfackelt.

Gruß Tommy

Hallo,
hast Du schon mal über einen normalen weißen nachgedacht.
z.B Sowas hier

die haben 12 V und 4,8W/m da sieht das mit den Strom schon mal ganz anders aus . Sowas gibts auch in 24V

Nachtrag
oder schau mal hier hier

Deiner Zeichnung kann ich leider nicht entnehmen, an welche Stellen Du mit dickem Stromkabel hinkommst. Trotz Millimeterpapier fehlt ein Maßstab.

Lesestoff: The Difference Between Addressable RGBIC LED Strip WS2811, WS2812B, WS2813, WS2815, SK6812, SK9822

wenn du Fragen zum Code hast - fragt einfach hier.

Leider gehen aus deinem Plan noch immer keine konkreten Pixelangaben hervor, aber ich hoffe du kannst das im Code selbst anpassen.

Wenn der nächste Schritt ein weiterer Strip wäre, das hätte ich eigentlich auch schon bereit, aber erst muss das bisherige laufen. Ansonsten macht es keinen Sinn fortzusetzen.

Hallo zusammen,

entschuldigt bitte die Verzögerung, ich hatte in den letzten Tagen viel zu tun und konnte daher nicht weitermachen. Ich habe einen verbesserten Plan erstellt, um einen besseren Überblick zu bekommen. Mittlerweile habe ich alles bezüglich der LED und Netzteile zurückgesendet. Ich würde nun gerne mit eurer Erfahrung alles passend bestellen.

Wie bereits erwähnt, habe ich zwei Kreise, die jeweils separat mit einem Lichtschalter gesteuert werden. Der innere Kreis hat den ersten Stromanschluss bei 0 Metern und einen weiteren bei 6 Metern. Ich denke, das sollte ausreichen. Der äußere Kreis 2 hat einen Anschluss an den beiden Ecken bei 0 Metern, so dass ich das LED-Band in jede Richtung mit Strom versorgen kann.