... mit ein paar kleinen Anpassungen kann man auch langsam herunter dimmen (z. B. für eine Sonnenuntergangssimulation im Aquarium).
Die "Konstante Eins" wird zu -1, und die Variablen im Polynomial- sowie Comparator-Modul umgedreht.
Code: Alles auswählen
{
"Level": [
["$ValStart","float",100.0],
["$ValEnd","float",0.0],
["$ValStep","float",5.0],
["$ValCurrent","float",100.0],
["$ValNext","float",100.0],
["$Active","bool",false],
["$Run","bool",false],
["$TimeStep","float",1.5],
["$Period","float",0.0],
["$KonstEins","float",-1.0]
],
"Module": [
["Multiplexer",["$Active"],"$Run",0],
["Multiplexer",["$ValNext"],"$ValCurrent",0],
["Polynomial","$KonstEins","$ValNext",["$ValCurrent","$ValStep"]], // $ValNext = $ValCurrent + ($ValStep * -1)
["Comparator","$ValEnd","-$Run","$ValNext"], // Run solange nächster Wert nicht kleiner als Endwert
["Latch","$ValStart","$ValNext","-$Active",0], // Falls deaktiviert => Rücksetzen auf Startwert (100).
["Latch","$ValStart","$ValNext","$Run",2], // Rücksetzen auf Startwert, bei fallender Flanke von $Run (100)
["Multiplexer",[0,"$TimeStep"],"$Period","$Run"], // $Period == 0, stoppt den Timer
["Clocksignal","$Active",0,"$Period"] // Timer für nächsten Schritt
],
"Input": [
["Aktiv","Aktiviere/Deaktivier Dimmer","$Active","u"],
["Start","Start-Wert","$ValStart","u"],
["Ende","End-Wert","$ValEnd","u"],
["Step","Schrittweite","$ValStep","u"],
["Intervall","Zeit [s] zwischen zwei Werten","$TimeStep","u"]
],
"Output": [
["Dimmwert","Aktueller Dimmwert","$ValCurrent","c"]
]
}