Skip to main content

Postavljanje boja LED dioda

Što prikazuje ovaj primjer​

Dva načina osvjetljavanja mreže, jedan za drugim, u petlji:

  1. Polje po polje, red po red, svaka LED dioda prikazuje crvenu, zelenu i plavu boju po 80 ms, a zatim se gasi.
  2. 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 InputronicGrid

Stvara 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

TipNazivOpis
I2Ci2cGotov objekt machine.I2C. Neobavezno.
intaddressI2C adresa pločice. Neobavezno, zadano 0x30.
grid.clearLEDs()returns None

Gasi svih 16 LED dioda. Isto je kao setAllLEDs(0, 0, 0).

ReturnsNišta.

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

Postavlja 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

TipNazivOpis
introwRed, od 0 do 3.
intcolStupac, od 0 do 3.
intrCrvena, od 0 do 255.
intgZelena, od 0 do 255.
intbPlava, od 0 do 255.
intintensitySvjetlina, od 0 (isključeno) do 255 (maksimalno). Neobavezno, zadano 128.
grid.setAllLEDs(r, g, b)returns None

Postavlja 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

TipNazivOpis
intrCrvena, od 0 do 255.
intgZelena, od 0 do 255.
intbPlava, 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.