Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| anleitungen:prog_gen:led-to-var [2026/10/13 19:28] – [LED Nummer Offset] raily74 | anleitungen:prog_gen:led-to-var [2026/10/13 21:02] (aktuell) – [Vergleichswert] raily74 | ||
|---|---|---|---|
| Zeile 18: | Zeile 18: | ||
| Wir schalten eine RGB-LED, die nur rot leuchtet, wenn sie eingeschaltet ist und gar nicht leuchtet, wenn sie ausgeschaltet ist. Das ist für den Einstieg sehr einfach. | Wir schalten eine RGB-LED, die nur rot leuchtet, wenn sie eingeschaltet ist und gar nicht leuchtet, wenn sie ausgeschaltet ist. Das ist für den Einstieg sehr einfach. | ||
| Direkt darunter fragen wir mit der **LED-to-Var**-Funktion genau dieses rote Leuchten ab. Sobald nun die vergebene Variable " | Direkt darunter fragen wir mit der **LED-to-Var**-Funktion genau dieses rote Leuchten ab. Sobald nun die vergebene Variable " | ||
| + | |||
| + | Wenn bis hierhin alles klar ist, schauen wir uns genau an dieser Stelle den **LED Nummer Offset** genauer an. Wie wir oben gelernt haben, fangen wir bei der ersten LED mit null an zu zählen, die direkt über der LED-to-VAR-Funktion steht (im Folgenden LED-Nr. genannt), in unserem Fall also die rote RGB-LED, deren roter Kanal im aktiven Zustand leuchtet. Man erkennt sie im Screenshot an der rot unterlegten **255** die darüber mit **Kanal 0** gekennzeichnet ist. Die grün unterlegte **0** bezieht sich exakt auf diesen Kanal. Gelb unterlegt ist lediglich die Wenn-Bedingung (größer als null), worauf ich weiter unten eingehe.\\ | ||
| {{bilder: | {{bilder: | ||
| - | Wenn bis hierhin alles klar ist, schauen wir uns genau an dieser | + | In einer Tabelle dargestellt teilt sich die erste LED auf drei Kanäle auf. Kanal 0 entspricht hier also dem roten Kanal dieser LED: |
| + | ^ LED-Nr. | ||
| + | | 1 | | ||
| + | | 1 | **<color # | ||
| + | | 1 | **<color # | ||
| + | **Das war bisher ein Kinderspiel, | ||
| + | Bevor ich aber jetzt auf Werte unterhalb der LED-Variable eingehe (ja, das geht auch), schauen wir uns an, wie es sich verhält, wenn wir eine Funktion abfragen müssen, die aus mehr als einer RGB-LED besteht oder anders gesagt aus mehr als drei Kanälen. Das könnte beispielsweise ein belebtes Haus sein, immerhin kann die LED-to-VAR-Funktion bis zu 31 Kanäle abfragen, was also locker für zehn RGB-LEDs innerhalb einer Funktion ausreicht. Doch ich mache lieber mit zwei WS2811 bzw. sechs Kanälen weiter. | ||
| + | |||
| + | Im Folgenden nehmen wir uns die [[..: | ||
| + | Der aufmerksame Leser wird jetzt bereits erkennen, dass die Kontroll-LED in jeder dieser Phasen einen anderen Helligkeitswert hat - dazu später mehr. | ||
| + | |||
| + | {{bilder: | ||
| + | |||
| + | Eigentlich bleibt alles wie beim vorangegangenen Beispiel. Wir referenzieren lediglich einen anderen Kanal, nämlich den blauen Kanal des zweiten WS2811, der sich auf der Stepperplatine befindet. Die grün unterlegte **5** bezieht sich exakt auf diesen blauen Kanal. Gelb unterlegt ist wieder die Wenn-Bedingung (größer als null). | ||
| + | |||
| + | {{bilder: | ||
| + | |||
| + | **Doch wie kommt man auf diese 5?** \\ | ||
| + | Dazu erweitern wir einfach mal die oben gezeigte Tabelle um drei Kanäle, denn die Funktion über der Abfrage besteht jetzt aus zwei LEDs. | ||
| + | ^ LED-Nr. | ||
| + | | 1 | **<color # | ||
| + | | 1 | **<color # | ||
| + | | 1 | **<color # | ||
| + | | 2 | **<color # | ||
| + | | 2 | **<color # | ||
| + | | 2 | **<color # | ||
| + | |||
| + | Bevor wir das Kapitel **LED Nummer Offset** schließen, zeige ich noch - wie oben versprochen - das Auslesen von LEDs, die **nach** der LED-to-VAR-Funktion aufgeführt werden. Auch wenn diese Funktion gegeben ist, so bleibt es bei der wichtigsten Regel: Die LED-to-VAR-Funktion bezieht sich **immer** auf die Funktion, die sich **direkt über** ihr befindet. Das muss mindestens **ein** Kanal sein. Im folgenden Screenshot wollen wir den grünen Kanal der unteren RGB-LED abrufen. Für die Zählweise muss man die drei Kanäle über der LED-to-VAR-Funktion mitzählen und dann bei der darunter positionierten LED weiterzählen. | ||
| + | |||
| + | {{bilder: | ||
| + | |||
| + | In der Tabelle gestaltet sich das nun so: | ||
| + | ^ LED-Nr. | ||
| + | | 1 | **<color # | ||
| + | | 1 | **<color # | ||
| + | | 1 | **<color # | ||
| + | | LED-to-VAR-Funktion | ||
| + | | 2 | **<color # | ||
| + | | 2 | **<color # | ||
| + | | 2 | **<color # | ||
| ==== Vergleichstyp ( = != < > & !& ) ==== | ==== Vergleichstyp ( = != < > & !& ) ==== | ||
| + | Hier stehen sechs Operatoren zur Verfügung, mit denen man so gut wie jeden Zustand abfragen kann. Die ersten vier Operatoren sind selbsterklärend, | ||
| + | ^ Operator | ||
| + | | = | Abgefragter LED-Wert und Bedingung müssen gleich sein | Aktiv, wenn der abgefragte Helligkeitswert einer LED erreicht wird (z. B. "Kanal 0 = 255") | | ||
| + | | != | Abgefragter LED-Wert und Bedingung dürfen nicht gleich sein | Aktiv, wenn der abgefragte Helligkeitswert einer LED **nicht** zutrifft | ||
| + | | < | Abgefragter LED-Wert kleiner sein als Bedingung | Aktiv, solange der abgefragte Helligkeitswert einer LED unterschritten bleibt (z. B. "Kanal 0 < 127") | | ||
| + | | > | Abgefragter LED-Wert größer sein als Bedingung | Aktiv, sobald der abgefragte Helligkeitswert einer LED überschritten wird (z. B. "Kanal 0 > 127") | | ||
| + | | & | Binärer Vergleich | siehe unten | | ||
| + | | !& | Binärer Vergleich negiert | siehe unten | | ||
| ==== Vergleichswert ==== | ==== Vergleichswert ==== | ||
| + | Wer es bis hierher geschafft hat, darf aufatmen. Denn das war's im Großen und Ganzen. | ||
| + | Der Vergleichswert ist einfach gesagt der Helligkeitswert (0 bis 255) der LED, die durch die Funktion abgefragt werden soll. Hier geben wir also an, bei welcher Helligkeit eine Funktion aktiv werden soll. | ||
| + | |||
| + | ==== Fazit ==== | ||
| + | Die LED-to-VAR-Funktion ist sicher ein Bereich, den man vor der Anwendung immer mal wieder nachschlagen muss. Doch richtig eingesetzt ist es wie eingangs erwähnt eine Waffe. Ich wünsch euch viel Freude und schöne Aha-Effekte, | ||