Čitanje tipki
Što prikazuje ovaj primjer
Svih 16 površina za dodir čita se svakih 50 ms i ispisuje kao karta 4x4 u shellu: X za
pritisnutu površinu, . za otpuštenu. LED diode ostaju ugašene.
Kod primjera
Ovo je Examples/ReadButtons.py iz zadanog modula, bez izmjena. Spremite ga na
svoju pločicu i pokrenite.
# FILE: ReadButtons.py
# AUTHOR: Josip Šimun Kuči @ Soldered
# BRIEF: Example showing how to read all 16 buttons on the Inputronic GRID.
# Reads all 16 button states every 50 ms and prints a 4x4 grid map.
# Pressed buttons show 'X'; released buttons show '.'.
# 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()
print("Inputronic GRID ready.\n")
grid.clearLEDs()
while True:
print("+---------+")
for row in range(4):
print("| ", end="")
for col in range(4):
print("X " if grid.readPad(row, col) else ". ", end="")
print("|")
print("+---------+\n")
time.sleep_ms(50)
🔗Otvorite cijeli primjer
Examples/ReadButtons.py u commitu 36d3def
Očekivani rezultat kada ništa nije pritisnuto:
Inputronic GRID ready.
+---------+
| . . . . |
| . . . . |
| . . . . |
| . . . . |
+---------+
Nakon svakih 50 ms slijedi nova karta. Dok držite pritisnutu površinu, X zamjenjuje
njezinu .: gornji redak karte je redak 0, a prvi znak u retku je stupac 0.
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 kao None, stvara I2C(0, scl=Pin(22), sda=Pin(21)) na portovima koje modul prepoznaje (ESP32, ESP8266 i jedna Soldered pločica), a na portu koji ne prepoznaje podiže iznimku.
ReturnsObjekt upravljačkog programa. Podiže iznimku s porukom 'Inputronic GRID not found. Check wiring.' kada pločica ne odgovara.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
I2C | i2c | Gotov objekt machine.I2C. Neobavezno. |
int | address | I2C adresa pločice. Neobavezno, prema zadanim postavkama 0x30. |
grid.clearLEDs()returns NoneGasi svih 16 LED dioda. Isto je kao setAllLEDs(0, 0, 0).
ReturnsNišta.
grid.readPad(row, col)returns boolPita pločicu je li jedna površina trenutačno pritisnuta, prema njezinu mjestu u mreži. Svaki poziv šalje pločici kratak I2C zahtjev i čita njezin jednobajtni odgovor.
ReturnsTrue dok je površina pritisnuta. False kada nije ili kada I2C razmjena ne uspije.
Parametri
| Tip | Naziv | Opis |
|---|---|---|
int | row | Redak, od 0 do 3, odozgo prema dolje. |
int | col | Stupac, od 0 do 3, slijeva nadesno. |
Sastavljanje cjeline
Primjer stvara objekt, ispisuje njegovu poruku o spremnosti i gasi LED diode.
Svaki prolazak petlje jednom poziva readPad() za svaki redak i stupac te
ispisuje rezultat kao jedan redak po retku karte.
Da biste svih 16 površina pročitali jednim zahtjevom i odgovorom umjesto šesnaest, modul ima i
readAllPads(), koja vraća 16-bitni broj s postavljenim bitom row * 4 + col za
svaku pritisnutu površinu. Nijedan primjer ga ne koristi u ovom commitu.