Skip to content

亮灯实验

ESP32-S3-N16R8 自带一颗 ws2812b 彩灯

ws2812b

WS2813B 是一个集控制电路与发光电路于一体的智能外控 LED 光源。

应用领域

  • LED 全彩发光字灯串,LED 全彩模组, LED 全彩软灯条硬灯条,LED 护栏管
  • LED 点光源,LED 像素屏,LED 异形屏,各种电子产品,电器设备跑马灯等

注意

详细的东西可以在立创商城搜索灯之后查询详细的技术文档。

相关的引脚功能如下

WS2813B 更多情况下是用于灯带,只需要一个数字口就可以几乎无限级联的全彩 RGB LED

亮灯

ESP32-S3 已经将一粒灯集成到开发板上面了,可以查看 ESP32-S3 的技术文档,所以接下来我们

python
import neopixel  # ws2812 库
import machine

p = machine.Pin(48)
n = neopixel.NeoPixel(p, 1)

# 红色
n[0] = (255, 0, 0)
n.write()

闪烁的 LED 灯

python
import time

import neopixel  # ws2812 库
import machine

p = machine.Pin(48)
n = neopixel.NeoPixel(p, 1)

while 1:
    # 红色
    n[0] = (255, 0, 0)
    n.write()
    time.sleep(1)

    n[0] = (0, 0, 0)
    n.write()
    time.sleep(1)

彩灯变化

python
import time

import neopixel  # ws2812库
import machine

# 初始化
p = machine.Pin(48)  # WS2812_PIN
n = neopixel.NeoPixel(p, 1)


def light_it(color_r, color_g, color_b):
    # set (R,G,B) color
    n[0] = (color_r, color_g, color_b)
    # Update the strip.
    n.write()


def light_clear():
    # clear color
    n[0] = (0, 0, 0)
    n.write()


def main():
    # 红色
    light_clear()
    light_it(255, 0, 0)
    time.sleep(2)

    # 绿色
    light_clear()
    light_it(0, 255, 0)
    time.sleep(2)

    # 蓝色
    light_clear()
    light_it(0, 0, 255)
    time.sleep(2)


if __name__ == '__main__':
    while 1:
        main()