Zum Hauptinhalt springen

Pixel setzen

Was dieses Beispiel zeigt​

So lassen sich einzelne LEDs über ihre (x, y)-Position ansteuern. Das Beispiel stellt eine niedrige Helligkeit ein, färbt drei Ecken und zwei Pixel in der Mitte, einmal mit getrennten Rot-, Grün- und Blauwerten und einmal mit einer gepackten Farbe, und sendet dann alles mit einem einzigen show() an das Grid.

Verbinden Sie VCC mit 5 V, GND mit GND und DIN mit Pin 6 Ihres Controllers, oder ändern Sie die Zahl in Pin(6, Pin.OUT) auf den Pin, den Sie verwendet haben.

Der Beispielcode​

Dies ist SetPixel.py aus dem festgelegten Modul, genau so, wie es ausgeliefert wird.

# 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

🔗Vollständiges Beispiel öffnen

Examples/SetPixel.py im Commit db93fa3

→

Erwartetes Ergebnis: Das Beispiel gibt nichts in der Shell aus. Wenn es läuft, leuchtet das Pixel oben links (0, 0) rot, das Pixel oben rechts (7, 0) grün, das Pixel unten links (0, 7) blau und die Pixel bei (3, 3) und (4, 4) weiß, alle skaliert auf die Helligkeit 40 von 255. Sie bleiben auch nach dem Ende des Skripts eingeschaltet.

Verwendete Funktionen​

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

Erstellt den Grid-Driver: ein neopixel.NeoPixel-Objekt für width x height LEDs am angegebenen Pin. Ein Grid hat 8 x 8 LEDs, das ist der Standard. Die Helligkeit beginnt bei 255.

ReturnsDas Grid-Objekt.

Parameter

TypNameBeschreibung
machine.PinpinPin-Objekt, das mit DIN des Grids verbunden ist, zum Beispiel Pin(6, Pin.OUT).
intwidthAnzahl der Spalten, ein Vielfaches von 8. Standard: 8.
intheightAnzahl der Zeilen, ein Vielfaches von 8. Standard: 8.
begin()returns None

Setzt jedes Pixel zurück und ruft show() auf, sodass das Grid dunkel startet.

ReturnsNichts.

setBrightness(brightness)returns None

Legt die Helligkeitsskala fest. Werte außerhalb von 0 bis 255 werden begrenzt. Sie wird beim Setzen eines Pixels angewendet, rufen Sie sie daher vor setPixel() oder fill() auf; bereits gesetzte Pixel behalten ihre Helligkeit.

ReturnsNichts.

Parameter

TypNameBeschreibung
intbrightness0 (aus) bis 255 (volle Helligkeit).
setPixel(x, y, r_or_color, g=None, b=None)returns None

Setzt eine LED über ihre Position im Grid. Übergeben Sie r, g und b als drei Werte, oder übergeben Sie eine gepackte Farbe und lassen Sie g und b weg. Die Farbe wird mit der Helligkeit skaliert. Eine Position außerhalb des Grids wird ignoriert. Rufen Sie danach show() auf, um die Änderung an die LEDs zu senden.

ReturnsNichts.

Parameter

TypNameBeschreibung
intxSpalte, 0 = links.
intyZeile, 0 = oben.
intr_or_colorRot, 0 bis 255, oder eine gepackte Farbe 0x00RRGGBB, wenn g und b weggelassen werden.
intgGrün, 0 bis 255. Optional.
intbBlau, 0 bis 255. Optional.
WS2812Grid.Color(r, g, b)returns int

Eine statische Methode, die Rot, Grün und Blau zu einer Ganzzahl packt, für setPixel() mit gepackter Farbe. Rufen Sie sie über die Klasse auf, als WS2812Grid.Color().

ReturnsDie gepackte Farbe, (r << 16) | (g << 8) | b.

Parameter

TypNameBeschreibung
intrRot, 0 bis 255.
intgGrün, 0 bis 255.
intbBlau, 0 bis 255.
show()returns None

Schreibt die gepufferten Farben auf die LEDs.

ReturnsNichts.

Alles zusammen​

Erstellen Sie das Grid mit dem Pin, der mit DIN verbunden ist, rufen Sie begin() auf, stellen Sie die Helligkeit ein, bevor Sie ein Pixel setzen, setzen Sie dann beliebig viele Pixel und schließen Sie mit einem einzigen show() ab. Auf dem Grid ändert sich nichts, bis show() ausgeführt wird. Wenn Sie die Helligkeit über 40 erhöhen, leuchten die LEDs heller und ziehen mehr Strom, prüfen Sie daher zuerst Ihre 5-V-Versorgung.