neopixel — ovládání LED diod WS2812 / NeoPixel¶
Tento modul poskytuje ovladač pro LED pásky WS2812 / NeoPixel. Ovladač se spoléhá na machine.bitstream(), který generuje přesně časovaný signál, jenž LED diody očekávají, takže funguje na libovolném portu, jehož modul machine implementuje bitstream.
Aplikace nastavuje data pixelů přiřazením k položce nebo pomocí NeoPixel.fill() a poté volá NeoPixel.write() k aktualizaci pásku. Každý pixel je vystaven jako RGB nebo RGBW n-tice v pořadí přijatém uživatelem; ovladač interně řeší pořadí GRB(W) na vodičích.
Příklad:
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)¶
Vytvoří objekt
NeoPixelpro pásek LED diod připojený k pinu pin.pin je instance
machine.Pin; konstruktor jej překonfiguruje jako výstup.n je počet LED diod v pásku.
bpp je počet bajtů na pixel:
3pro RGB LED diody (například WS2812) a4pro RGBW LED diody (například SK6812-RGBW).timing volí časování bitů.
0volí pomalé časování 400 kHz,1volí standardní časování 800 kHz používané většinou moderních pásků. Místo toho lze předat 4-tici(high_0, low_0, high_1, low_1)s dobami trvání v nanosekundách, ve formě přijímané funkcímachine.bitstream().
- ORDER: tuple[int, int, int, int]¶
Atribut třídy, který mapuje uživatelské pořadí kanálů na pořadí na vodičích. Výchozí hodnota je
(1, 0, 2, 3), tj. uživatelem zadané n-tice(R, G, B[, W])jsou přenášeny jakoG R B [W]. Podtřídy mohouORDERpřepsat, aby podporovaly pásky s odlišným pořadím na vodičích.
- fill(pixel: tuple[int, ...]) None¶
Nastaví každý pixel v pásku na pixel, což je RGB nebo RGBW n-tice celých čísel v rozsahu
0-255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Nastaví pixel na pozici index na hodnotu val, RGB nebo RGBW n-tici. Data jsou pouze ukládána do bufferu; pro jejich odeslání na pásek zavolejte
write().
- __getitem__(index: int) tuple[int, ...]¶
Vrátí pixel na pozici index z lokálního bufferu jako RGB nebo RGBW n-tici v uživatelském pořadí kanálů.
- write() None¶
Přenese data pixelů z bufferu na pásek pomocí
machine.bitstream().