neopixel — WS2812 / NeoPixel LED 제어¶
이 모듈은 WS2812 / NeoPixel LED 스트립용 드라이버를 제공합니다. 이 드라이버는 LED가 기대하는 정밀한 타이밍의 신호를 생성하기 위해 machine.bitstream()에 의존하므로, machine 모듈이 bitstream을 구현하는 모든 포트에서 동작합니다.
애플리케이션은 항목 할당이나 NeoPixel.fill()을 통해 픽셀 데이터를 설정한 다음 NeoPixel.write()를 호출하여 스트립을 갱신합니다. 각 픽셀은 사용자가 받아들이는 순서대로 RGB 또는 RGBW 튜플로 노출되며, 드라이버는 내부적으로 GRB(W) 와이어 순서를 처리합니다.
예제:
import machine
import neopixel
# 32 LED strip connected to pin P7.
n = neopixel.NeoPixel(machine.Pin("P7"), 32)
# Draw a red gradient.
for i in range(32):
n[i] = (i * 8, 0, 0)
# Update the strip.
n.write()
class NeoPixel¶
- class neopixel.NeoPixel(pin: 'machine.Pin', n: int, bpp: int = 3, timing: int | tuple[int, int, int, int] = 1)¶
pin에 연결된 LED 스트립을 위한
NeoPixel객체를 생성합니다.pin은
machine.Pin인스턴스이며, 생성자에 의해 출력으로 재구성됩니다.n은 스트립에 있는 LED의 개수입니다.
bpp는 픽셀당 바이트 수입니다: RGB LED(예: WS2812)의 경우
3, RGBW LED(예: SK6812-RGBW)의 경우4입니다.timing은 비트 타이밍을 선택합니다.
0은 느린 400 kHz 타이밍을,1은 대부분의 최신 스트립이 사용하는 표준 800 kHz 타이밍을 선택합니다. 대신 나노초 단위 지속 시간으로 이루어진 4-튜플(high_0, low_0, high_1, low_1)을machine.bitstream()이 받아들이는 형식으로 전달할 수도 있습니다.
- ORDER: tuple[int, int, int, int]¶
사용자 대상 채널 순서를 와이어 순서에 매핑하는 클래스 속성입니다. 기본값은
(1, 0, 2, 3)으로, 즉 사용자가 제공한(R, G, B[, W])튜플이G R B [W]로 전송됩니다. 서브클래스는 다른 와이어 순서를 가진 스트립을 지원하기 위해ORDER를 재정의할 수 있습니다.
- fill(pixel: tuple[int, ...]) None¶
스트립의 모든 픽셀을 pixel로 설정합니다. pixel은
0-255범위의 정수로 이루어진 RGB 또는 RGBW 튜플입니다.
- __setitem__(index: int, val: tuple[int, ...]) None¶
index 위치의 픽셀을 RGB 또는 RGBW 튜플인 val로 설정합니다. 데이터는 버퍼링만 되며, 스트립으로 보내려면
write()를 호출하십시오.
- write() None¶
machine.bitstream()을 사용하여 버퍼링된 픽셀 데이터를 스트립으로 전송합니다.