Čitanje tipki
Što prikazuje ovaj primjer
Svih 16 tipki čita se svakih 50 ms i ispisuje kao karta 4x4 u Serial Monitoru
pri 115200 baud: X za pritisnutu tipku, . za otpuštenu. LED diode ostaju
ugašene.
Kôd primjera
Ovo je examples/ReadButtons/ReadButtons.ino iz fiksirane biblioteke,
bez izmjena.
/**
**************************************************
*
* @file ReadButtons.ino
* @brief Example showing how to read all 16 buttons on the Inputronic Grid.
*
* Reads all 16 button states every 50 ms and prints a 4×4 grid
* map to the Serial monitor. Pressed buttons show 'X'; released
* buttons show '.'.
*
* 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);
while (!Serial)
;
if (!grid.begin())
{
Serial.println("Inputronic GRID not found. Check wiring.");
while (1)
;
}
Serial.println("Inputronic GRID ready.\n");
grid.clearLEDs();
}
void loop()
{
Serial.println("+---------+");
for (uint8_t row = 0; row < 4; row++)
{
Serial.print("| ");
for (uint8_t col = 0; col < 4; col++)
{
Serial.print(grid.readPad(row, col) ? 'X' : '.');
Serial.print(' ');
}
Serial.println("|");
}
Serial.println("+---------+\n");
delay(50);
}
Očekivani rezultat kada ništa nije pritisnuto:
Inputronic GRID ready.
+---------+
| . . . . |
| . . . . |
| . . . . |
| . . . . |
+---------+
Nova karta slijedi svakih 50 ms. Dok držite tipku, X zauzima mjesto njezine .: gornji redak karte je redak 0, a prvi znak u retku je stupac 0. Kada pločica ne odgovara, skica ispisuje
Inputronic GRID not found. Check wiring. i zaustavlja se.
Korištene funkcije
InputronicGrid(uint8_t address = INPUTRONIC_GRID_DEFAULT_ADDR)returns InputronicGridStvara objekt upravljačkog programa za jedan GRID. Primjer ga deklarira kao InputronicGrid grid; bez adrese, pa koristi zadanu 0x30.
ReturnsObjekt upravljačkog programa.
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.readPad(uint8_t row, uint8_t col)returns boolPita pločicu je li jedna tipka trenutačno pritisnuta, prema njezinu mjestu u mreži. Svaki poziv šalje pločici kratki I2C zahtjev i čita njezin jednobajtni odgovor.
Returnstrue dok je tipka pritisnuta, false kada nije.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
uint8_t | row | Redak, od 0 do 3, odozgo prema dolje. |
uint8_t | col | Stupac, od 0 do 3, slijeva nadesno. |
Sastavljanje cjeline
setup() čeka Serial Monitor, provjerava pločicu pomoću begin() i gasi
LED diode. Svaki prolaz loop() jednom poziva readPad() za svaki redak i
stupac i ispisuje rezultat kao jedan redak po retku.
Za čitanje svih 16 tipki jednim zahtjevom i odgovorom umjesto šesnaest, biblioteka ima i
readAllPads(), koja vraća 16-bitnu masku s postavljenim bitom row * 4 + col za
svaku pritisnutu tipku. Nijedan primjer je ne koristi u ovoj reviziji.