Postavljanje boja LED dioda
Što ovaj primjer prikazuje
Dva načina paljenja rešetke, jedan za drugim, u petlji:
- Lemnu površinu po lemnu površinu, 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 u zaglavlju skice navodi i treći korak, rotaciju boja pomoću bitmaske, ali kod u ovom commitu ga ne sadrži.
Kod primjera
Ovo je examples/SetLEDs/SetLEDs.ino iz fiksirane biblioteke, nepromijenjen.
/**
**************************************************
*
* @file SetLEDs.ino
* @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.
*
* 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;
void setup()
{
Serial.begin(115200);
if (!grid.begin())
{
Serial.println("Inputronic GRID not found. Check wiring.");
while (1)
;
}
grid.clearLEDs();
}
void loop()
{
// ── 1. Sweep individual LEDs ─────────────────────────────────────────
for (uint8_t row = 0; row < 4; row++)
{
for (uint8_t col = 0; col < 4; col++)
{
grid.setLED(row, col, 255, 0, 0, 255); // red
delay(80);
grid.setLED(row, col, 0, 255, 0, 255); // green
delay(80);
grid.setLED(row, col, 0, 0, 255, 255); // blue
delay(80);
grid.setLED(row, col, 0, 0, 0, 255); // off
}
}
// ── 2. Solid fills ───────────────────────────────────────────────────
grid.setAllLEDs(255, 0, 0 ); delay(400); // red
grid.setAllLEDs(0, 255, 0 ); delay(400); // green
grid.setAllLEDs(0, 0, 255); delay(400); // blue
grid.setAllLEDs(255, 255, 255); delay(400); // white
grid.clearLEDs(); delay(300);
}
Tijekom rada nema ispisa na serijskom sučelju: rezultat je gore opisani slijed LED dioda.
Samo kada pločica ne odgovori, skica ispisuje
Inputronic GRID not found. Check wiring. brzinom 115200 baud i zaustavlja se.
Korištene funkcije
InputronicGrid(uint8_t address = INPUTRONIC_GRID_DEFAULT_ADDR)returns InputronicGridStvara upravljački objekt za jedan GRID. Primjer ga deklarira kao InputronicGrid grid; bez adrese, pa koristi zadanu 0x30.
ReturnsUpravljački objekt.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | address | I2C adresa pločice. Neobavezno, prema zadanim postavkama 0x30 (INPUTRONIC_GRID_DEFAULT_ADDR). |
grid.begin(TwoWire &wire = Wire)returns boolPokreće I2C sabirnicu pomoću wire.begin() i provjerava odgovara li pločica na svojoj adresi.
Returnstrue kada je pločica potvrdila prijem na sabirnici, false kada nije pronađena.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
TwoWire & | wire | I2C sabirnica koja se koristi. Neobavezno, prema zadanim postavkama Wire. |
grid.clearLEDs()returns voidGasi svih 16 LED dioda. Isto je kao setAllLEDs(0, 0, 0).
ReturnsNišta.
grid.setLED(uint8_t row, uint8_t col, uint8_t r, uint8_t g, uint8_t b, uint8_t intensity)returns voidPostavlja boju LED diode ispod jedne lemne površine, prema njezinu mjestu u rešetki. Svaka se vrijednost boje prije slanja skalira s intensity / 255.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | row | Red, od 0 do 3. |
uint8_t | col | Stupac, od 0 do 3. |
uint8_t | r | Crvena, od 0 do 255. |
uint8_t | g | Zelena, od 0 do 255. |
uint8_t | b | Plava, od 0 do 255. |
uint8_t | intensity | Svjetlina, od 0 (isključeno) do 255 (puna). U ovom je obliku obavezna. |
grid.setAllLEDs(uint8_t r, uint8_t g, uint8_t b)returns voidPostavlja svih 16 LED dioda na istu boju jednom I2C naredbom. Vrijednosti se šalju onakve kakve jesu, bez skaliranja intenziteta.
ReturnsNišta.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | r | Crvena, od 0 do 255. |
uint8_t | g | Zelena, od 0 do 255. |
uint8_t | b | Plava, od 0 do 255. |
Uvijek proslijedite svih šest argumenata obliku funkcije setLED() s redom i stupcem. S
pet argumenata poziva se setLED(index, r, g, b, intensity = 128),
a prvi se broj čita kao indeks LED diode.
Sve zajedno
Korak 1 poziva setLED() s punim intenzitetom (255) za svaki red i stupac,
pa vrijednosti boja stižu do LED diode nepromijenjene. Korak 2 koristi setAllLEDs(), jednu
naredbu za cijelu rešetku, a clearLEDs() završava ciklus s ugašenim svim LED diodama.
Za paljenje bilo kojeg skupa LED dioda jednom bojom jednom naredbom biblioteka
ima i setLEDMask(mask, r, g, b): bit i 16-bitne maske pali LED diodu i u
redoslijedu podatkovne linije (numeracija setLED() s pet argumenata, a ne
red po red), a svaka LED dioda čiji je bit obrisan gasi se. Nijedan primjer ga ne koristi u ovom commitu.