Zum Hauptinhalt springen

Die LED-Farben einstellen

Was dieses Beispiel zeigt​

Zwei Arten, das Raster zu beleuchten, nacheinander in einer Schleife:

  1. Pad für Pad, Reihe für Reihe, zeigt jede LED jeweils 80 ms lang Rot, Grün und Blau und schaltet sich dann aus.
  2. Alle 16 LEDs zeigen zusammen jeweils 400 ms lang Rot, Grün, Blau und Weiß und schalten sich dann für 300 ms aus.

Der Kommentar im Kopf des Beispiels nennt außerdem einen dritten Schritt, eine Farbrotation mit einer Bitmaske, doch der Code in diesem Commit enthält ihn nicht.

Der Beispielcode​

Dies ist Examples/SetLEDs.py aus dem festgelegten Modul, unverändert. Speichern Sie es auf Ihrem Board und führen Sie es aus.

# FILE: SetLEDs.py
# AUTHOR: Josip Šimun Kuči @ Soldered
# BRIEF: Example showing LED control on the Inputronic GRID.
# Demonstrates three LED control methods in sequence:
# 1. Sweep each LED individually through red, green, and blue.
# 2. Fill all 16 LEDs with a single color (solid fills).
# 3. Animate a color rotation across all 16 LEDs using a bitmask.
# WORKS WITH: Inputronic GRID: www.soldered.com
# LAST UPDATED: 2026-05-12

from machine import I2C, Pin
from InputronicGrid import InputronicGrid
import time

# If you aren't using the Qwiic connector, manually enter your I2C pins:
# i2c = I2C(0, scl=Pin(22), sda=Pin(21))
# grid = InputronicGrid(i2c=i2c)

grid = InputronicGrid()
grid.clearLEDs()

while True:
# ── 1. Sweep individual LEDs ──────────────────────────────────────────
for row in range(4):
for col in range(4):
grid.setLED(row, col, 255, 0, 0, 255) # red
time.sleep_ms(80)
grid.setLED(row, col, 0, 255, 0, 255) # green
time.sleep_ms(80)
grid.setLED(row, col, 0, 0, 255, 255) # blue
time.sleep_ms(80)
grid.setLED(row, col, 0, 0, 0, 255) # off

# ── 2. Solid fills ────────────────────────────────────────────────────
grid.setAllLEDs(255, 0, 0 ); time.sleep_ms(400) # red
grid.setAllLEDs(0, 255, 0 ); time.sleep_ms(400) # green
grid.setAllLEDs(0, 0, 255); time.sleep_ms(400) # blue
grid.setAllLEDs(255, 255, 255); time.sleep_ms(400) # white
grid.clearLEDs(); time.sleep_ms(300)

🔗Das vollständige Beispiel öffnen

Examples/SetLEDs.py im Commit 36d3def

→

Das Beispiel gibt nichts aus: Das Ergebnis ist die oben beschriebene LED-Sequenz. Wenn das Board nicht antwortet, löst InputronicGrid() eine Exception mit der Meldung Inputronic GRID not found. Check wiring. aus.

Verwendete Funktionen​

InputronicGrid(i2c=None, address=INPUTRONIC_GRID_DEFAULT_ADDR)returns InputronicGrid

Erstellt das Driver-Objekt und prüft, ob das Board antwortet. Bleibt i2c auf None, wird I2C(0, scl=Pin(22), sda=Pin(21)) an den Ports erstellt, die das Modul erkennt (ESP32, ESP8266 und ein Soldered-Board), und bei einem nicht erkannten Port wird eine Exception ausgelöst.

ReturnsDas Driver-Objekt. Löst eine Exception mit der Meldung 'Inputronic GRID not found. Check wiring.' aus, wenn das Board nicht antwortet.

Parameter

TypNameBeschreibung
I2Ci2cEin fertiges machine.I2C-Objekt. Optional.
intaddressI2C-Adresse des Boards. Optional, standardmäßig 0x30.
grid.clearLEDs()returns None

Schaltet alle 16 LEDs aus. Entspricht setAllLEDs(0, 0, 0).

ReturnsNichts.

grid.setLED(row, col, r, g, b, intensity=128)returns None

Legt die Farbe der LED unter einem Pad fest, anhand seiner Position im Raster. Jeder Farbwert wird vor dem Senden mit intensity / 255 skaliert. Ein I2C-Fehler wird ignoriert.

ReturnsNichts.

Parameter

TypNameBeschreibung
introwReihe, 0 bis 3.
intcolSpalte, 0 bis 3.
intrRot, 0 bis 255.
intgGrün, 0 bis 255.
intbBlau, 0 bis 255.
intintensityHelligkeit, 0 (aus) bis 255 (voll). Optional, standardmäßig 128.
grid.setAllLEDs(r, g, b)returns None

Setzt alle 16 LEDs mit einem einzigen I2C-Befehl auf dieselbe Farbe. Die Werte werden unverändert gesendet, ohne Skalierung der Intensität. Ein I2C-Fehler wird ignoriert.

ReturnsNichts.

Parameter

TypNameBeschreibung
intrRot, 0 bis 255.
intgGrün, 0 bis 255.
intbBlau, 0 bis 255.

Zusammengefasst​

Schritt 1 ruft setLED() mit voller Intensität (255) für jede Reihe und Spalte auf, sodass die Farbwerte unverändert an die LED gelangen. Schritt 2 verwendet setAllLEDs(), einen Befehl für das ganze Raster, und clearLEDs() beendet den Zyklus mit ausgeschalteten LEDs.

Um eine beliebige Gruppe von LEDs mit einem einzigen Befehl in einer Farbe leuchten zu lassen, hat das Modul außerdem setLEDMask(mask, r, g, b): Bit i der 16-Bit-Maske lässt LED i leuchten, in der Reihenfolge der Datenleitung (die Nummerierung von setLEDByIndex(), nicht Reihe für Reihe), und jede LED, deren Bit nicht gesetzt ist, wird ausgeschaltet. In diesem Commit verwendet kein Beispiel diese Funktion.