neopixel — aansturing van WS2812 / NeoPixel LED’s¶
Deze module biedt een driver voor WS2812 / NeoPixel LED-strips. De driver vertrouwt op machine.bitstream() om het nauwkeurig getimede signaal te genereren dat de LED’s verwachten, zodat het werkt op elke port waarvan de machine-module bitstream implementeert.
De applicatie stelt pixelgegevens in via item-toewijzing of NeoPixel.fill() en roept vervolgens NeoPixel.write() aan om de strip bij te werken. Elke pixel wordt blootgesteld als een RGB- of RGBW-tuple in de volgorde die door de gebruiker wordt geaccepteerd; de driver verwerkt de GRB(W)-draadvolgorde intern.
Voorbeeld:
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)¶
Construeert een
NeoPixel-object voor een strip van LED’s die op pin is aangesloten.pin is een
machine.Pin-instantie; deze wordt door de constructor opnieuw geconfigureerd als uitgang.n is het aantal LED’s in de strip.
bpp is het aantal bytes per pixel:
3voor RGB-LED’s (zoals WS2812) en4voor RGBW-LED’s (zoals SK6812-RGBW).timing selecteert de bittiming.
0selecteert de langzame 400 kHz-timing,1selecteert de standaard 800 kHz-timing die door de meeste moderne strips wordt gebruikt. In plaats daarvan kan een 4-tuple(high_0, low_0, high_1, low_1)van nanoseconde-duren worden doorgegeven, in de vorm die doormachine.bitstream()wordt geaccepteerd.
- ORDER: tuple[int, int, int, int]¶
Klasse-attribuut dat de kanaalvolgorde voor de gebruiker toewijst aan de draadvolgorde. Standaard
(1, 0, 2, 3), d.w.z. door de gebruiker opgegeven(R, G, B[, W])-tuples worden verzonden alsG R B [W]. Subklassen kunnenORDERoverschrijven om strips met een andere draadvolgorde te ondersteunen.
- fill(pixel: tuple[int, ...]) None¶
Stelt elke pixel in de strip in op pixel, een RGB- of RGBW-tuple van gehele getallen in het bereik
0-255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Stelt de pixel op index in op val, een RGB- of RGBW-tuple. De gegevens worden alleen gebufferd; roep
write()aan om ze naar de strip te sturen.
- __getitem__(index: int) tuple[int, ...]¶
Geeft de pixel op index uit de lokale buffer terug als een RGB- of RGBW-tuple in de kanaalvolgorde voor de gebruiker.
- write() None¶
Verzendt de gebufferde pixelgegevens naar de strip met behulp van
machine.bitstream().