ESP32-S2-Saola-1 上没有使用传统的LED做指示灯,而是使用了一个WS2812。好处是占用IO少,显示的颜色丰富,缺点是时序比较复杂。对于circuitpython的ESP32-S2 移植,因为目前的版本固件还不支持底层的 neopixel_write 函数,也就无法直接使用 WS2812,需要等版本升级才能使用。
对于普通LED,驱动就比较容易。不过在circuitpython中,使用方法和micropython有较大区别。首先需要import digitalio,然后定义digitalio.DigitalInOut实例,并将IO的方向定义为输出(digitalio.Direction.OUTPUT)。设置IO的输出,是通过对它的value进行赋值。具体方法如下(假设使用GPIO2驱动LED):
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.IO2)
led.direction = digitalio.Direction.OUTPUT
for i in range(10):
led.value = True
time.sleep(0.2)
led.value = False
time.sleep(0.2)