neopixel — WS2812 / NeoPixel LED’lerinin kontrolü¶
Bu modül, WS2812 / NeoPixel LED şeritleri için bir sürücü sağlar. Sürücü, LED’lerin beklediği hassas zamanlamalı sinyali üretmek için machine.bitstream() fonksiyonuna dayanır; bu nedenle machine modülü bitstream uygulayan herhangi bir portta çalışır.
Uygulama, piksel verilerini öğe ataması yoluyla veya NeoPixel.fill() ile ayarlar ve ardından şeridi güncellemek için NeoPixel.write() çağrısını yapar. Her piksel, kullanıcının kabul ettiği sırada bir RGB veya RGBW demeti olarak sunulur; sürücü, GRB(W) kablo sırasını dahili olarak yönetir.
Örnek:
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 pinine bağlı bir LED şeridi için bir
NeoPixelnesnesi oluşturur.pin bir
machine.Pinörneğidir; kurucu tarafından çıkış olarak yeniden yapılandırılır.n şeritteki LED sayısıdır.
bpp piksel başına bayt sayısıdır: RGB LED’ler (WS2812 gibi) için
3ve RGBW LED’ler (SK6812-RGBW gibi) için4.timing bit zamanlamasını seçer.
0yavaş 400 kHz zamanlamasını,1çoğu modern şeridin kullandığı standart 800 kHz zamanlamasını seçer. Bunun yerine,machine.bitstream()tarafından kabul edilen biçimde, nanosaniye sürelerinden oluşan bir 4’lü demet(high_0, low_0, high_1, low_1)geçirilebilir.
- ORDER: tuple[int, int, int, int]¶
Kullanıcıya yönelik kanal sırasını kablo sırasına eşleyen sınıf özniteliği. Varsayılan olarak
(1, 0, 2, 3)değerini alır; yani kullanıcının sağladığı(R, G, B[, W])demetleriG R B [W]olarak iletilir. Alt sınıflar, farklı bir kablo sırasına sahip şeritleri desteklemek içinORDERdeğerini geçersiz kılabilir.
- fill(pixel: tuple[int, ...]) None¶
Şeritteki her pikseli,
0-255aralığında tam sayılardan oluşan bir RGB veya RGBW demeti olan pixel değerine ayarlar.
- __setitem__(index: int, val: tuple[int, ...]) None¶
index konumundaki pikseli, bir RGB veya RGBW demeti olan val değerine ayarlar. Veri yalnızca arabelleğe alınır; şeride göndermek için
write()çağrısını yapın.
- __getitem__(index: int) tuple[int, ...]¶
Yerel arabellekten index konumundaki pikseli, kullanıcıya yönelik kanal sırasında bir RGB veya RGBW demeti olarak döndürür.
- write() None¶
Arabelleğe alınmış piksel verilerini
machine.bitstream()kullanarak şeride iletir.