Hallo zusammen,
ich habe mir LED-Stripes mit 2700 und 5000 Kelvin Weiß gekauft. Nun möchte ich diese per DMX ansteuern. Das passt soweit technisch aber ich ich möchte die dynamische Geschichte einbauen. Da brauche ich eure PHP-Hilfe. Wie kann ich einen Wert in einer Variablen auf den Bereich 0 bis 255 in PHP begrenzen, so dass sich der DMX-Befehl nicht beschwert, wenn in meiner Berechnung mal außerhalb dessen etwas raus kommt?
Da meine Stripe nur von 2700 bis 5000 und nicht von 1000 bis 12000 geht wie das schöne TW-Profil, muss ich DMX Werte unter 0 und über 255 in den Variablen $valueD_CW und $valueD_WW verhindern.
Hier mein Script um aus einem Integer Dimm-Wert 0-255 ($valueD) und dem TunableWhite/TW-Wert ($valueTW) sowie den Ober- und Untergrenzen was meine LED-Stripe kann einen Wert von 0-255 für die zwei DMX-Kanäle zu machen.
<?php
include("28971.ips.php"); //Licht Basis-Konfigurationen
//Dimm- und Weiß-Wert
$valueD = GetValueInteger(49382);
$valueTW = GetValueInteger(37457);
//Grenzwerte Kalt und Warmweiß in der Lampe/ Stripe
$lampCold = 5000;
$lampWarm = 2700;
//Kanäle Ziel
$C = 17; //Kaltweiß
$W = 18; //Warmweiß
//DMX_FadeChannel($dmx0, $W, $valueD, $dmxtime);
//rechne kaltweiß
$valueD_CW = ($valueD * ($valueTW-$lampWarm)/($lampCold-$lampWarm));
//print($valueD_CW);
DMX_FadeChannel($dmx0, $C, $valueD_CW, $dmxtime);
//rechne warmweiß
$valueD_WW = ($valueD * (1-(($valueTW-$lampWarm)/($lampCold-$lampWarm))));
//print($valueD_WW);
DMX_FadeChannel($dmx0, $W, $valueD_WW, $dmxtime);
Viele Grüße und eines erfolgreiches 2022!
papaschlumpf
PS: @paresy : Wäre klasse, wenn das TW-Profil auch so toll aussehen würde, wenn man Min und Max verändert. Ich dupliziere es und schon ist die schöne Darstellung weg. Mir würde 2700 bis 5000K zum Beispiel ausreichen.