Die LED-Farben einstellen
Was dieses Beispiel zeigt
Zwei Arten, das Raster zu beleuchten, nacheinander in einer Schleife:
- 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.
- 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 InputronicGridErstellt 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
| Typ | Name | Beschreibung |
|---|---|---|
I2C | i2c | Ein fertiges machine.I2C-Objekt. Optional. |
int | address | I2C-Adresse des Boards. Optional, standardmäßig 0x30. |
grid.clearLEDs()returns NoneSchaltet alle 16 LEDs aus. Entspricht setAllLEDs(0, 0, 0).
ReturnsNichts.
grid.setLED(row, col, r, g, b, intensity=128)returns NoneLegt 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
| Typ | Name | Beschreibung |
|---|---|---|
int | row | Reihe, 0 bis 3. |
int | col | Spalte, 0 bis 3. |
int | r | Rot, 0 bis 255. |
int | g | Grün, 0 bis 255. |
int | b | Blau, 0 bis 255. |
int | intensity | Helligkeit, 0 (aus) bis 255 (voll). Optional, standardmäßig 128. |
grid.setAllLEDs(r, g, b)returns NoneSetzt 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
| Typ | Name | Beschreibung |
|---|---|---|
int | r | Rot, 0 bis 255. |
int | g | Grün, 0 bis 255. |
int | b | Blau, 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.