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 WS2812GridStvara 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
| Tip | Naziv | Opis |
|---|---|---|
machine.Pin | pin | Objekt pina spojenog na DIN rešetke, na primjer Pin(6, Pin.OUT). |
int | width | Broj stupaca, višekratnik broja 8. Zadano 8. |
int | height | Broj redaka, višekratnik broja 8. Zadano 8. |
begin()returns NoneBriše svaki piksel i poziva show(), pa rešetka započinje tamna.
ReturnsNišta.
setBrightness(brightness)returns NonePostavlja 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
| Tip | Naziv | Opis |
|---|---|---|
int | brightness | Od 0 (isključeno) do 255 (puna svjetlina). |
setPixel(x, y, r_or_color, g=None, b=None)returns NonePostavlja 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
| Tip | Naziv | Opis |
|---|---|---|
int | x | Stupac, 0 = lijevo. |
int | y | Redak, 0 = gore. |
int | r_or_color | Crvena, od 0 do 255, ili spakirana boja 0x00RRGGBB kad se g i b izostave. |
int | g | Zelena, od 0 do 255. Neobavezno. |
int | b | Plava, od 0 do 255. Neobavezno. |
WS2812Grid.Color(r, g, b)returns intStatič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
| Tip | Naziv | Opis |
|---|---|---|
int | r | Crvena, od 0 do 255. |
int | g | Zelena, od 0 do 255. |
int | b | Plava, od 0 do 255. |
show()returns NoneZapisuje 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.