改变 LED 状态的命令是
+------+------+------+------+------+------+------+ ------+------+
| 共轭亚油酸 | INS | P1 | P2 | LC | 数据 |
+------+------+------+------+------+------+------+ ------+------+
| 0xFF | 0x00 | 0x40 | SC | 0x04 | T1 | T2 | #R | 0x00 |
+------+------+------+------+------+------+------+ ------+------+
其中 SC 定义 LED 的状态(连续开/关,闪烁),T1/T2 定义闪烁波形,#R 定义闪烁波形的重复次数。
因此,定义 LED 应该如何闪烁以及闪烁完成后它们应该如何看待的主要参数是 SC。这是一个 8 位的字段:
- 位 0:此标志定义闪烁完成后红色 LED 的状态(另见位 2)。
- 位 1:此标志定义闪烁完成后绿色 LED 的状态(另请参见位 3)。
- Bit 2:只有当该标志被设置为(1)时,红色 LED 的状态才会在闪烁完成后设置为 bit 0 的值。如果此标志被清除 (0),红色 LED 将返回到您发出 LED 控制命令之前的状态。
- 位 3:仅当此标志设置为 (1) 时,绿色 LED 的状态才会在闪烁完成后设置为位 0 的值。如果此标志被清除 (0),绿色 LED 将返回到您发出 LED 控制命令之前的状态。
- 位 4:该标志定义了在开始执行 LED 控制命令时红色 LED 应设置的状态。
- 位 5:该标志定义了在开始执行 LED 控制命令时绿色 LED 应设置的状态。
- 位 6:此标志定义红色 LED 是否应以闪烁波形切换。
- 位 7:此标志定义绿色 LED 是否应以闪烁波形切换。
因此,假设您设置了 SC 的第 4 位和第 6 位(并清除其余部分),即 SC = 0x50。此外,您设置 T1 = 5 (0x05)、T2 = 10 (0x0A) 和 #R = 2 (0x02)。因此,您有以下命令:
+------+------+------+------+------+------+------+ ------+------+
| 0xFF | 0x00 | 0x40 | 0x50 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+ ------+------+
然后绿色 LED 熄灭,红色 LED 闪烁两次,波形如下:
红灯亮 ----------\ /------------\
| | |
红色关闭 \--------------------/ \--------
\________/ \__________________/ \________/ \__________________/
T1 = 500 毫秒 T2 = 1000 毫秒 T1 = 500 毫秒 T2 = 1000 毫秒
\_____________________________/ \_____________________________/
重复 1 重复 2
现在,假设您还想闪烁绿色 LED,但其初始状态设置为关闭(以便闪烁在红色和绿色之间切换,而不是在红色和无光之间切换)。因此,您还要设置 SC 的第 7 位,即 SC = 0xD0。因此,您有以下命令:
+------+------+------+------+------+------+------+ ------+------+
| 0xFF | 0x00 | 0x40 | 0xD0 | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+ ------+------+
然后红色 LED 和绿色 LED 将交替闪烁两次,波形如下:
红灯亮 ----------\ /------------\
| | |
红色关闭 \--------------------/ \--------
绿灯亮 /--------------------\ /--------
| | |
绿灯灭 ----------/ \----------/
\________/ \__________________/ \________/ \__________________/
T1 = 500 毫秒 T2 = 1000 毫秒 T1 = 500 毫秒 T2 = 1000 毫秒
\_____________________________/ \_____________________________/
重复 1 重复 2
现在,假设闪烁完成后,您希望红色 LED 持续亮起,绿色 LED 持续熄灭。因此,您需要设置位 2 和 3,以便能够定义两个 LED 的最终状态。(如果您不设置这些位,那么位 0 和 1 的值将被简单地忽略。)然后您想要定义红色打开(位 0 = 1)和绿色关闭(位 1 = 0)的最终状态。因此,您得到 SC = 0xDD。因此,您有以下命令:
+------+------+------+------+------+------+------+ ------+------+
| 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x05 | 0x0A | 0x02 | 0x00 |
+------+------+------+------+------+------+------+ ------+------+
然后红色 LED 和绿色 LED 交替闪烁两次,闪烁后红色 LED 亮,绿色 LED 熄灭。你得到以下波形:
红灯亮 ----------\ /----------\ /--------------...
| | | |
红色关闭 \--------------------/ \--------/
绿灯亮 /--------\ /--------\
| | | |
绿灯灭 ----------/ \----------/ \--------------...
\________/ \__________________/ \________/ \__________________/
T1 = 500 毫秒 T2 = 1000 毫秒 T1 = 500 毫秒 T2 = 1000 毫秒
\_____________________________/ \_______________/ \_____________...
重复 1 重复 2 最终状态
最后,您想要将重复次数减少到 1 (#R = 0x01),并且想要反转闪烁波形的高低相位(T1 = 0x0A 和 T2 = 0x05)。因此,您有以下命令:
+------+------+------+------+------+------+------+ ------+------+
| 0xFF | 0x00 | 0x40 | 0xDD | 0x04 | 0x0A | 0x05 | 0x01 | 0x00 |
+------+------+------+------+------+------+------+ ------+------+
你得到以下波形:
红灯亮--------\ /----------------...
| |
红色关闭\---------/
绿灯 /----------\
| |
绿色关闭--------/ \--------------...
\__________________/ \________/
T1 = 1000 毫秒 T2 = 500 毫秒
\___________________/ \_____________...
重复 1 最终状态