neopixel --- kendali LED WS2812 / NeoPixel

Modul ini menyediakan driver untuk strip LED WS2812 / NeoPixel. Driver bergantung pada machine.bitstream() untuk menghasilkan sinyal dengan pewaktuan presisi yang diharapkan oleh LED, sehingga bekerja pada port manapun yang modul machine-nya mengimplementasikan bitstream.

Aplikasi mengatur data piksel melalui penugasan item atau NeoPixel.fill(), lalu memanggil NeoPixel.write() untuk memperbarui strip. Setiap piksel direpresentasikan sebagai tuple RGB atau RGBW sesuai urutan yang diterima pengguna; driver menangani urutan kabel GRB(W) secara internal.

Contoh:

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)

Membuat objek NeoPixel untuk strip LED yang terhubung ke pin.

  • pin adalah instans machine.Pin; konstruktor akan mengonfigurasinya ulang sebagai output.

  • n adalah jumlah LED dalam strip.

  • bpp adalah jumlah byte per piksel: 3 untuk LED RGB (seperti WS2812) dan 4 untuk LED RGBW (seperti SK6812-RGBW).

  • timing memilih pewaktuan bit. 0 memilih pewaktuan lambat 400 kHz, 1 memilih pewaktuan standar 800 kHz yang digunakan oleh sebagian besar strip modern. Sebuah 4-tuple (high_0, low_0, high_1, low_1) berupa durasi nanodetik juga dapat diberikan, dalam format yang diterima oleh machine.bitstream().

ORDER: tuple[int, int, int, int]

Atribut kelas yang memetakan urutan kanal yang terlihat oleh pengguna ke urutan kabel. Defaultnya adalah (1, 0, 2, 3), yaitu tuple (R, G, B[, W]) yang diberikan pengguna dikirimkan sebagai G R B [W]. Subkelas dapat menimpa ORDER untuk mendukung strip dengan urutan kabel yang berbeda.

fill(pixel: tuple[int, ...]) None

Mengatur setiap piksel dalam strip ke pixel, sebuah tuple RGB atau RGBW berisi bilangan bulat dalam rentang 0-255.

__len__() int

Mengembalikan jumlah LED dalam strip.

__setitem__(index: int, val: tuple[int, ...]) None

Mengatur piksel pada index ke val, sebuah tuple RGB atau RGBW. Data hanya disimpan dalam buffer; panggil write() untuk mengirimkannya ke strip.

__getitem__(index: int) tuple[int, ...]

Mengembalikan piksel pada index dari buffer lokal sebagai tuple RGB atau RGBW dalam urutan kanal yang terlihat oleh pengguna.

write() None

Mengirimkan data piksel yang tersimpan dalam buffer ke strip menggunakan machine.bitstream().