Postavljanje boja LED dioda
Što prikazuje ovaj primjer
Dva načina osvjetljavanja mreže, jedan za drugim, u petlji:
- Polje po polje, red po red, svaka LED dioda prikazuje crvenu, zelenu i plavu boju po 80 ms, a zatim se gasi.
- Svih 16 LED dioda zajedno prikazuje crvenu, zelenu, plavu i bijelu boju po 400 ms, a zatim se gase na 300 ms.
Komentar na početku primjera spominje i treći korak, rotaciju boja pomoću bitmaske, ali kod u ovom commitu ga ne sadrži.
Kod primjera
Ovo je Examples/SetLEDs.py iz zaključanog modula, nepromijenjen. Spremite ga na svoju pločicu i pokrenite.
# 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)
🔗Otvorite cijeli primjer
Examples/SetLEDs.py u commitu 36d3def
Primjer ništa ne ispisuje: rezultat je gore opisani slijed LED dioda. Kada pločica ne odgovori, InputronicGrid() baca iznimku s porukom Inputronic GRID not found. Check wiring.
Korištene funkcije
InputronicGrid(i2c=None, address=INPUTRONIC_GRID_DEFAULT_ADDR)returns InputronicGridStvara objekt upravljačkog programa i provjerava odgovara li pločica. Ako je i2c ostavljen na None, stvara I2C(0, scl=Pin(22), sda=Pin(21)) na platformama koje modul prepoznaje (ESP32, ESP8266 i jedna Soldered pločica), a na platformi koju ne prepoznaje baca iznimku.
ReturnsObjekt upravljačkog programa. Baca iznimku s porukom 'Inputronic GRID not found. Check wiring.' kada pločica ne odgovori.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
I2C | i2c | Gotov objekt machine.I2C. Neobavezno. |
int | address | I2C adresa pločice. Neobavezno, zadano 0x30. |
grid.clearLEDs()returns NoneGasi svih 16 LED dioda. Isto je kao setAllLEDs(0, 0, 0).
ReturnsNišta.
grid.setLED(row, col, r, g, b, intensity=128)returns NonePostavlja boju LED diode ispod jednog polja, prema njegovu mjestu u mreži. Svaka vrijednost boje množi se s intensity / 255 prije slanja. I2C greška se zanemaruje.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
int | row | Red, od 0 do 3. |
int | col | Stupac, od 0 do 3. |
int | r | Crvena, od 0 do 255. |
int | g | Zelena, od 0 do 255. |
int | b | Plava, od 0 do 255. |
int | intensity | Svjetlina, od 0 (isključeno) do 255 (maksimalno). Neobavezno, zadano 128. |
grid.setAllLEDs(r, g, b)returns NonePostavlja svih 16 LED dioda na istu boju jednom I2C naredbom. Vrijednosti se šalju takve kakve jesu, bez skaliranja intenziteta. I2C greška se zanemaruje.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
int | r | Crvena, od 0 do 255. |
int | g | Zelena, od 0 do 255. |
int | b | Plava, od 0 do 255. |
Sve zajedno
Korak 1 poziva setLED() s maksimalnim intenzitetom (255) za svaki red i stupac, pa vrijednosti boja stižu do LED diode nepromijenjene. Korak 2 koristi setAllLEDs(), jednu naredbu za cijelu mrežu, a clearLEDs() završava ciklus s ugašenim svim LED diodama.
Za osvjetljavanje bilo kojeg skupa LED dioda jednom bojom u jednoj naredbi modul ima i setLEDMask(mask, r, g, b): bit i 16-bitne maske pali LED diodu i redoslijedom podatkovne linije (numeracija funkcije setLEDByIndex(), ne red po red), a svaka LED dioda čiji je bit obrisan gasi se. Nijedan primjer je ne koristi u ovom commitu.