Ankündigung

Einklappen
Keine Ankündigung bisher.

Ergonomische Farbansteuerung RGB-LEDS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    DALI Ergonomische Farbansteuerung RGB-LEDS

    Servus an alle RGB-Leds-Nutzer,

    mich würde mal interessieren, wie Ihr die Farben an Euren RGB-LEDs steuert, bzw. genauer gesagt die Farbmischung.

    Ich habe wenig Lust für jede Farbe zum Dimmen eine Taste zu belegen und ggf. noch eine für (Misch-)Weiß und Dimmwert.

    Klar kann man im DALI Gateway auch Sequenzen hinterlegen (Effekte) und diese dann zum Zeitpunkt stoppen, wenn einem das Licht gefällt aber das finde ich auch mühsam. Zudem müsste man noch einen Schalter zum Auschalten der RGB-Leds haben, da bei Stoppen des Effekts ja das Licht nicht ausgeht - wäre ja auch Schwachsinn.

    Beim Durchlaufen von Effekten möchte ich zudem natürlich alle möglichen Mischfarben haben und nicht nur rot, grün, blau, gelb, türkis, lila und weiss..

    Wenn man viele Knöpfe braucht, würde ich ggf. mein Infodisplay dafür nehmen mit einer Ansteuerung der einzelnen Farben und zudem ein paar Presets. Ich kann mir nicht vorstellen, dass meine Frau Spaß daran hat, sich die Farben zusammenzumischen...

    Es interessiert mich hauptsächlich, wie Ihr das so macht...

    Ich habe den EibPC zur Verfügung, damit man ggf. darüber mehr Möglichkeiten hätte.

    Hat ggf. jemand eine Zufallsgeneraterfunktion für Farbtöne bei sich implementiert. Fände ich auch ganz nett...

    CU Gustav

    #2
    Hallo Baubär,

    Zitat von Baubär Beitrag anzeigen
    mich würde mal interessieren, wie Ihr die Farben an Euren RGB-LEDs steuert, bzw. genauer gesagt die Farbmischung.

    Ich habe den EibPC zur Verfügung, damit man ggf. darüber mehr Möglichkeiten hätte.
    RGB ist ja nicht wirklich ersichtlich in der Farbwirkung. Schau doch mal unter HSV-Farbraum Wenn ich schon soweit wäre, würde ich mir einen Dimmer für die Helligkeit machen und einen weiteren für den Farbton.

    Mit dem EibPC kannst Du mit den Formeln dann ganz bequem die Anteile für R, G und B errechnen und einstellen.

    Viel Spaß,
    Bernd

    Kommentar


      #3
      Bei mir werden die Farben einfach durchgespielt. HSL ist das richtige Farbmodell dafür.

      Ich hab eine Taste um: den Sequenzer ein- und auszuschalten. Dann habe ich für die drei RGB Kanaele ne Szene gemacht und kann dann über verschiedene Tasten diese Szenen abrufen und speichern.

      Das war kompliziert .
      6 Schalter:
      oben links licht an/aus
      oben rechts sequenzer an/aus
      die anderen 4 sind szenen. lange drücken speichert die aktuellen RGB Werte in die Szene 1-4. kurz drücken ruft die Szene ab.

      Meine Frau und die Kids können damit umgehen.

      Hier der entspechende Misterhouse Code dafür:

      Code:
      if (!($New_Second % 2) == 0 && state $SequenzerAn eq ON && state $Bad_Spiegel eq ON) {
        my ($r,$g,$b);
        $current_hue += 5;
        if ($current_hue >= 255) { $current_hue = 0; }
        ($r, $g, $b) = hsv2rgb($current_hue, 255, 255);
        $r = int( $r/255*100); $g = int( $g/255*100); $b = int( $b/255*100);
        # Nur bei Änderungen der Farbwerte auch wirklich auf den Bus senden um unnötige Buslast zu verhindern.
        set $Bad_Rot   $r if ($ro != $r);
        set $Bad_Gruen $g if ($go != $g);
        set $Bad_Blau  $b if ($bo != $b);
        ($ro, $go, $bo) = ($r,$g,$b);
        printf("RGB %3i %3i %3i\n",$r,$g,$b);
      }
      Für HSL2RGB gibts sicher schlankerer Umsetzungen

      Code:
      sub hsv2rgb {
        my ($H,$S,$V) = @_;
        my ($R,$G,$B) = (0,0,0);
        my ($var_r, $var_g, $var_b);
      
        $H = $H/255; $S = $S/255; $V = $V/255;
      
        if ( $S == 0 )
        {
           $R = $V * 255; $G = $V * 255; $B = $V * 255;
        }
        else
        {
           my $var_h = $H * 6;
           if ( $var_h == 6 ) { $var_h = 0;}      # H must be < 1
           my $var_i = int( $var_h ) ;         # Or ... $var_i = floor( var_h )
           my $var_1 = $V * ( 1 - $S );
           my $var_2 = $V * ( 1 - $S * ( $var_h - $var_i ) );
           my $var_3 = $V * ( 1 - $S * ( 1 - ( $var_h - $var_i ) ) );
      
           if      ( $var_i == 0 ) { $var_r = $V     ; $var_g = $var_3 ; $var_b = $var_1 ;}
           elsif ( $var_i == 1 ) { $var_r = $var_2 ; $var_g = $V     ; $var_b = $var_1 ;}
           elsif ( $var_i == 2 ) { $var_r = $var_1 ; $var_g = $V     ; $var_b = $var_3 ;}
           elsif ( $var_i == 3 ) { $var_r = $var_1 ; $var_g = $var_2 ; $var_b = $V     ;}
           elsif ( $var_i == 4 ) { $var_r = $var_3 ; $var_g = $var_1 ; $var_b = $V     ;}
           else                  { $var_r = $V     ; $var_g = $var_1 ; $var_b = $var_2 ;}
      
           $R = $var_r * 255;                  # RGB results from 0 to 255
           $G = $var_g * 255;
           $B = $var_b * 255;
        }
        return ($R, $G, $B);
      }

      Kommentar


        #4
        Zitat von RaK Beitrag anzeigen
        Das war kompliziert .
        Vielen Dank für die ausführlichen Infos...

        RGB - HSV - HSL ???

        Ich wollte doch nur buntes Licht!!!

        So wie es scheint muss ich da erst ein paar - besser viele - ruhige Minuten einplanen, um mich mit der Thematik auseinanderzusetzen.

        Ich wollte die Farbsteuerung auf meinen TS2+ legen, jedoch sind 6 Tasten natürlich ein Wort in einem Raum mit:

        - 3 Rolladen
        - 4 Wandlampen (2x2 schaltbar)
        - Dali Deckenbeleuchtung RGB
        - 2 Schaltbare Steckdosen für Zusatzbeleuchtung

        Da wird es selbst bei 5 Wippen schnell eng...

        Meine Visu kommt leider erst später aber vielleicht nehme ich dann einen der Infodisplays dafür.

        Der Programmcode sieht interessant aus Mal schauen, wie ich das auf dem EIBPC übertragen bekomme...

        CU Gustav

        Kommentar


          #5
          Zitat von Baubär Beitrag anzeigen
          Der Programmcode sieht interessant aus Mal schauen, wie ich das auf dem EIBPC übertragen bekomme
          Stellt mir einen hin und ich schau mir das mal an .

          Kommentar

          Lädt...
          X