< All Topics
Print

【顯示】全彩LED | dual2s-mini | MPY-LLM

簡介:

WS2812B 是一種內建驅動IC的RGB LED,能透過程式控制而產生各種的彩色燈效,如燈帶、燈墻、LED矩陣等。每一顆 WS2812B LED 都有獨立的三原色(紅、綠、藍)輸出,可以通過控制程式設置不同的亮度和顏色,從而實現豐富的燈光效果。

技術面向上,WS2812B 是基於 單線數據傳輸協議 (Single-Wire Data Transmission Protocol) 的電路控制模式,工作電壓落於4.5V – 5.5V之間,每顆LED最大功耗60mA。常見函數庫為:

  • neopixel (microPython)。
  • FastLED(C++/Arduino)。
  • Adafruit_NeoPixel(Arduino)。

範例電路:


實作 | practice

本影片以dual2s-mini為示範,跟著影片實作完成後,應當可建立下列認知:

  1. 如何使用LLM獲取更多ws2812b有用資訊
  2. 如何使用neopixel函數庫與基本MPY程式
  3. 基本範例:

範例:使用microPython(MPY)控制1個ws2812b(GPIO 2)。範例程式:每一秒更新一種顏色,至少7種顏色。

import machine
import neopixel
import time

# 設定 GPIO 2 為控制 WS2812B 的腳位
pin = 2
num_leds = 1  # 控制的 LED 數量
np = neopixel.NeoPixel(machine.Pin(pin), num_leds)

# 定義 7 種顏色的 RGB 值
colors = [
    (255, 0, 0),    # 紅色
    (0, 255, 0),    # 綠色
    (0, 0, 255),    # 藍色
    (255, 255, 0),  # 黃色
    (255, 0, 255),  # 紫色
    (0, 255, 255),  # 青色
    (255, 255, 255) # 白色
]

# 切換顏色
while True:
    for color in colors:
        np[0] = color    # 設定 LED 顏色
        np.write()       # 更新 LED
        time.sleep(1)    # 等待 1 秒
Table of Contents