<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.mobaledlib.de/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>MobaLedLib Wiki</title>
        <description></description>
        <link>https://wiki.mobaledlib.de/</link>
        <lastBuildDate>Wed, 11 Nov 2026 14:38:57 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.mobaledlib.de/_media/logo.png</url>
            <title>MobaLedLib Wiki</title>
            <link>https://wiki.mobaledlib.de/</link>
        </image>
        <item>
            <title>led-to-var</title>
            <link>https://wiki.mobaledlib.de/anleitungen/prog_gen/led-to-var</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;die_wunderwaffe_led-to-var&quot;&gt;Die Wunderwaffe LED-to-VAR&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Wie sich auf einfachste Weise Funktionen beim Erreichen bestimmter Helligkeitswerte schalten lassen und wie man damit jeden Ablauf optimieren kann.&lt;/strong&gt; &lt;br/&gt;

&lt;a href=&quot;mailto:&amp;#114;&amp;#97;&amp;#105;&amp;#108;&amp;#121;&amp;#55;&amp;#52;&amp;#64;&amp;#105;&amp;#99;&amp;#108;&amp;#111;&amp;#117;&amp;#100;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#114;&amp;#97;&amp;#105;&amp;#108;&amp;#121;&amp;#55;&amp;#52;&amp;#64;&amp;#105;&amp;#99;&amp;#108;&amp;#111;&amp;#117;&amp;#100;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;von Michael&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Diese Anleitung soll euch die Angst vor einer komplett unterschätzten Funktion der MobaLedLib nehmen. Oftmals wird die Funktion als ein Gimmick für Profis dargestellt, doch im Grunde ist sie ganz einfach zu verstehen.
&lt;/p&gt;

&lt;p&gt;
Los geht es mit dem Menü, das nach dem Auswählen der Funktion &lt;strong&gt;LED-Werte als Variable&lt;/strong&gt; (auch bekannt als &lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/effects/linkk.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt; &lt;strong&gt;LED_to_Var&lt;/strong&gt;) im Expertenmodus erscheint. Bereits hier zeigt sich eine einfache Parametereingabe.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led_to_var_0_mark.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led_to_var_0_mark.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led_to_var_0_mark.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Die Wunderwaffe LED-to-VAR&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;die_wunderwaffe_led-to-var&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-780&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;zielvariable&quot;&gt;Zielvariable&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Hier ist man also völlig frei und kann als Variable den spezifischen Namen der gewünschten Funktion eingeben, z. B. „Heissluftballon“. Wichtig ist - wie bei allen Variablen - dass der verwendete Name einzigartig ist, denn der Name wird hierdurch zu einem Schalter. Richtig: Statt einer DCC-Adresse schaltet das Wort Heissluftballon zukünftig LEDs oder startet den Gasbrenner zum Abheben.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Zielvariable&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zielvariable&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;781-1199&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;led_nummer_offset&quot;&gt;LED Nummer Offset&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Okay, ich gebe zu, das ist ein bisschen unglücklich formuliert und vermutlich ist das die größte Hürde. Was hier eigentlich gemeint ist, ist die Frage nach der referenzierten LED. Also der LED, die wir auslesen wollen bzw. die maßgeblich dafür ist, wann bestimmte Funktionen ausgelöst werden. Damit diese Hürde ein für allemal beseitigt wird, gehe ich in diesem Kapitel möglichst einfach darauf ein. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;span class=&quot;wrap_em &quot;&gt;Wichtig:&lt;/span&gt; Die Funktion LED-to-VAR bezieht sich &lt;strong&gt;immer&lt;/strong&gt; auf die Funktion, die sich &lt;strong&gt;direkt über&lt;/strong&gt; ihr befindet. Um das besser zu verstehen, folgt ein einfaches Beispiel:
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 &lt;strong&gt;LED-to-Var&lt;/strong&gt;-Funktion genau dieses rote Leuchten ab. Sobald nun die vergebene Variable „Heissluftballon“ aktiv wird (also wenn die rote LED mit irgendeiner Helligkeit leuchtet, die größer als 0 ist), wird der Gasbrenner im Heißluftballon gezündet und dieser hebt ab.
&lt;/p&gt;

&lt;p&gt;
Wenn bis hierhin alles klar ist, schauen wir uns genau an dieser Stelle den &lt;strong&gt;LED Nummer Offset&lt;/strong&gt; genauer an. Wie wir oben gelernt haben, bezieht sich die Abfrage immer auf den ersten Kanal der Zeile, die direkt über der LED-to-VAR-Funktion steht, in unserem Fall also die RGB-LED, deren roter Kanal im aktiven Zustand leuchtet. Man erkennt sie im Screenshot an der rot unterlegten &lt;strong&gt;255&lt;/strong&gt; die darüber mit &lt;strong&gt;Kanal 0&lt;/strong&gt; gekennzeichnet ist. Die grün unterlegte &lt;strong&gt;0&lt;/strong&gt; bezieht sich exakt auf diesen Kanal. Gelb unterlegt ist lediglich die Wenn-Bedingung (größer als null), worauf ich weiter unten eingehe.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt01.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt01.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt01.png?w=1024&amp;amp;tok=83e9d4&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In einer Tabelle dargestellt teilt sich die erste LED auf drei Kanäle auf. Offset (Abstand) 0 entspricht hier also dem roten Kanal dieser LED:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  LED-Nr.  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Kanal  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Offset (Abstand)  &lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;  Bemerkung  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#ed1c24; &#039;&gt;Rot&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;strong&gt;0&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; LED-to-VAR fragt genau diesen Kanal ab. Es ist der erste Kanal der vorangegangen Zeile. Daher gibt es keinen Abstand. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Grün&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Dieser Kanal folgt auf den abgefragten Kanal. Der Offset (Abstand) zu diesem ist daher einen Kanal höher, also Abstand 1. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#00a2e8; &#039;&gt;Blau&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Der blaue Kanal liegt somit zwei Kanäle über dem ersten Kanal, den die LED-to-VAR-Funktion referenziert, also Abstand 2. &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3135-3718&amp;quot;} --&gt;
&lt;p&gt;
&lt;strong&gt;Das war bisher ein Kinderspiel, oder? Dann darf&amp;#039;s jetzt ein bisschen mehr sein, oder? Sehr gern.&lt;/strong&gt; &lt;br/&gt;

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.
&lt;/p&gt;

&lt;p&gt;
Im Folgenden nehmen wir uns die &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/bauanleitungen/550v2de/550_microstepper_pro&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:bauanleitungen:550v2de:550_microstepper_pro&quot; data-wiki-id=&quot;anleitungen:bauanleitungen:550v2de:550_microstepper_pro&quot;&gt;MicroStepper Pro-Platine&lt;/a&gt; als Referenz. Das ist im Übrigen ein sehr praktisches Beispiel, weil es sehr wahrscheinlich ist, dass beim Bewegen des Steppermotors auch passende Licht- oder Soundfunktionen ausgelöst werden sollen. Auf die Erklärungen zum &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/spezial/patternconfigurator&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:spezial:patternconfigurator&quot; data-wiki-id=&quot;anleitungen:spezial:patternconfigurator&quot;&gt;Pattern Configurator&lt;/a&gt; verzichte ich an dieser Stelle. Wichtig ist hier nur, dass der Steppermotor sechs Sekunden lang in die eine Richtung fährt und am Ziel für zehn Sekunden pausiert, bevor er für sechs Sekunden wieder zurück fährt. Genau das zeigt der folgende Screenshot.&lt;br/&gt;

Der aufmerksame Leser wird jetzt bereits erkennen, dass die Kontroll-LED in jeder dieser Phasen einen anderen Helligkeitswert hat - dazu später mehr.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt02.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt02.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt02.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
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. Dieser hat einen Abstand von fünf Kanälen zum ersten Kanal der ersten LED. &lt;br/&gt;

Die grün unterlegte &lt;strong&gt;5&lt;/strong&gt; bezieht sich exakt auf diesen blauen Kanal. Gelb unterlegt ist wieder die Wenn-Bedingung (größer als null).
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt03.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt03.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt03.png?w=1024&amp;amp;tok=32e49c&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Doch wie kommt man auf diese 5?&lt;/strong&gt; &lt;br/&gt;

Dazu erweitern wir einfach mal die oben gezeigte Tabelle um drei Kanäle, denn die Funktion über der Abfrage besteht jetzt aus zwei LEDs.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  LED-Nr.  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Kanal  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Offset  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#ed1c24; &#039;&gt;Rot&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Grün&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#00a2e8; &#039;&gt;Blau&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#ed1c24; &#039;&gt;Rot&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Grün&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#00a2e8; &#039;&gt;Blau&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;strong&gt;5&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5875-6213&amp;quot;} --&gt;
&lt;p&gt;
Bevor wir das Kapitel &lt;strong&gt;LED Nummer Offset&lt;/strong&gt; schließen, zeige ich noch - wie oben versprochen - das Auslesen von LEDs, die &lt;strong&gt;nach&lt;/strong&gt; 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 &lt;strong&gt;immer&lt;/strong&gt; auf die Funktion, die sich &lt;strong&gt;direkt über&lt;/strong&gt; ihr befindet. Das muss mindestens &lt;strong&gt;ein&lt;/strong&gt; 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.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt04.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt04.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt04.png?w=1024&amp;amp;tok=997bbe&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
In der Tabelle gestaltet sich das nun so:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  LED-Nr.  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Kanal  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Offset  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#ed1c24; &#039;&gt;Rot&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Grün&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#00a2e8; &#039;&gt;Blau&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  LED-to-VAR-Funktion  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#ed1c24; &#039;&gt;Rot&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Grün&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;strong&gt;4&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  &lt;strong&gt;&lt;span style=&#039;color:#00a2e8; &#039;&gt;Blau&lt;/span&gt;&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  5  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;6961-7325&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LED Nummer Offset&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;led_nummer_offset&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1200-7325&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;vergleichstyp&quot;&gt;Vergleichstyp ( = != &amp;lt; &amp;gt; &amp;amp; !&amp;amp; )&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Hier stehen sechs Operatoren zur Verfügung, mit denen man so gut wie jeden Zustand abfragen kann. Die ersten vier Operatoren sind selbsterklärend, die letzten beiden sind extrem mächtig, da sich damit unterschiedliche Funktionen auf einen Helligkeitswert legen lassen. Bevor ich näher darauf eingehe, schauen wir uns die Funktion der ersten vier Operatoren in der Tabelle an:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Operator  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Bedeutung  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Beispiel für „wahr“  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; = &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Abgefragter LED-Wert und Bedingung müssen gleich sein &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Aktiv, wenn der abgefragte Helligkeitswert einer LED erreicht wird (z. B. „Kanal 0 = 255“) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; != &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Abgefragter LED-Wert und Bedingung dürfen nicht gleich sein &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Aktiv, wenn der abgefragte Helligkeitswert einer LED &lt;strong&gt;nicht&lt;/strong&gt; zutrifft  (z. B. „Kanal 0 ≠ 0“) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &amp;lt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Abgefragter LED-Wert kleiner sein als Bedingung &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Aktiv, solange der abgefragte Helligkeitswert einer LED unterschritten bleibt (z. B. „Kanal 0 &amp;lt; 127“) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &amp;gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Abgefragter LED-Wert größer sein als Bedingung &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Aktiv, sobald der abgefragte Helligkeitswert einer LED überschritten wird (z. B. „Kanal 0 &amp;gt; 127“) &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &amp;amp; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Binärer Vergleich &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; siehe unten &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; !&amp;amp; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Binärer Vergleich negiert &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; siehe unten &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;7749-8540&amp;quot;} --&gt;
&lt;p&gt;
&lt;strong&gt;Kommen wir nun zum binären Vergleich&lt;/strong&gt; &lt;br/&gt;

Das ist in der Tat etwas abstrakt, aber wer diesen Part hinter sich hat, der wird automatisch zum LED-to-VAR-Profi. Doch bevor wir uns dem binären Zahlensystem widmen, möchte ich folgende Frage beantworten: &lt;br/&gt;

&lt;strong&gt;Wozu braucht man das eigentlich?&lt;/strong&gt; &lt;br/&gt;

Die oben bereits erklärten Operatoren können nicht miteinander kombiniert werden. Es ist also nicht möglich, eine Licht- oder Soundfunktion verschiedenen Helligkeitswerten zuzuordnen (z. B. kleiner-gleich). Als Beispiel für die Notwendigkeit nutze ich genau die Anwendung, mit der ich gelernt habe, was es mit den binären Vergleichen auf sich hat: Das Rolltor! &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Dazu erkläre ich den Ablauf, der am Ende erreicht werden soll:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Das Rolltor ist geschlossen, alle LEDs sind aus&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ein Auto nähert sich von außen und verlangt Zugriff zur Tiefgarage. &lt;br/&gt;
Bevor sich das Rolltor in Bewegung setzt, beginnt innen und außen ein rotes Warnlicht zu blinken.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Drei Sekunden später setzt sich das schwere Rolltor in Bewegung. &lt;br/&gt;
Gleichzeitig geht das Licht in der Tiefgarage an, wir wollen ja was sehen. &lt;br/&gt;
Die beiden Warnlichter innen und außen blinken weiter, solange sich das Tor bewegt.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Das Tor ist zum Stillstand gekommen, das Warnlicht geht aus aber das Innenlicht bleibt an. &lt;br/&gt;
Gleichzeitig springt die äußere Ampel auf grün und die innere auf rot. &lt;br/&gt;
Das von außen kommende Fahrzeug darf einfahren.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sobald der Ein- und Ausfahrtsbereich wieder frei ist, gehen beide Ampeln aus. &lt;br/&gt;
Stattdessen fangen beide Warnlichter wieder an zu blinken.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Drei Sekunden später beginnt das Rolltor sich zu schließen. &lt;br/&gt;
Auf halber Höhe erlischt das Licht in der Tiefgarage. Wir müssen Strom sparen.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Für die umgekehrte Richtung, also Fahrzeug will die Tiefgarage verlassen, müssen die Ampeln entgegengesetzt leuchten.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Und genau hier haben wir die oben beschriebene Anforderung. Das Warnlicht blinkt bereits vor dem Öffnen des Tors und erlischt, wenn das Tor zum Stillstand gekommen ist. Das Innenlicht leuchtet bereits, wenn sich das Tor zu bewegen beginnt und leuchtet auch während der Einfahrt. Dafür benötigt man einen Wert, der sowohl für die Warnlichter „wahr“ sein kann als auch für das Innenlicht, zu anderen Zeitpunkten aber „nicht wahr“ ist. Ich hoffe, das ist bis hierhin verständlich.
&lt;/p&gt;

&lt;p&gt;
Die folgende Tabelle hilft uns jetzt dabei, die passenden Binärzahlen sowie die dazugehörigen Dezimalzahlen zu bestimmen. &lt;br/&gt;

Doch zunächst bekommt jede Funktion eine Binärstelle zugewiesen, und zwar einfach der Reihe nach von rechts nach links:&lt;br/&gt;

Bit 0 (Binär 1): &lt;span style=&#039;color:#ed1c24; &#039;&gt;&lt;strong&gt;Warnlicht&lt;/strong&gt;&lt;/span&gt; &lt;br/&gt;

Bit 1 (Binär 2): &lt;span style=&#039;color:#22b14c; &#039;&gt;&lt;strong&gt;Innenlicht&lt;/strong&gt;&lt;/span&gt; &lt;br/&gt;

Bit 2 (Binär 4): &lt;span style=&#039;color:#00a2e8; &#039;&gt;&lt;strong&gt;Ampel reinfahren&lt;/strong&gt;&lt;/span&gt; &lt;br/&gt;

Bit 3 (Binär 8): &lt;span style=&#039;color:#ff7f27; &#039;&gt;&lt;strong&gt;Ampel rausfahren&lt;/strong&gt;&lt;/span&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Im oberen Teil der folgenden Tabelle betrachten wir nur die Schaltzustände der Einzelfunktionen. &lt;br/&gt;

Im unteren Teil kombinieren wir die Schaltzustände, die gleichzeitig erreicht werden sollen. &lt;br/&gt;

Das geht ganz einfach, indem wir überall dort, wo eine Funktion aktiv sein soll, eine „1“ setzen und für inaktiv eine „0“.&lt;br/&gt;

In der letzten Spalte (▼) steht die resultierende Dezimalzahl, die sich als einfache Summe der Dezimalzahlen in Zeile 2 (◄) bilden lässt. &lt;br/&gt;

Auf diesen Punkt will ich nochmal näher eingehen, denn das ist wichtig: &lt;br/&gt;

Bit 0 heißt 2⁰ und ergibt 1 als Dezimalzahl &lt;br/&gt;

Bit 1 heißt 2¹ und ergibt 2 als Dezimalzahl &lt;br/&gt;

Wenn beide Bits aktiv sein sollen, werden einfach die beiden Dezimalzahlen addiert (also 1 + 2 = 3).&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Nr. &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Funktion &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  Bit 3 (2³)  &lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;  Bit 2 (2²)  &lt;/th&gt;&lt;th class=&quot;col4 centeralign&quot;&gt;  Bit 1 (2¹)  &lt;/th&gt;&lt;th class=&quot;col5 centeralign&quot;&gt;  Bit 0 (2⁰)  &lt;/th&gt;&lt;th class=&quot;col6 centeralign&quot;&gt;  BIN  &lt;/th&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  8  &lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;  4  &lt;/th&gt;&lt;th class=&quot;col4 centeralign&quot;&gt;  2  &lt;/th&gt;&lt;th class=&quot;col5 centeralign&quot;&gt;  1  &lt;/th&gt;&lt;th class=&quot;col6&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col7 centeralign&quot;&gt;  ◄ Dezimalzahlen ▼  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Alles ausgeschaltet &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0000  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;span style=&#039;color:#ed1c24; &#039;&gt;&lt;strong&gt;Warnlicht aktiv&lt;/strong&gt;&lt;/span&gt; (Bit 0) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;span style=&#039;color:#ed1c24; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  000&lt;span style=&#039;color:#ed1c24; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;span style=&#039;color:#22b14c; &#039;&gt;&lt;strong&gt;Innenlicht aktiv&lt;/strong&gt;&lt;/span&gt; (Bit 1) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;span style=&#039;color:#22b14c; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  00&lt;span style=&#039;color:#22b14c; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  3  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;span style=&#039;color:#00a2e8; &#039;&gt;&lt;strong&gt;Ampel einfahren aktiv&lt;/strong&gt;&lt;/span&gt; (Bit 2) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;span style=&#039;color:#00a2e8; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0&lt;span style=&#039;color:#00a2e8; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;00  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  4  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;span style=&#039;color:#ff7f27; &#039;&gt;&lt;strong&gt;Ampel ausfahren aktiv&lt;/strong&gt;&lt;/span&gt; (Bit 3) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;span style=&#039;color:#ff7f27; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;span style=&#039;color:#ff7f27; &#039;&gt;&lt;strong&gt;1&lt;/strong&gt;&lt;/span&gt;000  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  8  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;/td&gt;&lt;th class=&quot;col1&quot;&gt; Funktionen kombiniert &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col4&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col5&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col6&quot;&gt; &lt;/th&gt;&lt;th class=&quot;col7&quot;&gt; &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;strong&gt;5&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Warnlicht &amp;amp; Innenlicht aktiv&lt;/strong&gt; (Bit 0 &amp;amp; 1) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  00&lt;strong&gt;11&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  &lt;strong&gt;3&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;strong&gt;6&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Innenlicht &amp;amp; Ampel einfahren aktiv&lt;/strong&gt; (Bit 1 &amp;amp; 2) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0&lt;strong&gt;11&lt;/strong&gt;0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  &lt;strong&gt;6&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  &lt;strong&gt;7&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;strong&gt;Innenlicht &amp;amp; Ampel ausfahren aktiv&lt;/strong&gt; (Bit 1 &amp;amp; 3) &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  &lt;strong&gt;1&lt;/strong&gt;0&lt;strong&gt;1&lt;/strong&gt;0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  &lt;strong&gt;10&lt;/strong&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;12115-13367&amp;quot;} --&gt;
&lt;p&gt;
Für unsere Choreografie benötigen wir die Funktionen mit den Zeilennummern 1, 5, 6 und 7, also die Dezimalzahlen 1, 3, 6 und 10. &lt;br/&gt;

Wer es bis hierhin geschafft und verstanden hat, der hat den schwierigsten Teil hinter sich und ich finde, dass es gar nicht so schwer ist. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Wer das Ermitteln der Dezimalzahlen lieber dem Taschenrechner überlässt, für den hab ich gute Nachrichten. &lt;br/&gt;

Unter Windows wird dazu einfach die Rechner-App von Standard auf Programmierer umgestellt. Das geht über das Menü (1) und dort den Modus Programmierer (2) wählen. &lt;br/&gt;

Im Programmierer-Modus schaltet man auf BIN um (roter Rahmen), sodass nur noch die Tasten 0 und 1 aktiv sind (grüner Rahmen). &lt;br/&gt;

Tippt man jetzt die gewünschten aktiven Bits ein (z. B. 1010 für zweites und viertes Bit aktiv), dann spuckt der Taschenrechner als Dezimalzahl die passende 10 aus (blauer Rahmen).&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt07.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt07.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt07.png?w=240&amp;amp;tok=12e4da&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt08.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt08.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt08.png?w=240&amp;amp;tok=b829c1&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Und auch die Mac-User unter uns können das auf diese Weise ermitteln. Dazu wird ähnlich wie bei Windows der Taschenrechner auf den Modus Programmierer umgestellt. &lt;br/&gt;

Im Modus Programmierer wird auf Dezimalzahlen umgestellt (grüner Rahmen). &lt;br/&gt;

Statt wie in Windows die Werte über die Tastatur einzugeben, können die aktiven Bits unter macOS durch einfaches Anklicken der Zahlen im Binärfeld (roter Rahmen) von 0 auf 1 umgestellt werden. &lt;br/&gt;

&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt09.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt09.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt09.png?w=240&amp;amp;tok=bae372&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;240&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt10.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt10.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt10.png?w=300&amp;amp;tok=50f1bc&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Die oben ermittelten Dezimalzahlen &lt;strong&gt;(1, 3, 6 und 10)&lt;/strong&gt; werden nun den einzelnen Sequenzen im Pattern Configurator zugewiesen. &lt;br/&gt;

Dazu nutzen wir einfach wie oben erklärt die &lt;strong&gt;blaue Kontroll-LED&lt;/strong&gt; auf der Stepper-Platine. &lt;br/&gt;

Sie ist später sowieso nicht zu sehen und übernimmt eine andere Aufgabe. Statt den Zustand des Steppermotors anzuzeigen ist sie zukünftig für die Steuerung der Lichtsequenzen verantwortlich.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt05.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt05.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt05.png?w=800&amp;amp;tok=79b9ad&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Der letzte Schritt ist wie bei den einfacheren Operatoren die Abfrage der Werte im Programm Generator. &lt;br/&gt;

Der einzige Unterschied zu oben ist, dass ich jetzt nicht mehr den realen LED Helligkeitswert vergleiche (also 1, 3, 6 oder 10), sondern das Bit vergleiche. &lt;br/&gt;

Mit anderen Worten: &lt;br/&gt;

Die LED-to-Var-Funktion fragt beispielsweise ab, ob an Kanal 5 (blauer Kanal des zweiten WS2811) das Bit 0 aktiv ist. &lt;br/&gt;

Sobald die LED einen Helligkeitswert von 1 oder 3 erreicht, ist das Ergebnis: Ja, Bit 0 ist gerade aktiv. &lt;br/&gt;

Wird der Helligkeitswert 6 oder 10 erreicht, so lautet die Antwort: Nein, ist gerade nicht aktiv. &lt;br/&gt;

Ein weiteres Beispiel: &lt;br/&gt;

Die LED-to-Var-Funktion fragt beispielsweise ab, ob an Kanal 5 (blauer Kanal des zweiten WS2811) das Bit 2 aktiv ist.&lt;br/&gt;

Sobald die LED einen Helligkeitswert von 6 erreicht, ist das Ergebnis: Ja, Bit 2 ist gerade aktiv. &lt;br/&gt;

Wird der Helligkeitswert 1, 3 oder 10 erreicht, so lautet die Antwort: Nein, ist gerade nicht aktiv. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Daher wird es jetzt auch besonders einfach, die richtigen Werte abzufragen. &lt;br/&gt;

Die MobaLedLib fragt die einzelnen Stellen mit Dezimalzahlen ab, da wir keine Potenzen eingeben können (z. B. 2¹). &lt;br/&gt;

Für Bit 0 setzen wir als Vergleichswert daher die 1 (2⁰ = 1).&lt;br/&gt;

Für Bit 1 setzen wir als Vergleichswert daher die 2 (2¹ = 2).&lt;br/&gt;

Für Bit 2 setzen wir als Vergleichswert daher die 4 (2² = 4).&lt;br/&gt;

Für Bit 3 setzen wir als Vergleichswert daher die 8 (2³ = 8).&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt06.png?id=anleitungen%3Aprog_gen%3Aled-to-var&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:led-to-var:led-to-var_schritt06.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/led-to-var/led-to-var_schritt06.png?w=1024&amp;amp;tok=04657f&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;1024&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vergleichstyp ( = != &amp;lt; &amp;gt; &amp;amp; !&amp;amp; )&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vergleichstyp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;7326-16991&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;vergleichswert&quot;&gt;Vergleichswert&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Wer es bis hierher geschafft hat, darf aufatmen. Denn das war&amp;#039;s im Großen und Ganzen. &lt;br/&gt;

Der Vergleichswert ist einfach gesagt der Helligkeitswert (0 bis 255) der LED, die durch die Funktion abgefragt werden soll. &lt;br/&gt;

Eigentlich bedarf das gar keiner Erklärung mehr, denn es wurde in allen oben genannten Punkten immer ein wenig erklärt.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vergleichswert&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vergleichswert&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;16992-17357&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;fazit&quot;&gt;Fazit&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
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, wenn ihr anfangt, Teile dieses Tutorials nachzubauen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fazit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fazit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;17358-17658&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;outtakes&quot;&gt;Outtakes&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Die nachstehende Tabelle wollte ich ursprünglich zur Erklärung der Dezimalzahlen nutzen. Doch dann fiel mir auf, dass man ja einfach die Dezimalzahlen der aktiven Bits addieren muss oder man den Taschenrechner auf BIN umschalten kann. Daher ist das folgende Monster überflüssig. Für die Hardcore Fans habe ich es aber drin gelassen. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Dezimalzahl ermitteln&lt;/strong&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table sectionedit13&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;  &lt;/td&gt;&lt;th class=&quot;col1 centeralign&quot; colspan=&quot;7&quot;&gt;  Binär  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Dezimal ▼  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  32  &lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  16  &lt;/th&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;th class=&quot;col4 centeralign&quot;&gt;  8  &lt;/th&gt;&lt;th class=&quot;col5 centeralign&quot;&gt;  4  &lt;/th&gt;&lt;th class=&quot;col6 centeralign&quot;&gt;  2  &lt;/th&gt;&lt;th class=&quot;col7 centeralign&quot;&gt;  1  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  0  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  1  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  2  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  3  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  4  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  5  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  6  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  7  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  8  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  9  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  10  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  11  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  12  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  13  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  14  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  15  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  16  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  17  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  18  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  19  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  20  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  21  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  22  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  23  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  24  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  25  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row28&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  26  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row29&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  27  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row30&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  28  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row31&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  29  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row32&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  30  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row33&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  31  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row34&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  32  &lt;/th&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col5 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col6 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col7 centeralign&quot;&gt;  0  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;18048-19701&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Outtakes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;outtakes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;17659-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 19 Oct 2026 16:29:55 +0000</pubDate>
        </item>
        <item>
            <title>virtual</title>
            <link>https://wiki.mobaledlib.de/anleitungen/prog_gen/virtual</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;virtuelle_led_kanaele&quot;&gt;Virtuelle LED Kanäle&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Virtuelle Kanäle eignen sich, um versteckte Operationen auszuführen, die man für andere Funktionen wieder abfragen kann. &lt;br/&gt;

So können beispielsweise eigene Zeitabläufe auf einem virtuellen LED-Kanal erfolgen, ohne dafür einen echten WS2811 in der LED-Kette zu belegen.&lt;br/&gt;

Den Zeitablauf kann man wiederum mit einer Variable abrufen und zum Schalten echter WS2811/12 auf jedem anderen Kanal verwenden.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Virtuelle LED Kan\u00e4le&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;virtuelle_led_kanaele&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-444&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;einleitung&quot;&gt;Einleitung&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Einleitung&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;einleitung&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;445-467&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;was_kann_man_damit_machen&quot;&gt;Was kann man damit machen?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Das Thema hört sich im ersten Moment hochkomplex an und ohne Beispiel fehlt oft der Bezug zur Verwendbarkeit. &lt;br/&gt;

Daher startet dieser Beitrag mit einem Beispiel: &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Im konkreten Fall sollten drei Abschnitte à acht Neonlampen eines Bahnsteigs mit kurzer Zeitverzögerung nacheinander angehen, so als hätte jemand im Bahnhofsgebäude drei Schalter nacheinander eingeschaltet.&lt;br/&gt;

Starten wir mit dem Ergebnis: &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/bahnsteig_zuenden.gif?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:bahnsteig_zuenden.gif&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/bahnsteig_zuenden.gif&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Hier werden zwei Funktionen der MobaLedLib miteinander vereint.
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Der &lt;strong&gt;Pattern Configurator&lt;/strong&gt; gibt den zeitlichen Ablauf vor, indem er mit jeweils einer Sekunde Verzögerung die Kanäle Rot, Grün und Blau an einem virtuellen WS2811 einschaltet. &lt;br/&gt;
Dieser Ablauf wird bewusst auf einen virtuellen Kanal ausgelagert, damit man diesen WS2811 nicht wirklich einlöten muss. Er existiert nur in der virtuellen Welt. &lt;br/&gt;
Die MobaLedLib kann im Programm jederzeit die Schaltzustände dieses virtuellen WS2811 abrufen, obwohl er physisch gar nicht existiert.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Das &lt;strong&gt;belebte Haus&lt;/strong&gt; zündet innerhalb weniger Millisekunden die jeweils acht LEDs eines Bahnsteigdachs.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Vereint werden diese beiden Funktionen später mit dem Befehl &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/effekte_mll#led-werte_als_variable&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:effekte_mll&quot; data-wiki-id=&quot;anleitungen:effekte_mll&quot;&gt;LED-Werte als Variable&lt;/a&gt;. &lt;br/&gt;

Mit dieser Funktion kann man die Zustände anderer LEDs abfragen (auch die virtueller LEDs) und bei bestimmten Zuständen Aktionen auslösen. Dazu später mehr.&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Was kann man damit machen?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;was_kann_man_damit_machen&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;468-1955&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;wie_aktiviert_man_virtuelle_kanaele&quot;&gt;Wie aktiviert man virtuelle Kanäle?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Virtuelle Kanäle kann man ganz einfach zusätzlich zu den echten Kanälen definieren. Das geht mit der Funktion &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/effekte_mll#pins_led_bus_definieren&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:effekte_mll&quot; data-wiki-id=&quot;anleitungen:effekte_mll&quot;&gt;Pins LED Bus definieren&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Zunächst wählt man die erste Zeile im aktuellen Excel-Sheet. Dort sollte der Befehl &lt;strong&gt;Pins LED Bus definieren&lt;/strong&gt; stehen.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Beim &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;Arduino&lt;/span&gt;&lt;/strong&gt; sollte in der Spalte rechts daneben folgender Eintrag stehen: &lt;strong&gt;Set_LED_OutpPinLst(6 A4)&lt;/strong&gt; &lt;br/&gt;

Die 6 steht für den digitalen Pin D6, A4 steht für den analogen Pin A4. Das sind die beiden Arduino Pins, an denen die Kanäle LED #0 und Push Button #1 der LichtMaschine Classic hängen.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Beim &lt;strong&gt;&lt;span style=&#039;color:#22b14c; &#039;&gt;ESP32/Pico&lt;/span&gt;&lt;/strong&gt; sollte in der Spalte rechts daneben folgender Eintrag stehen: &lt;strong&gt;Set_LED_OutpPinLst(27 32 16 14 18 19 23 0)&lt;/strong&gt;&lt;br/&gt;

Hier handelt es sich um die acht digitalen Pins, an denen die Kanäle LED #0 bis #7 der LichtMaschine Pro hängen. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Diese Zeile bitte per Doppelklick öffnen.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Bei aktiviertem Expertenmodus&lt;/strong&gt; findet man unter Konfiguration &amp;gt; Pin-Nummern nun den Eintrag &lt;strong&gt;Pins LED-Bus definieren&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-bus-pins_define.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-bus-pins_define.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-bus-pins_define.png?w=600&amp;amp;tok=d0b1bc&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Für den Fall, dass alle vorhandenen LED-Kanäle verwendet werden sollen, muss man zunächst alle verwendeten oder einfach alle möglichen LED-Kanäle des jeweiligen Arduinos/ESPs definieren und zusätzlich den virtuellen Kanal mit einem V bezeichnen.&lt;br/&gt;

Schauen wir uns das am besten am Beispiel eines Arduinos an. Im folgenden Bild wurden der LED-Kanal 0 (Arduino-Pin: 6), der PushButtonKanal 1 (Arduino-Pin: A4), der LED-Kanal2 (Arduino-Pin: 2) und der virtuelle Kanal V extra definiert.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/pins-definieren.jpeg?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:pins-definieren.jpeg&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/pins-definieren.jpeg?w=480&amp;amp;tok=77c43f&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Wie aktiviert man virtuelle Kan\u00e4le?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;wie_aktiviert_man_virtuelle_kanaele&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1956-3705&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;welcher_kanal_ist_der_virtuelle_kanal&quot;&gt;Welcher Kanal ist der virtuelle Kanal?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Die Herleitung ist ganz einfach. Wie oben bereits beschrieben, liegt der LED-Kanal 0 am Arduino-Pin 6. &lt;br/&gt;

Wenn wir im Programm Generator nach dem LED-Kanal gefragt werden, tragen wir dort standardmäßig die „0“ ein. &lt;br/&gt;

Für den Push-Button Kanal am Arduino-Pin A4 tragen wir die „1“ ein. &lt;br/&gt;

Für den zweiten LED-Kanal am Arduino-Pin 2 tragen wir die „2“ ein. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Der Programm Generator erwartet beim LED-Kanal also einfach die Nummer des Kanals, &lt;strong&gt;NICHT&lt;/strong&gt; den Namen. &lt;br/&gt;

Wenn also wie in unserem Beispiel alle physischen Kanäle des Arduinos verwendet werden (LED #0, PushButton #1 &amp;amp; LED #2), dann ist der virtuelle Kanal eben Nummer #3. &lt;br/&gt;

Wird der LED-Kanal 2 des Arduinos nicht als echter Ausgang genutzt, dann wäre der virtuelle Kanal Nummer #2. Die Liste der Arduino Pins wäre dann „6 A4 V“. Ganz einfach. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Welcher Kanal ist der virtuelle Kanal?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;welcher_kanal_ist_der_virtuelle_kanal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3706-4570&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;wie_verwendet_man_den_virtuellen_kanal&quot;&gt;Wie verwendet man den virtuellen Kanal?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Die Einrichtung liegt nun hinter uns. Jetzt kommt der virtuelle Kanal in einem sehr einfachen Beispiel als versteckter Schalter zum Einsatz. Es eignet sich sehr gut zum Üben, weil es zunächst auf den oben beschriebenen Zeitablauf über den Pattern Configurator verzichtet. Das Beispiel zeigt lediglich die Anwendung des virtuellen Kanals und die Verknüpfung mit dem reellen Kanal. 
&lt;/p&gt;

&lt;p&gt;
In der Programmierung ist der virtuelle Kanal wie oben genannt Kanal 3.&lt;br/&gt;

Ablauf: Mit der DCC Adresse 1 wird lediglich die virtuelle LED auf  Kanal 3 eingeschaltet. Sobald der Helligkeitswert größer als 1 ist, wird die Variable „virtuell“ aktiv und die RGB-LED auf dem LED-Kanal 0 beginnt zu leuchten.
&lt;/p&gt;

&lt;p&gt;
Es empfiehlt sich, dieses Beispiel einmal nachzubauen, bevor wir in den Ablauf des eingangs erwähnten Bahnsteig einsteigen. 
&lt;/p&gt;

&lt;p&gt;
Für den ESP gilt übrigens das Gleiche, hier müssen auch die verwendeten Kanäle und der zusätzliche V-Kanal extra definiert werden.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtuell_verwenden.jpeg?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtuell_verwenden.jpeg&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtuell_verwenden.jpeg?w=600&amp;amp;tok=da71ec&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Wie verwendet man den virtuellen Kanal?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;wie_verwendet_man_den_virtuellen_kanal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4571-5639&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;funktionen_schrittweise_ein-_und_ausschalten&quot;&gt;Funktionen schrittweise ein- und ausschalten?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Die ganze Macht dieser Funktion wird erst sichtbar, wenn man ein Pattern mit den bekannten Effekten der MobaLedLib kombiniert, so wie beim eingangs erwähnten Bahnsteig. &lt;br/&gt;

Dabei ist selbst der Bahnsteig ein sehr einfaches Beispiel. 
&lt;/p&gt;

&lt;p&gt;
Ziel soll es sein, verschiedene Effekte (hier die Neonlampen eines belebten Hauses) in zeitlicher Abfolge (hier hintereinander) zu schalten. &lt;br/&gt;

Also bauen wir uns erstmal die zeitliche Abfolge: &lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Funktionen schrittweise ein- und ausschalten?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;funktionen_schrittweise_ein-_und_ausschalten&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5640-6129&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;schritt_1das_schrittschaltwerk_im_pattern_configurator&quot;&gt;Schritt 1: Das Schrittschaltwerk im Pattern Configurator&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Für den Bahnsteig benötigen wir drei Zustände, die ich hier zunächst in logischer Reihenfolge definiere. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Zustand 0: Der Bahnsteig ist aus. Diesen Zustand benötigen wir nur einmalig bei jedem Einschalten der Eisenbahnanlage. &lt;br/&gt;

&lt;span style=&#039;color:#F5F7FA; &#039;&gt;Zustand 0: &lt;/span&gt;Ohne diesen Zustand würde der Bahnsteig bei jedem Start kurz komplett angehen und dann stufenweise ausgehen. &lt;br/&gt;

Zustand 1: Der Bahnsteig geht stufenweise an. &lt;br/&gt;

Zustand 2: Der Bahnsteig geht stufenweise aus. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;A)&lt;/strong&gt;
Die Anzahl der Ausgabekanäle setzen wir auf „3“, da wir drei Bahnsteigdächer schalten wollen. Dafür brauchen wir drei virtuelle Einzel-LEDs. &lt;br/&gt;

Bei Bits pro Wert reicht eine „1“. Das spart Speicher und wir wollen nur die Zustände „an“ und „aus“ erkennen.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;B)&lt;/strong&gt;
Der Goto-Mode wird aktiviert, damit wir die drei oben beschriebenen Zustände per DCC-Adresse schalten können.
Die Aktivierung ist Binary1. Diese unterscheidet sich von Binary dadurch, dass der Zustand 0 beim Schalten mit DCC ignoriert wird. Die DCC-Adresse schaltet mit ihren beiden Zuständen Rot und Grün nur zwischen Zustand 1 und Zustand 2 hin und her. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;C)&lt;/strong&gt;
Wenn die DCC-Adresse auf Grün (an) geschaltet wird, wollen wir den Zustand 1 erreichen: Der Bahnsteig geht stufenweise an. &lt;br/&gt;

Wenn die DCC-Adresse auf Rot (aus) geschaltet wird, wollen wir den Zustand 2 erreichen: Der Bahnsteig geht stufenweise wieder aus. &lt;br/&gt;

Deswegen muss die Reihenfolge im Pattern Configurator wie folgt aussehen: Zustand 0 - Zustand 2 - Zustand 1 (An und Aus werden an das Verhalten von DCC angepasst).&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Wenn alles richtig gemacht wurde, kann man jetzt mit dem Button „Test Pattern“ überprüfen, ob die LEDs Rot, Grün und Blau nacheinander angehen, wenn man auf die Taste „2“ klickt und ob sie nacheinander ausgehen, wenn man auf die Taste „1“ klickt. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;span class=&quot;wrap_em &quot;&gt;WICHTIG&lt;/span&gt; ist jetzt beim Übertragen zum Programm Generator, dass man als LED-Kanal den virtuellen Kanal angibt. In unserem Beispiel also Kanal 3.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/pattern_bahnsteig.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:pattern_bahnsteig.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/pattern_bahnsteig.png?w=600&amp;amp;tok=ac62cb&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
An der Stelle sind wir mit dem Pattern fertig. Das ist nun unser „Schrittschaltwerk“, dass die belebten Häuser steuert.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Schritt 1: Das Schrittschaltwerk im Pattern Configurator&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;schritt_1das_schrittschaltwerk_im_pattern_configurator&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6130-8356&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit9&quot; id=&quot;schritt_2die_verknuepfung_zwischen_virtuellem_und_reelem_kanal&quot;&gt;Schritt 2: Die Verknüpfung zwischen virtuellem und reelem Kanal&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Nun ist es an der Zeit, den Zustand der virtuellen LEDs abzufragen. Dazu bedienen wir uns der Funktion &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/effekte_mll#led-werte_als_variable&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:effekte_mll&quot; data-wiki-id=&quot;anleitungen:effekte_mll&quot;&gt;LED-Werte als Variable&lt;/a&gt;. &lt;br/&gt;

Wichtig ist, dass die Funktion direkt unter das Pattern des Bahnsteigs gesetzt wird. Die Bedienung ist dann echt einfach. &lt;br/&gt;

Mit dem Offset „0“ fragen wir den ersten Ausgang des vorangegangenen WS281x ab, also Rot. Mit dem Offset „1“ fragen wir den grünen Kanal ab und mit Offset „2“ den blauen. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Man kann alle möglichen Zustände abfragen (ist der Wert größer als null, ist der Wert gleich 255, ist der Wert ungleich null usw.).&lt;br/&gt;

Da wir im Pattern mit vollen Werten (x) gearbeitet haben, wurde in diesem Fall die Abfrage „ist gleich 255“ gewählt (größer null wäre auch gegangen). &lt;br/&gt;

Der Variablen-Name ist frei wählbar, er dient uns später als Ersatz für eine DCC-Adresse. Mit ihm wird das erste belebte Haus gezündet. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-to-var_platform1.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-to-var_platform1.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-to-var_platform1.png?w=480&amp;amp;tok=20e6da&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Die Funktion &lt;strong&gt;LED-Werte als Variable&lt;/strong&gt; wird jetzt dreimal untereinander ausgeführt, weil alle drei Kanäle des vorangegangen (virtuellen) WS2811 ausgewertet werden sollen. &lt;br/&gt;

In der Tabelle kann man nun auch sehen, dass das Pattern auf Kanal 3 gelandet ist. Hier muss man aufpassen. Die Abfrage, auf welchen Kanal das Pattern programmiert werden soll , kommt nur einmal und zwar direkt beim ersten Übertragen an den Programm Generator.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-to-var_bahnsteig.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-to-var_bahnsteig.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-to-var_bahnsteig.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Schritt 2: Die Verkn\u00fcpfung zwischen virtuellem und reelem Kanal&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;schritt_2die_verknuepfung_zwischen_virtuellem_und_reelem_kanal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;8357-9933&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit10&quot; id=&quot;schritt_3mit_dem_virtuellen_kanal_schalten&quot;&gt;Schritt 3: Mit dem virtuellen Kanal schalten&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Der letzte Schritt ist nun der einfachste. Es werden drei belebte Häuser mit jeweils acht Neonröhren angelegt. &lt;br/&gt;

Geschaltet werden die drei Häuser mit den zuvor festgelegten Variablen platform1, platform2 und platform3. &lt;br/&gt;

Die belebten Häuser werden selbstverständlich wieder auf Kanal 0 programmiert, da diese nicht virtuell sondern real sind.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-to-var_variable.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-to-var_variable.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-to-var_variable.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Ich wünsche Euch viel Spaß und gutes Gelingen. Michael (raily74)
&lt;/p&gt;

&lt;p&gt;
Wer nach diesem Tutorial jetzt richtig Spaß an den virtuellen LED Kanälen gefunden hat, dem empfehle ich einen Blick in die Programmierung des &lt;a href=&quot;https://wiki.mobaledlib.de/anleitungen/videos/ed_ungewollt_belebtes_haus&quot; class=&quot;wikilink1&quot; title=&quot;anleitungen:videos:ed_ungewollt_belebtes_haus&quot; data-wiki-id=&quot;anleitungen:videos:ed_ungewollt_belebtes_haus&quot;&gt;ungewollt belebten Hauses&lt;/a&gt; von Gerald.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Schritt 3: Mit dem virtuellen Kanal schalten&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;schritt_3mit_dem_virtuellen_kanal_schalten&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;9934-10699&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;virtuelle_kanaele_zur_manipulation_der_kanal-nummer&quot;&gt;Virtuelle Kanäle zur Manipulation der Kanal-Nummer&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Virtuelle Kanäle lassen sich nicht nur hinter den physischen Kanälen platzieren sondern auch davor. Das ist eine hilfreiche Methode, wenn man beispielsweise in der Werkstatt eine Mini MLL Pro oder eine ausrangierte LichtMaschine ≤ 1.8.2 verwendet, um das aktuell gebaute Objekt direkt auf der Werkbank zu testen und an der Anlage eine LichtMaschine Pro mit acht Kanälen arbeitet. 
&lt;/p&gt;

&lt;p&gt;
An allen Arduino-basierten Hauptplatinen kann als Kanal nur #0 oder #2 verwendet werden, die LichtMaschine Pro hingegen beherrscht acht Kanäle. Spätestens wenn das fertige Objekt von der Werkbank auf die Anlage umzieht, muss nun jeder Effekt händisch auf den gewünschten Kanal der LichtMaschine Pro angepasst werden. 
&lt;/p&gt;

&lt;p&gt;
Wenn man aber vorher weiß, dass man ein Haus für Kanal 3 bauen will, kann man einfach die Kanäle 0, 1 und 2 an der Arduino-basierten Hauptplatine überspringen. Da diese Kanäle aber physisch nicht existieren, muss man vor dem eigentlichen Pin 6 (Das ist Kanal 0 an der Werkstatt-Platine) drei virtuelle Kanäle setzen. Klingt kompliziert, ist aber super easy.
&lt;/p&gt;

&lt;p&gt;
Wie oben beschrieben muss man nun zunächst die LED-Bus Pins einstellen. Dort gibt man jetzt für jeden Kanal, den man an der LichtMaschine Pro später überspringen will ein „V“ gefolgt von einem Leerzeichen ein, beginnend mit Kanal 0. Soll also Kanal 3 der LichtMaschine Pro verwendet werden, muss Kanal 0, 1 und 2 übersprungen werden. Das sind dann drei „V“irtuelle Kanäle. Erst dann folgen die Pins 6 (Kanal 3) und Pin A4 (Kanal 4). Die Push Buttons spricht man in dem Fall natürlich über Kanal 4 an. Baut man diese zeitgleich mit dem Haus, müsste man beim Umzug auf die Pro lediglich den Kanal des Buttons anpassen. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-bus-pins_virtual-first.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-bus-pins_virtual-first.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-bus-pins_virtual-first.png?w=480&amp;amp;tok=c39a33&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Die Werkbank-Platine belegt nun die Kanäle 0, 1 und 2 rein virtuell. Erst auf Kanal 3 lässt sie die Ausgabe am Pin D6 zu. Nun beginnt man mit der Programmierung des zu bauenden Objekts und definiert jeden Effekt auf Kanal 3, &lt;strong&gt;beginnend mit der Heartbeat-LED der Hauptplatine!&lt;/strong&gt; Es folgt zum Beispiel eine konstante LED in weiß.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.mobaledlib.de/_detail/bilder/anleitungen/prog_gen/virtual/led-bus-pins_use_channel3.png?id=anleitungen%3Aprog_gen%3Avirtual&quot; class=&quot;media&quot; title=&quot;bilder:anleitungen:prog_gen:virtual:led-bus-pins_use_channel3.png&quot;&gt;&lt;img src=&quot;https://wiki.mobaledlib.de/_media/bilder/anleitungen/prog_gen/virtual/led-bus-pins_use_channel3.png?w=480&amp;amp;tok=7b877c&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;480&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Obwohl man jetzt per Definition Kanal 3 verwendet, kann man in der Werkstatt alle Effekte am normalen LED-Kanal der Hauptplatine nutzen und somit testen, denn diese denkt ja, dass der Wannenstecker Kanal 3 ist. Wenn man dann mit dem Bau des Häuschens und der Programmierung fertig ist, braucht man nur noch die entsprechenden Zeilen in das Programm der LichtMaschine Pro zu übertragen. Ohne Anpassungen, ohne Risiko und ohne zusätzliche Fehlerquellen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Virtuelle Kan\u00e4le zur Manipulation der Kanal-Nummer&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;virtuelle_kanaele_zur_manipulation_der_kanal-nummer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;10700-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 23 Feb 2026 15:57:20 +0000</pubDate>
        </item>
    </channel>
</rss>
