der Befehl der LED-Zustand
+------+------+------+------+------+------+------+------+------+
| CLA | INS | P1 | P2 | Lc | DATA |
+------+------+------+------+------+------+------+------+------+
| 0xFF | 0x00 | 0x40 | SC | 0x04 | T1 | T2 | #R | 0x00 |
+------+------+------+------+------+------+------+------+------+
wo SC den Zustand der LEDs definiert (ein/aus kontinuierlich, blinkend) ist, zu ändern, T1/T2 die blinkende Wellenform definieren, und #R definiert die Anzahl der Wiederholungen der blinkenden Wellenform.
Also der Hauptparameter, um zu definieren, wie die LEDs blinken sollten und wie sie aussehen sollten, nachdem das Blinken beendet wurde, ist SC. Dies ist ein Feld von 8 Bits:
Bit 0: Dieses Flag definiert den Status der roten LED nach dem Blinken beendet (siehe auch Bit 2).
Bit 1: Dieses Flag definiert den Status der grünen LED nach dem Ende des Blinkens (siehe auch Bit 3).
Bit 2: Nur wenn dieses Flag gesetzt ist (1), wird der Status der roten LED auf den Wert von Bit 0 gesetzt, nachdem das Blinken beendet ist. Wenn dieses Flag gelöscht wird (0), kehrt die rote LED in den Zustand zurück, in dem sie vor der Ausgabe des LED-Steuerbefehls war.
Bit 3: Nur wenn dieses Flag gesetzt ist (1), wird der Zustand der grünen LED auf den Wert von Bit 0 gesetzt, nachdem das Blinken beendet ist. Wenn dieses Flag gelöscht ist (0), kehrt die grüne LED in den Zustand zurück, in dem sie vor der Ausgabe des LED-Steuerbefehls war.
Bit 4: Dieses Flag definiert den Status, auf den die rote LED zu Beginn des LED-Steuerbefehls eingestellt werden soll.
Bit 5: Dieses Flag definiert den Status, auf den die grüne LED zu Beginn der Ausführung des LED-Steuerbefehls eingestellt werden soll.
Bit 6: Dieses Flag definiert, ob die rote LED mit der blinkenden Wellenform umgeschaltet werden soll.
Bit 7: Dieses Flag definiert, ob die grüne LED mit der blinkenden Wellenform umgeschaltet werden soll.
Nehmen wir an, Sie setzen die Bits 4 und 6 von SC (und löschen den Rest), d. H. SC = 0x50. Weiterhin setzen Sie T1 = 5 (0x05), T2 = 10 (0x0A) und #R = 2 (0x02).Damit Sie den folgenden Befehl haben:
+------+------+------+------+------+------+------+------+------+
| 0xFF | 0x00 | 0x40 | 0x50 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+------+------+
Dann wird die grüne LED wird ausgeschaltet und die rote LED zweimal mit der folgenden Wellenform blinken:
RED ON ----------\ /----------\
| | |
RED OFF \--------------------/ \--------------------
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/
Repetition 1 Repetition 2
Jetzt
, vermuten lässt, dass Sie auch Ich möchte die grüne LED blinken lassen, aber den Anfangszustand auf "aus" stellen (so dass das Blinken zwischen rot und grün statt rot und ohne Licht wechselt). Daher setzen Sie auch das Bit 7 von SC, d. H. SC = 0 × D0. So haben Sie den folgenden Befehl ein:
+------+------+------+------+------+------+------+------+------+
| 0xFF | 0x00 | 0x40 | 0xD0 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+------+------+
Dann wird die rote LED und die grüne LED abwechselnd zweimal mit der folgenden Wellenform blinken:
RED ON ----------\ /----------\
| | |
RED OFF \--------------------/ \--------------------
GREEN ON /--------------------\ /--------------------
| | |
GREEN OFF ----------/ \----------/
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/
Repetition 1 Repetition 2
Jetzt
, dass läßt vermuten, nach Blinken beendet, Sie möchten, dass die rote LED dauerhaft leuchtet und die grüne LED dauerhaft aus ist. Sie müssen daher die Bits 2 und 3 setzen, um einen Endzustand der beiden LEDs definieren zu können. (Wenn Sie diese Bits nicht setzen, werden die Werte der Bits 0 und 1 einfach ignoriert.) Sie möchten dann einen Endzustand von Rot aktivieren (Bit 0 = 1) und grün ausschalten (Bit 1 = 0). Folglich erhalten Sie SC = 0xDD. So haben Sie den folgenden Befehl ein:
+------+------+------+------+------+------+------+------+------+
| 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+------+------+
Dann wird die rote LED und die grüne LED abwechselnd zweimal blinken, die rote LED eingeschaltet werden, nachdem blinkt, und die grüne LED wird ausgeschaltet. Sie erhalten folgende Wellenform:
RED ON ----------\ /----------\ /--------------...
| | | |
RED OFF \--------------------/ \--------------------/
GREEN ON /--------------------\ /--------------------\
| | | |
GREEN OFF ----------/ \----------/ \--------------...
\________/ \__________________/ \________/ \__________________/
T1 = 500ms T2 = 1000ms T1 = 500ms T2 = 1000ms
\_____________________________/ \_____________________________/ \_____________...
Repetition 1 Repetition 2 Final state
Schließlich wollen Sie die Anzahl der Wiederholungen bis 1 (#R = 0x01) zu reduzieren, und Sie wollen die hohen und niedrigen Phasen der blinkenden Wellenform (T1 invertieren = 0x0A und T2 = 0x05). So haben Sie den folgenden Befehl ein:
+------+------+------+------+------+------+------+------+------+
| 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x0A | 0x05 | 0x01 | 0x00 |
+------+------+------+------+------+------+------+------+------+
Sie erhalten folgende Wellenform:
RED ON --------------------\ /--------------...
| |
RED OFF \----------/
GREEN ON /----------\
| |
GREEN OFF --------------------/ \--------------...
\__________________/ \________/
T1 = 1000ms T2 = 500ms
\_____________________________/ \_____________...
Repetition 1 Final state
wünsche ich Ihnen eine andere +1 für Ihre Frage bearbeiten geben könnte ... –
Haben Sie tatsächlich testen? Ich kann den LED-Status nicht mehr erhalten, nachdem der Befehl abgeschlossen wurde. Es blinkt gut, aber leider geht es nach Beendigung des Befehls in den Standardzustand (rot) zurück. Ich benutze Ihr Beispiel: '[0xFF, 0, 0x40, 0xDD, 0x04, 0x05, 0x0a, 0x02, 0x00]'. –
@ AndréBorie Ja, es funktioniert auf den zwei ACR122U Leser, die ich hier habe. –