Art-Net mag für manche zur Allgemeinbildung gehören, aber Deine Chancen hier Hilfe zu bekommen, dürften sich bessern, wenn Du uns zuerst in die Geheimnisse der Schnittstelle zum LED-Stripe einweist. Wieviele Pixel werden angesteuert, wie werden sie adressiert, u.s.w. …Die Ansteuerung des LED-Stripes erfolgt über ArtNet und UDP, welches von der S7 bereit gestellt wird. … Die ArtNet-Ansteuerung läuft auch schon flüssig.
Jetzt musst Du nur noch auf die Excel-Simulation meiner Idee durch Heinileini warten, der hat bestimmt gleich ausgeschlafen :razz:
Ich weiss ja selber nicht, ob's an der Hitze oder an der Aufgabenstellung liegt, aber ich fürchte, ihr seid diesmal verdonnert (gemeinsam) vergeblich zu warten . . .Noch jemand mit so einer komischen Erwartungshaltung:sm24:
Ich weiß nicht wie sich dein LED-Controller verhält und wie die Dimmfunktion umgesetzt ist.
Es gibt Kontroller, da wird die Dimmgeschwindigkeit gesetzt und Dimmen aktiviert.
Der eigentliche Dimmvorgang wirkt dann auf jeden Wechsel in den RGB-Werten.
Wenn du so einen Controller hast, dann brauchst du das Dimmen gar nicht beachten.
Den Rest halt nach der Idee von andy umsetzen.
Als Ansatz für die Dimmfunktion schlage ich als Wert für die Helligkeit eine abstandsabhängige Funktion vor. Sagen wir mal, die Achse arbeitet mit 16384 Inkrementen. Du hast 256 LED.
Das ordnet jeder LED einen Bereich von 64 Inkrementen zu. Damit kannst Du die Helligkeit steuern ( 30 Schritte hoch, 30 Schritte runter, 4 Schritte 100%).
Die Zahl der Inkremente und der LED ist nur ein Beispiel, das Du beliebig anpassen kannst. Mit Schleppeffekt (mehrere LED gleichzeitig aktiv, aktive Position am hellsten) musst Du die Bereiche überlappen lassen, hast also mehr Dimmschritte. Das ganze muss aber noch auf die Übertragungsgeschwindigkeit des ArtNet und die Reaktionszeit des DMX-Interfaces angepasst werden.
Dim xDir&, xPos&
Const cMaxPos& = 63
Const cAbst& = 10
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' PositionsSimulator (Cusor bewegen, Richtung durch Anklicken von '+' bzw. '-')
If Target.Address = "$B$2" Or xDir& = 0 Then
xDir& = 1
ElseIf Target.Address = "$B$4" Then
xDir& = -1
ElseIf xPos& + xDir& >= 0 And xPos& + xDir& <= cMaxPos& Then
xPos& = xPos& + xDir&
Else
xDir& = -xDir&
End If
Range("B3").Value = xPos&
' HintergrundFarbe in Zeile 2
Cells(2, xPos& + 5).Value = xPos&
Cells(2, xPos& + 4).Interior.Color = RGB(255, 255, 255)
Cells(2, xPos& + 5).Interior.Color = RGB(255, 0, 0)
Cells(2, xPos& + 6).Interior.Color = RGB(255, 255, 255)
' HintergrundFarbe in Zeile 3
xVon& = Max(0, xPos& - cAbst&)
xBis& = Min(cMaxPos&, xPos& + cAbst&)
For xi& = xVon& To xBis&
xDiff& = 255 - Min(255, Abs(xPos& - xi&) * 255 / cAbst&)
Cells(3, xi& + 5).Interior.Color = RGB(xDiff&, 0, 0)
Cells(4, xi& + 5).Value = xDiff&
Next xi&
End Sub
'In Modul1 (dort nicht auskommentiert ;)):
' Function Max(x1, x2)
' If x1 > x2 Then Max = x1 Else Max = x2
' End Function
' Function Min(x1, x2)
' If x1 < x2 Then Min = x1 Else Min = x2
' End Function
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?