neopixel — controle de LEDs WS2812 / NeoPixel¶
Este módulo fornece um driver para fitas de LED WS2812 / NeoPixel. O driver depende de machine.bitstream() para gerar o sinal precisamente temporizado que os LEDs esperam, portanto funciona em qualquer porta cujo módulo machine implemente bitstream.
A aplicação define os dados dos pixels por atribuição de itens ou com NeoPixel.fill() e então chama NeoPixel.write() para atualizar a fita. Cada pixel é exposto como uma tupla RGB ou RGBW na ordem aceita pelo usuário; o driver trata internamente da ordem GRB(W) na transmissão.
Exemplo:
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)¶
Constrói um objeto
NeoPixelpara uma fita de LEDs conectada a pin.pin é uma instância de
machine.Pin; ela será reconfigurada como saída pelo construtor.n é o número de LEDs na fita.
bpp é o número de bytes por pixel:
3para LEDs RGB (como o WS2812) e4para LEDs RGBW (como o SK6812-RGBW).timing seleciona a temporização dos bits.
0seleciona a temporização lenta de 400 kHz,1seleciona a temporização padrão de 800 kHz usada pela maioria das fitas modernas. Uma 4-tupla(high_0, low_0, high_1, low_1)de durações em nanossegundos pode ser passada em seu lugar, no formato aceito pormachine.bitstream().
- ORDER: tuple[int, int, int, int]¶
Atributo de classe que mapeia a ordem de canais voltada ao usuário para a ordem de transmissão. Por padrão é
(1, 0, 2, 3), ou seja, tuplas(R, G, B[, W])fornecidas pelo usuário são transmitidas comoG R B [W]. Subclasses podem sobrescreverORDERpara suportar fitas com uma ordem de transmissão diferente.
- fill(pixel: tuple[int, ...]) None¶
Define cada pixel da fita como pixel, uma tupla RGB ou RGBW de inteiros na faixa de
0a255.
- __setitem__(index: int, val: tuple[int, ...]) None¶
Define o pixel em index como val, uma tupla RGB ou RGBW. Os dados são apenas armazenados em buffer; chame
write()para enviá-los à fita.
- __getitem__(index: int) tuple[int, ...]¶
Retorna o pixel em index a partir do buffer local como uma tupla RGB ou RGBW na ordem de canais voltada ao usuário.
- write() None¶
Transmite os dados de pixel armazenados em buffer para a fita usando
machine.bitstream().