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.
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.
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.
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();
}
//
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.
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.
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.
Welches LED-Band würdet ihr empfehlen? Würde das 12V 2813 passen?