from machine import PWM, UART
import time
'''
循环控制4个灯(ID为1/2/3/4)切换显示。
切换间隔:10秒,每发一次指令板载指示灯高亮爆冷1秒
循环开始:亮度90,60次闪烁,黄色圆
常亮
雾,橙色
能见度低
注意横风
冰,蓝色
道路结冰
红叉
禁止能行,红色
绿箭头动图
允许通行,绿色
动_线形诱导标上双
左右红蓝2次快闪
'''
led = PWM(Pin(25))
uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1),timeout=100) # Lora模块
led.freq(50) # 板载LED频率
led.duty_u16(10000) # 板载指示灯
interval = 10 # 切换间隔
def LED_Indicate():
led.freq(8)
led.duty_u16(50000)
time.sleep(1)
led.freq(50)
led.duty_u16(10000)
print('000000')
while True:
# 亮度90,60次闪烁,黄色圆
uart0.write(bytearray([0xFF,0x66,0xFF,0x5A,0x00,0xAA,0xFF,0x77,0xFF,0x19,0x19,0xAA,0xFF,0x40,0xFF,0x05,0x02,0x03,0x04,0x00,0xAA,0xFF,0x55,0xFF,0xA1,0xF1,0xAA]))
print('1 亮度90,60次闪烁,黄色圆')
LED_Indicate()
time.sleep(interval)
# 常亮
uart0.write(bytearray([0xff,0x77,0xff,0x0a,0x00,0xaa]))
print('2 常亮')
LED_Indicate()
time.sleep(interval)
# 雾,橙色
uart0.write(bytearray([0x40,0xFF,0x05,0x02,0x03,0x04,0x00,0xAA,0xFF,0x55,0xFF,0xCE,0xED,0xAA]))
print('3 雾,橙色')
LED_Indicate()
time.sleep(interval)
# 能见度低 C4DC BCFB B6C8 B5CD
uart0.write(bytearray([0xFF,0x55,0x01,0xC4,0xDC,0xAA,0xFF,0x55,0x02,0xBC,0xFB,0xAA,0xFF,0x55,0x03,0xB6,0xC8,0xAA,0xFF,0x55,0x04,0xB5,0xCD,0xAA]))
print('4 能见度低')
LED_Indicate()
time.sleep(interval)
# 注意横风 D7A2 D2E2 BAE1 B7E7
uart0.write(bytearray([0xFF,0x55,0x01,0xD7,0xA2,0xAA,0xFF,0x55,0x02,0xD2,0xE2,0xAA,0xFF,0x55,0x03,0xBA,0xE1,0xAA,0xFF,0x55,0x04,0xB7,0xE7,0xAA]))
print('5 注意横风')
LED_Indicate()
time.sleep(interval)
# 冰,蓝色
uart0.write(bytearray([0x40,0xFF,0x03,0x02,0x03,0x04,0x00,0xAA,0xFF,0x55,0xFF,0xB1,0xF9,0xAA]))
print('6 冰,蓝色')
LED_Indicate()
time.sleep(interval)
# 道路结冰 B5C0 C2B7 BDE1 B1F9
uart0.write(bytearray([0xFF,0x55,0x01,0xB5,0xC0,0xAA,0xFF,0x55,0x02,0xC2,0xB7,0xAA,0xFF,0x55,0x03,0xBD,0xE1,0xAA,0xFF,0x55,0x04,0xB1,0xF9,0xAA]))
print('7 道路结冰')
LED_Indicate()
time.sleep(interval)
# 红叉
uart0.write(bytearray([0xFF,0x55,0xFF,0xA0,0xE0,0xAA]))
print('8 红叉')
LED_Indicate()
time.sleep(interval)
# 禁止通行,红色 BDFB D6B9 CDA8 D0D0
uart0.write(bytearray([0x40,0xFF,0x01,0x02,0x03,0x04,0x00,0xAA,0xFF,0x55,0x01,0xBD,0xFB,0xAA,0xFF,0x55,0x02,0xD6,0xB9,0xAA,0xFF,0x55,0x03,0xCD,0xA8,0xAA,0xFF,0x55,0x04,0xD0,0xD0,0xAA]))
print('9 禁止通行')
LED_Indicate()
time.sleep(interval)
# 绿箭头动图
uart0.write(bytearray([0xFF,0x55,0xFF,0xA0,0xFB,0xAA]))
print('10 绿箭头动图')
LED_Indicate()
time.sleep(interval)
# 允许通行,绿色 D4CA D0ED CDA8 D0D0
uart0.write(bytearray([0x40,0xFF,0x02,0x02,0x03,0x04,0x00,0xAA,0xFF,0x55,0x01,0xD4,0xCA,0xAA,0xFF,0x55,0x02,0xD0,0xED,0xAA,0xFF,0x55,0x03,0xCD,0xA8,0xAA,0xFF,0x55,0x04,0xD0,0xD0,0xAA]))
print('11 允许通行,绿色')
LED_Indicate()
time.sleep(interval)
# 动_线形诱导标上双
uart0.write(bytearray([0xFF,0x55,0xFF,0xA0,0xFA,0xAA]))
print('12 动_线形诱导标上双')
LED_Indicate()
time.sleep(interval)
# 动_线形诱导标上双
uart0.write(bytearray([0xFF,0x55,0xFF,0xA0,0xF3,0xAA]))
print('13 动_线形诱导标上双')
LED_Indicate()
time.sleep(interval)