Led Stripe mit Relais Karte ansteuern

Guten Abend liebe Community,

ich durchforste nun seit stunden das Forum und werde nicht schlauer…..

ich habe mir für ein Halloweenprojekt eine art vitrine gebaut in der in den ecken jeweils ein led streifen mit 6 Leds kleben.

diese streifen haben einen gemeinsamen 24v Pluspol und werden jeweils über den “-” geschaltet.

Die pins am Streifen sind :

+24v

Din

C

W

GND

ich habe nun die 24v auf ein externes Netzteil gelegt und dauerhaft mit +24v versorgt.

nun zu meinem problem:

zum Schalten der verschiedenen Farben habe ich den Warmweissen und den GND (für die Farbe rot) negativen Pol des Streifens über ein Relais vom Arduino angesteuert.

(bei Knopfdruck soll Warmweiss ausgehen und rot an)

Bei weiss geht auch alles, nur wenn das Relais (das relais schaltet wurde gemessen) den minus für rot schalten soll macht der Streifen nichts, bis ich das kabel am Streifen abziehe und wieder anschliesse. (danach leuchten die Streifen rot bis zum nächsten durchlauf)

#include <Adafruit_NeoPixel.h>

#define PIN 2  // Anschluss der LED Streifen Vitrine
#define NUM_LEDS 1 //Anzahl der LED pro Streifen


int RELAIS1 = 4; // Anschluss Relais 1 LED Streifen Vitrine rot
int RELAIS2 = 5; //Anschluss Relais 2 LED Streifen Vitrine weiss
int RELAIS3 = 6; //Anschluss Relais 3 Motor Kopf Labubu
int TASTER = 3;

int PAUSE = 4650 ; //Pausenzeit zum drehen vom Kopf
int MINI = 500 ; //Pause für die Relais

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
pinMode(TASTER, INPUT);
pinMode(RELAIS1, OUTPUT);
pinMode(RELAIS2, OUTPUT);
pinMode(RELAIS3, OUTPUT);
strip.begin();

for (int i = 0; i < 6; i++) {

    strip.setPixelColor(i,strip.Color(255, 0, 0));
          strip.setBrightness(255);
          strip.show();
}
}

void loop() {
  if (digitalRead(TASTER)==HIGH) {   //Bedingung für Start der Animatronic Sequenz                                          //Einmal alle Relais auf "0"
    digitalWrite(RELAIS2, HIGH);
    digitalWrite(RELAIS1, HIGH); 
    digitalWrite(RELAIS3, HIGH);

    strip.begin();

for (int i = 0; i < 6; i++) {

    strip.setPixelColor(i,strip.Color(255, 0, 0));
          strip.setBrightness(255);
          strip.show();
}

delay(MINI);

digitalWrite(RELAIS1, LOW);
digitalWrite(RELAIS2, HIGH);
digitalWrite(RELAIS3, LOW);


    delay(PAUSE);
  } else {                                                                //Kein Startsignal, dann bleiben alle Relais auf "0"
    digitalWrite(RELAIS1,HIGH);
    digitalWrite(RELAIS2,LOW);
    digitalWrite(RELAIS3,HIGH);
  }
}

Vielen dank für eure Hilfe :slight_smile:

hast Du mal einen Link dazu?

Das klingt so nach WS2812-artig + 2x weiß.

Hast du mal einen Link dazu?
Kannst du auch einen Schaltplan Zeichen?

Grundig Flexible LED-Leiste 600 lm | Action DE

dieser streifen ist das ich hab ihn jeweils nach 6 leds getrennt da nach 6 leds der ic kommt

die streifen sollen 5050 und 2835 led typen sein

schaltplan puuuuhhhh :smiley: das wird wüst aber ich versuchs

Schaltplan wird erst morgen was mein programm spinnt….

aber ums kurz zu erklären:

din ist am pin d2

der taster liegt an d3 und mit einem pulldown widerstand an gnd

die relais an pin 4,5 und 6

spannung kommt von einem 12v netzteil an vin und dem danebenliegenden gnd

noch dazu greife ich mir 5v und gnd vom uno ab für die 4-Relaiskarte (Spannungsversorgung)

die Led streifen werden über ein externes 24v netzteil versorgt , wovon der +24rv anschluss dauerhaft an spannung liegt die jeweiligen “minus” schalte ich über die Relaiskarte (Relais 2 und 3 , das erste ist für einen 3v Motor)

vielleicht hilft das ja schonmal weiter

Hmm... Der Led Strip hat keinen Pin für Rot... Was schaltest du da?

Erscheint ein wenig klein...

Sind gnd vom Arduino und Led Strip verbunden?

gnd und led strip sind verbunden

NUM_LEDS 1 hab ich gemacht weil die 4 streifen parallel zueinander mit Din am pin 2 vom arduino liegen und jeweils nur einen ic haben ( 6 leds dann ein ic)

Das liest sich komisch. Die zweite Verbindung des Tasters fehlt. Oder es ist falsch angeschlossen. Je nachdem. Kommas in Sätzen, könnten Missverständnisse vermeiden.
Aber ein Schaltplan wäre viel besser zu verstehen als Prosa.

Mach mal ein gutes Bild von

ist zu 100% falsch

Irgendwie finde ich auf die Schnelle auch kein aussagekräftiges Datenblatt oder eine Anleitung zu dem Streifen von Grundig.
Ich verstehe ihn so:

  • das ist ein programmierbarer LED-Streifen nach bewährtem WS281X-Schema (evtl. auch ein anderer IC, bitte nicht darauf festnageln) und sollte auch so angeschlossen werden:
    Netzteil 24v+ => 24V+ am Strip
    Arduino DigitalPin => Din am Strip via Widerstand (ca. 300-500Ohm)
    Netzteil GND + Arduino GND => GND am Strip
    So sollte man schonmal alle RGB-Farben und die einzelnen "Pixel" (es sind ja immer 6 LEDs pro Abschnitt) ansteuern können.
  • zusätzlich hat er zwei weitere Farbkanäle (Kalt- und Warmweiß), die durch Verbindung von C bzw W an GND vom 24V-Netzteil (über die Relais) zugeschaltet werden können, aber auf dem ganzen Streifen dann aktiv sind.

Liege ich da so schonmal richtig?

Ich würde man nach den Chip suchen, der den FB-Empfang regelt und schauen ob mich das schlauer macht. Vor allen welche Leitungen zum Streifen gehen.

Ansonsten einfach ein WS-2812-Streifen mit einzeln Trennbaren LED's kaufen. Ist vielleicht einfacher.

Allerdings denke ich das nur auf V + GND Strom liegt, und die restlichen Pins reine Steuerpins sind.

Davon Abgesehen, nur weil Grundig drauf steht ist da kein Grundig drin. Sieh Wiki.

Gruß

Pucki

Ich sehe den Streifen so:
Du hast einen LEDstreifen Warmweis wo der Minuspol herausgeführt ist und mit W gekennzeichnet ist. Der +Pol hängt an 24V.
Du hast einen LEDstreifen Kaltweis wo der Minuspol herausgeführt ist und mit C gekennzeichnet ist. Der +Pol hängt an 24V.
Du hast eine RGB Streifen mit einem WS2811 Kontroller wo der Dateneingeng Din, 24V und GND herausgeführt ist. Am Kontroller sind 6 RGB LED in Reihe angeschlossen (um auf 24V Versorgungsspannung zu kommen)

Ich würde sagen da Du die GND weggeschaltet hast und keinen Widerstand in die Din Leitung geschaltet hast hast Du den WS2811 Kontroller kaputtgemacht. Der mag es nicht Spannung an Din zu haben und Versorgungsspannung oder Masse fehlen.

Zum Ansteuern des Ledstreifen braucht Du 24 V an 24V, GND an GND und C bzw W mit Relais / Transistor auf Masse schalten. Die RGB weden über eine Datenleitung angesteuert. Bibliothek Neopixel oder FastLED.

Grüße Uwe

Das sehe ich genauso.
Wenn der den GND da abzieht, holt sich der Rest das Potential ggfls. parasitär und schiesst früher oder später irgendwas ab.

@bastler88

#include <Adafruit_NeoPixel.h>

#define PIN 2  // Anschluss der LED Streifen Vitrine
#define NUM_LEDS 3 //Anzahl der LED pro Streifen

constexpr uint8_t RELAIS2 {5}; //Anschluss Relais 2 LED Streifen Vitrine weiss
constexpr uint8_t RELAIS3 {6}; //Anschluss Relais 3 Motor Kopf Labubu
constexpr uint8_t TASTER {3};

constexpr uint16_t PAUSE = 4650 ; //Pausenzeit zum drehen vom Kopf
constexpr uint16_t MINI {500} ; //Pause für die Relais
constexpr uint8_t BLACK {0};
constexpr uint8_t RED {1};

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);

void setup()
{
  pinMode(TASTER, INPUT);
  // pinMode(RELAIS1, OUTPUT);
  pinMode(RELAIS2, OUTPUT);
  pinMode(RELAIS3, OUTPUT);
  strip.begin();

  for (int i = 0; i < 6; i++)
  {
    strip.setPixelColor(i, strip.Color(255, 0, 0));
    strip.setBrightness(255);
    strip.show();
  }
}

void loop()
{
  if (digitalRead(TASTER) == HIGH)   //Bedingung für Start der Animatronic Sequenz                                          //Einmal alle Relais auf "0"
  {
    setStripe(RED);
    delay(MINI);
    setStripe(BLACK);
    digitalWrite(RELAIS2, HIGH);
    digitalWrite(RELAIS3, LOW);
    delay(PAUSE);
  }
  else                                                                    //Kein Startsignal, dann bleiben alle Relais auf "0"
  {
    setStripe(BLACK);
    digitalWrite(RELAIS2, LOW);
    digitalWrite(RELAIS3, HIGH);
  }
}

void setStripe(const uint8_t type )
{
  switch (type)
  {
    case BLACK:
      for (int i = 0; i < NUM_LEDS; i++)
      {
        strip.setPixelColor(i, strip.Color(0, 0, 0));
      }

      strip.setBrightness(0);
      break;

    case RED:
      for (int i = 0; i < NUM_LEDS; i++)
      {
        strip.setPixelColor(i, strip.Color(255, 0, 0));
      }

      strip.setBrightness(255);
      break;
      strip.show();
  }
}

Wenn es einen Din gibt, verstehe ich nicht, warum man die rot leuchtende RGB-LED vom GND trennen muss. Wenn die aus sein soll, wird die mit BLACK beschrieben und gut ist.
Ganz ohne Relais....
Geht sicher schöner.

der taster hängt mit einem pin an den 3,3v vom arduino und schaltet diese auf pin 3 am arduino.Pin 3 ist zusätzlich über einen Pulldown widerstand geerdet.

genau :slight_smile: die frage ist halt ob ich den gnd vom 12v netzteil, (womit der arduino versorgt wird) zeitgleich mit dem gnd vom 24v netzteil(womit die streifen versorgt werden) auf den GND Pin vom arduino legen kann

der Controller ist ok einen widerstand habe ich dazwischen und sie leuchten ja auch nur halt erst wenn ich den gnd ab mache und dann wieder dran ( farben sind dann willkürlich)

danke diese option kannte ich nicht da ich erst seit 2 jahren ein wenig mit dem arduino und neopixel herum experimentiere.

ich hab deinen code mal auf meine relais und pins angepasst, aber die roten streifen leuchten noch nicht….( habe natürlich den gnd fest verbunden und nicht über das relais :smiley:

Das wird schon...
Wir müssen erstmal einige Begriffe klären.

Erden ist nicht notwendig.

Bezugspotential las ich durchgehen, ansonsten genau das, was es ist VCC oder GND
Eigentlich ist GND das Bezugspotential.

Der Taster kann ohne externen Widerstand betrieben werden, wenn er nach GND schaltet und der PULLUP im Chip aktiviert wird.

Was mich irritiert, sind die 3,3V - was hast Du für einen Controller?

Alle GND gehören miteinander verbunden.
Das 24V-Netzteil, Das 12V-Netzteil zusammen und von da aus gehen dann auch alle externen Verbindungen ab.
Der Arduino mit seinen 12V gefüttert, hat eine Verbindung von 12V GND nach 5V GND (und nachtürlich auch 3,3V GND) ist alles GND und nicht Minus.

Auf den Code schau ich nochmal,ob ich was übersehen habe.
Kann natürlich sein, dass da noch was zusätzlich rein muss.

ok alle gnd miteinander verbinden

wenn ich den widerstand weglasse schaltet der arduino willkürlich die relais……

ich habe einen nano v3