Skip to main content

Postavljanje piksela

Što ovaj primjer pokazuje​

Kako upaliti pojedinačne LED diode prema njihovu položaju (x, y). Primjer postavlja nisku svjetlinu, boji tri kuta i dva piksela u sredini, jednom zasebnim vrijednostima crvene, zelene i plave, a jednom spakiranom bojom, a zatim sve šalje na rešetku jednim pozivom show().

Povežite VCC na 5 V, GND na GND i DIN na pin 6 svojeg kontrolera ili promijenite broj u Pin(6, Pin.OUT) u pin koji ste upotrijebili.

Kôd primjera​

Ovo je SetPixel.py iz fiksiranog modula, točno onakav kakav se isporučuje.

# FILE: SetPixel.py
# AUTHOR: Josip Šimun Kuči @ Soldered
# BRIEF: Basic usage: set individual pixels by (x, y) coordinates on the
# Soldered 8x8 WS2812B LED grid.
# Connect the grid data line to the pin defined below.
# (0, 0) is top-left. X increases to the right, Y increases downward.
# WORKS WITH: Soldered WS2812B LED Grid: www.soldered.com
# LAST UPDATED: 2026-05-12

from machine import Pin
from WS2812Grid import WS2812Grid

PIN = Pin(6, Pin.OUT)

grid = WS2812Grid(PIN)
grid.begin()

# Set overall brightness (0 = off, 255 = full).
# Keep this low to avoid excessive current draw.
grid.setBrightness(40)

# Draw a red pixel at the top-left corner
grid.setPixel(0, 0, 255, 0, 0)

# Draw a green pixel at the top-right corner
grid.setPixel(7, 0, 0, 255, 0)

# Draw a blue pixel at the bottom-left corner
grid.setPixel(0, 7, 0, 0, 255)

# Draw a white pixel in the centre using a packed color
grid.setPixel(3, 3, WS2812Grid.Color(255, 255, 255))
grid.setPixel(4, 4, WS2812Grid.Color(255, 255, 255))

# Push all changes to the hardware
grid.show()

# Nothing to do — pixels stay lit

🔗Otvorite cijeli primjer

Examples/SetPixel.py u commitu db93fa3

→

Očekivani rezultat: primjer ne ispisuje ništa u shellu. Kad se pokrene, gornji lijevi piksel (0, 0) svijetli crveno, gornji desni piksel (7, 0) zeleno, donji lijevi piksel (0, 7) plavo, a pikseli na (3, 3) i (4, 4) bijelo, sve skalirano na svjetlinu 40 od 255. Ostaju upaljeni i nakon završetka skripte.

Korištene funkcije​

WS2812Grid(pin, width=8, height=8)returns WS2812Grid

Stvara upravljački program rešetke: objekt neopixel.NeoPixel za width x height LED dioda na zadanom pinu. Jedna rešetka je 8 x 8, što je zadano. Svjetlina počinje na 255.

ReturnsObjekt rešetke.

Parametri

TipNazivOpis
machine.PinpinObjekt pina spojenog na DIN rešetke, na primjer Pin(6, Pin.OUT).
intwidthBroj stupaca, višekratnik broja 8. Zadano 8.
intheightBroj redaka, višekratnik broja 8. Zadano 8.
begin()returns None

Briše svaki piksel i poziva show(), pa rešetka započinje tamna.

ReturnsNišta.

setBrightness(brightness)returns None

Postavlja ljestvicu svjetline. Vrijednosti izvan raspona od 0 do 255 ograničavaju se na taj raspon. Primjenjuje se pri postavljanju piksela, pa je pozovite prije setPixel() ili fill(); pikseli koji su već postavljeni zadržavaju svoju svjetlinu.

ReturnsNišta.

Parametri

TipNazivOpis
intbrightnessOd 0 (isključeno) do 255 (puna svjetlina).
setPixel(x, y, r_or_color, g=None, b=None)returns None

Postavlja jednu LED diodu prema njezinu položaju na rešetki. Proslijedite r, g i b kao tri vrijednosti ili proslijedite jednu spakiranu boju, a g i b izostavite. Boja se skalira svjetlinom. Položaj izvan rešetke se zanemaruje. Nakon toga pozovite show() kako biste promjenu poslali na LED diode.

ReturnsNišta.

Parametri

TipNazivOpis
intxStupac, 0 = lijevo.
intyRedak, 0 = gore.
intr_or_colorCrvena, od 0 do 255, ili spakirana boja 0x00RRGGBB kad se g i b izostave.
intgZelena, od 0 do 255. Neobavezno.
intbPlava, od 0 do 255. Neobavezno.
WS2812Grid.Color(r, g, b)returns int

Statička metoda koja pakira crvenu, zelenu i plavu u jedan cijeli broj, za setPixel() sa spakiranom bojom. Pozovite je na klasi, kao WS2812Grid.Color().

ReturnsSpakirana boja, (r << 16) | (g << 8) | b.

Parametri

TipNazivOpis
intrCrvena, od 0 do 255.
intgZelena, od 0 do 255.
intbPlava, od 0 do 255.
show()returns None

Zapisuje boje iz međuspremnika na LED diode.

ReturnsNišta.

Sastavljanje cjeline​

Izradite rešetku s pinom spojenim na DIN, pozovite begin(), postavite svjetlinu prije postavljanja bilo kojeg piksela, zatim postavite koliko god piksela želite i završite jednim pozivom show(). Na rešetki se ništa ne mijenja dok se ne izvrši show(). Povećanje svjetline iznad 40 čini LED diode svjetlijima i povećava potrošnju struje, pa prvo provjerite svoje napajanje od 5 V.