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 WS2812GridErstellt 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
| Typ | Name | Beschreibung |
|---|---|---|
machine.Pin | pin | Pin-Objekt, das mit DIN des Grids verbunden ist, zum Beispiel Pin(6, Pin.OUT). |
int | width | Anzahl der Spalten, ein Vielfaches von 8. Standard: 8. |
int | height | Anzahl der Zeilen, ein Vielfaches von 8. Standard: 8. |
begin()returns NoneSetzt jedes Pixel zurück und ruft show() auf, sodass das Grid dunkel startet.
ReturnsNichts.
setBrightness(brightness)returns NoneLegt 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
| Typ | Name | Beschreibung |
|---|---|---|
int | brightness | 0 (aus) bis 255 (volle Helligkeit). |
setPixel(x, y, r_or_color, g=None, b=None)returns NoneSetzt 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
| Typ | Name | Beschreibung |
|---|---|---|
int | x | Spalte, 0 = links. |
int | y | Zeile, 0 = oben. |
int | r_or_color | Rot, 0 bis 255, oder eine gepackte Farbe 0x00RRGGBB, wenn g und b weggelassen werden. |
int | g | Grün, 0 bis 255. Optional. |
int | b | Blau, 0 bis 255. Optional. |
WS2812Grid.Color(r, g, b)returns intEine 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
| Typ | Name | Beschreibung |
|---|---|---|
int | r | Rot, 0 bis 255. |
int | g | Grün, 0 bis 255. |
int | b | Blau, 0 bis 255. |
show()returns NoneSchreibt 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.