Schnellstart
Verbinden Sie das GRID mit einem Qwiic-Kabel, installieren Sie die Bibliothek und starten Sie das Beispiel für Taster und LEDs. Jeder Druck auf ein Pad schaltet die LED dieses Pads ein oder aus, und der Tastendruck wird ausgegeben. So sehen Sie sofort, dass die Taster, die LEDs und die I2C-Verbindung funktionieren.
Sie programmieren den Controller, der mit diesem Breakout verbunden ist. Das Breakout selbst wird nicht geflasht.
- Arduino
- MicroPython
1. Breakout-Board anschließen
Stecken Sie ein Qwiic-Kabel in einen der vier Qwiic-Connectoren auf der Rückseite des GRID und in den Qwiic-Connector Ihres Controllers. Es ist kein Löten nötig. Das Kabel versorgt das Board außerdem mit 3,3 V, und die anderen drei Connectoren geben den Bus an weitere Qwiic-Boards weiter.
| NULA DeepSleep | Soldered Inputronic GRID |
|---|---|
| Qwiic-Connector | Qwiic-Connector |
Ohne Qwiic: Verdrahtung auf der Steckplatine
Das GRID lässt sich nicht in eine Steckplatine einstecken. Löten Sie stattdessen vier Drähte an eines der
I2C-Lötpad-Sets (JP1 bis JP4) an den Rändern der Rückseite. Jedes Set ist
mit 3V3, SCL, SDA und GND beschriftet und führt dieselben Leitungen wie die Qwiic-
Connectoren.
| Controller | Soldered Inputronic GRID |
|---|---|
| 3V3 | 3V3 |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Das Board arbeitet ausschließlich mit 3,3 V. Schließen Sie es an eine 3,3-V-Versorgung und 3,3-V-I2C-Leitungen an.
2. Bibliothek installieren
Installieren Sie Soldered Inputronic GRID, indem Sie die Bibliothek aus ihrem GitHub- Repository herunterladen und die ZIP-Datei in der Arduino IDE hinzufügen (siehe den Tipp unten).
🔗Soldered Inputronic GRID Arduino-Bibliothek
Geprüfte Arduino-Bibliothek bei Commit 399b832
Tipp: Download von GitHub. Klicken Sie auf der GitHub-Seite der Bibliothek auf die grüne Schaltfläche Code und wählen Sie Download ZIP. Fügen Sie die Datei dann in der Arduino IDE über Sketch → Bibliothek einbinden → .ZIP-Bibliothek hinzufügen... hinzu.
3. Erstes Beispiel ausführen
Dies ist ButtonLEDControl.ino, das eigene Beispiel der Bibliothek. Jeder Druck auf ein Pad
schaltet dessen LED um: an in der Farbe seiner Reihe (Rot, Grün, Blau und Orange für
die Reihen 0 bis 3), beim nächsten Druck aus.
/**
**************************************************
*
* @file ButtonLEDControl.ino
* @brief Example showing button-driven LED toggle on the Inputronic Grid.
*
* Each button toggles its corresponding LED on or off.
* First press turns the LED on in a row-specific color;
* second press turns it off.
*
* Demonstrates reading individual pads by row/col coordinate
* and reacting with per-LED color control using the same
* row/col coordinates.
*
* Hardware wiring:
* - Connect Inputronic Grid to host via Qwiic / I2C
* (SDA, SCL, 3V3, GND).
*
* @authors Josip Šimun Kuči @ soldered.com
***************************************************/
#include <InputronicGrid.h>
InputronicGrid grid;
// Toggle state per button, indexed by [row][col]
bool ledOn[4][4] = {};
// Colors per row (R, G, B)
const uint8_t rowColor[4][3] = {
{255, 0, 0}, // row 0 — red
{ 0, 255, 0}, // row 1 — green
{ 0, 0, 255}, // row 2 — blue
{255, 128, 0}, // row 3 — orange
};
// Previous pad state per [row][col] for edge detection
bool prevState[4][4] = {};
void setup()
{
Serial.begin(115200);
if (!grid.begin())
{
Serial.println("Inputronic GRID not found. Check wiring.");
while (1)
;
}
grid.clearLEDs();
Serial.println("Press any button to toggle its LED.");
}
void loop()
{
for (uint8_t row = 0; row < 4; row++)
{
for (uint8_t col = 0; col < 4; col++)
{
bool pressed = grid.readPad(row, col);
if (pressed && !prevState[row][col])
{
ledOn[row][col] = !ledOn[row][col];
if (ledOn[row][col])
grid.setLED(row, col, rowColor[row][0], rowColor[row][1], rowColor[row][2], 255);
else
grid.setLED(row, col, 0, 0, 0, 255);
Serial.print("Button (row ");
Serial.print(row);
Serial.print(", col ");
Serial.print(col);
Serial.print(") → LED ");
Serial.println(ledOn[row][col] ? "ON" : "OFF");
}
prevState[row][col] = pressed;
}
}
delay(20);
}
4. Ergebnis prüfen
Öffnen Sie den Seriellen Monitor mit 115200 Baud. Alle LEDs sind zu Beginn aus. Drücken Sie das Pad in Reihe 0, Spalte 0 zweimal: Seine LED leuchtet rot und geht dann aus, und der Serielle Monitor zeigt:
Press any button to toggle its LED.
Button (row 0, col 0) → LED ON
Button (row 0, col 0) → LED OFF
Antwortet das Board nicht über I2C, gibt der Sketch
Inputronic GRID not found. Check wiring. aus und hält an.
Ein Pad beim Drücken zum Leuchten bringen erklärt jede Funktion, die der Sketch verwendet.
5. Wenn es nicht funktioniert
Lesen Sie weiter unter Fehlerbehebung und wiederholen Sie dieses einfachste Beispiel nach jeder Änderung.
1. Breakout-Board anschließen
Stecken Sie ein Qwiic-Kabel in einen der vier Qwiic-Connectoren auf der Rückseite des GRID und in den Qwiic-Connector Ihres Controllers. Es ist kein Löten nötig. Das Kabel versorgt das Board außerdem mit 3,3 V.
| NULA DeepSleep | Soldered Inputronic GRID |
|---|---|
| Qwiic-Connector | Qwiic-Connector |
Wird das Modul ohne I2C-Objekt erstellt, verwendet es I2C-Bus 0 mit SCL an Pin 22
und SDA an Pin 21, und zwar auf den Ports, die es erkennt: ESP32, ESP8266 und ein
Soldered-Board. Verwenden Sie bei einem Board, das es nicht erkennt, oder bei anderen Pins die auskommentierten Zeilen am Anfang des Beispiels, um
Ihr eigenes I2C-Objekt zu übergeben.
Ohne Qwiic: Verdrahtung auf der Steckplatine
Das GRID lässt sich nicht in eine Steckplatine einstecken. Löten Sie stattdessen vier Drähte an eines der
I2C-Lötpad-Sets (JP1 bis JP4) an den Rändern der Rückseite. Jedes Set ist
mit 3V3, SCL, SDA und GND beschriftet und führt dieselben Leitungen wie die Qwiic-
Connectoren.
| Controller | Soldered Inputronic GRID |
|---|---|
| 3V3 | 3V3 |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Das Board arbeitet ausschließlich mit 3,3 V. Schließen Sie es an eine 3,3-V-Versorgung und 3,3-V-I2C-Leitungen an.
2. Modul installieren
Installieren Sie die Soldered Inputronic GRID MicroPython library. Nachdem Sie das mpremote-Paket installiert haben, installieren Sie sie mit dem Befehl aus der README der Bibliothek auf Ihrem Board:
mpremote mip install github:SolderedElectronics/Soldered-Inputronic-GRID-MicroPython-Library
Oder unter Windows:
python -m mpremote mip install github:SolderedElectronics/Soldered-Inputronic-GRID-MicroPython-Library
🔗Soldered Inputronic GRID MicroPython-Bibliothek
Geprüftes MicroPython-Modul bei Commit 36d3def
Tipp: Download von GitHub. Ohne mpremote öffnen Sie die .py-Datei
des Moduls auf GitHub und klicken auf Download raw file. Öffnen Sie sie dann in Thonny und kopieren Sie sie über
Datei → Speichern unter... → MicroPython-Gerät auf das Board.
3. Erstes Beispiel ausführen
Dies ist Examples/ButtonLEDControl.py, das eigene Beispiel der Bibliothek. Jeder Druck auf
ein Pad schaltet dessen LED um: an in der Farbe seiner Reihe (Rot, Grün, Blau und Orange
für die Reihen 0 bis 3), beim nächsten Druck aus. Speichern Sie es auf Ihrem Board und führen Sie es aus.
# FILE: ButtonLEDControl.py
# AUTHOR: Josip Šimun Kuči @ Soldered
# BRIEF: Example showing button-driven LED toggle on the Inputronic GRID.
# Each button toggles its corresponding LED on or off.
# First press turns the LED on in a row-specific color;
# second press turns it off.
# Demonstrates reading individual pads by row/col coordinate
# and reacting with per-LED color control using the same coordinates.
# 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()
print("Press any button to toggle its LED.")
# Toggle state per button, indexed by [row][col]
ledOn = [[False] * 4 for _ in range(4)]
# Colors per row (R, G, B)
rowColor = [
(255, 0, 0), # row 0 — red
( 0, 255, 0), # row 1 — green
( 0, 0, 255), # row 2 — blue
(255, 128, 0), # row 3 — orange
]
# Previous pad state per [row][col] for edge detection
prevState = [[False] * 4 for _ in range(4)]
while True:
for row in range(4):
for col in range(4):
pressed = grid.readPad(row, col)
if pressed and not prevState[row][col]:
ledOn[row][col] = not ledOn[row][col]
if ledOn[row][col]:
r, g, b = rowColor[row]
grid.setLED(row, col, r, g, b, 255)
else:
grid.setLED(row, col, 0, 0, 0, 255)
print("Button (row {}, col {}) → LED {}".format(
row, col, "ON" if ledOn[row][col] else "OFF"))
prevState[row][col] = pressed
time.sleep_ms(20)
4. Ergebnis prüfen
Alle LEDs sind zu Beginn aus. Drücken Sie das Pad in Reihe 0, Spalte 0 zweimal: Seine LED leuchtet rot, geht dann aus, und die Shell zeigt:
Press any button to toggle its LED.
Button (row 0, col 0) → LED ON
Button (row 0, col 0) → LED OFF
Antwortet das Board nicht über I2C, löst das Modul eine Exception mit der
Meldung Inputronic GRID not found. Check wiring. aus.
Ein Pad beim Drücken zum Leuchten bringen erklärt jede Funktion, die das Beispiel verwendet.
5. Wenn es nicht funktioniert
Lesen Sie weiter unter Fehlerbehebung und wiederholen Sie dieses einfachste Beispiel nach jeder Änderung.