neopixel — styrning av WS2812-/NeoPixel-lysdioder¶
Denna modul tillhandahåller en drivrutin för WS2812-/NeoPixel-LED-remsor. Drivrutinen förlitar sig på machine.bitstream() för att generera den exakt tidsstyrda signal som lysdioderna förväntar sig, så den fungerar på vilken port som helst vars machine-modul implementerar bitstream.
Applikationen anger pixeldata via tilldelning av enskilda element eller NeoPixel.fill() och anropar därefter NeoPixel.write() för att uppdatera remsan. Varje pixel exponeras som en RGB- eller RGBW-tupel i den ordning som användaren förväntar sig; drivrutinen hanterar internt GRB(W)-ordningen på ledningen.
Exempel:
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)¶
Konstruera ett
NeoPixel-objekt för en remsa av lysdioder anslutna till pin.pin är en
machine.Pin-instans; den kommer att omkonfigureras som utgång av konstruktorn.n är antalet lysdioder i remsan.
bpp är antalet byte per pixel:
3för RGB-lysdioder (såsom WS2812) och4för RGBW-lysdioder (såsom SK6812-RGBW).timing väljer bittidsstyrningen.
0väljer den långsamma tidsstyrningen på 400 kHz,1väljer den vanliga tidsstyrningen på 800 kHz som de flesta moderna remsor använder. En 4-tupel(high_0, low_0, high_1, low_1)med varaktigheter i nanosekunder kan skickas i stället, i den form som accepteras avmachine.bitstream().
- ORDER: tuple[int, int, int, int]¶
Klassattribut som mappar den användarvända kanalordningen till ledningsordningen. Standardvärdet är
(1, 0, 2, 3), dvs. användarangivna(R, G, B[, W])-tupler sänds somG R B [W]. Subklasser kan åsidosättaORDERför att stödja remsor med en annan ledningsordning.
- fill(pixel: tuple[int, ...]) None¶
Sätt varje pixel i remsan till pixel, en RGB- eller RGBW-tupel av heltal i intervallet
0-255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Sätt pixeln vid index till val, en RGB- eller RGBW-tupel. Datan buffras endast; anropa
write()för att skicka den till remsan.
- __getitem__(index: int) tuple[int, ...]¶
Returnera pixeln vid index från den lokala bufferten som en RGB- eller RGBW-tupel i den användarvända kanalordningen.
- write() None¶
Sänd den buffrade pixeldatan till remsan med
machine.bitstream().