Skip to main content

Č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:

ShellMicroPython
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 InputronicGrid

Stvara 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

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

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

ReturnsNišta.

grid.readPad(row, col)returns bool

Pita 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

TipNazivOpis
introwRedak, od 0 do 3, odozgo prema dolje.
intcolStupac, 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.