跳转到内容

ESP32 RMT LED 灯带

此组件使用 ESP32 RMT 外设来驱动大多数可寻址 LED 灯带。

NOTE

ESP32-C2 和 ESP32-C61 没有 RMT 硬件,此组件不支持。

light:
- platform: esp32_rmt_led_strip
rgb_order: GRB
pin: GPIOXX
num_leds: 30
chipset: ws2812
name: "My Light"
  • pin(必选,Pin Schema):灯光数据线的引脚。

  • num_leds(必选,int):灯带中的 LED 数量。

  • chipset(可选,enum):所用芯片组的名称;决定信号时序。 手动指定时序 时不需要。

    • WS2811
    • WS2812
    • SK6812
    • APA106
    • SM16703
  • rgb_order(必选,string):灯带的 RGB 顺序。

    • RGB
    • RBG
    • GRB
    • GBR
    • BGR
    • BRG
  • is_rgbw(可选,boolean):如果灯带为 RGBW,设为 true。默认为 false。

  • is_wrgb(可选,boolean):如果灯带为 WRGB,设为 true。默认为 false。

  • max_refresh_rate(可选,Time):用于限制灯光每秒 可处理命令数量的时间间隔。例如,16ms 将限制灯光刷新率约为 60Hz。默认为 尽快发送命令以应对灯光变化。

  • use_psram(可选,boolean):设为 false 以强制使用内部 RAM 分配,即使你已启用 PSRAM 组件。如果你在 LED 灯带上遇到闪烁等问题,这会很有用。默认为 true。

  • rmt_symbols(可选,int):启用 use_dma 时,设置驱动程序的内部 DMA 缓冲区大小。禁用 DMA 时,它指定为组件分配的 RMT 内存量。RMT 内存 在所有组件间共享,应按块大小的倍数分配。在 ESP32 和 ESP32-S2 变体上,RMT 内存由 RX 和 TX 组件共享。在其他变体上,RX 和 TX 有专用的 RMT 内存。

ESP32 变体可用内存块大小
ESP32512 符号64 符号
ESP32-C396 符号48 符号
ESP32-C596 符号48 符号
ESP32-C696 符号48 符号
ESP32-H296 符号48 符号
ESP32-P4192 符号48 符号
ESP32-S2256 符号64 符号
ESP32-S3192 符号48 符号
  • use_dma(可选,boolean):在支持的变体上启用 DMA。如果启用,rmt_symbols 控制 DMA 缓冲区大小,并可设为较大值。

  • 来自 Light 的所有其他选项。

如果你知道时序且未在上方设置芯片组,则可以使用这些。如果你有新的特定芯片组, 请考虑向代码库添加支持并将其添加到上述列表中。

  • bit0_high(可选,Time):0 位时数据线保持高电平的时间。

  • bit0_low(可选,Time):0 位时数据线保持低电平的时间。

  • bit1_high(可选,Time):1 位时数据线保持高电平的时间。

  • bit1_low(可选,Time):1 位时数据线保持低电平的时间。

  • reset_high(可选,Time):写入 状态后数据线保持高电平的时间。默认为 0 us。

  • reset_low(可选,Time):写入 状态后数据线保持低电平的时间。默认为 0 us。