Sommario:

Utilizzo di una tastiera 4x4 con CircuitPython: 4 passaggi
Utilizzo di una tastiera 4x4 con CircuitPython: 4 passaggi

Video: Utilizzo di una tastiera 4x4 con CircuitPython: 4 passaggi

Video: Utilizzo di una tastiera 4x4 con CircuitPython: 4 passaggi
Video: Raspberry Pi Pico Tutorial - 4x4 Matrix Keypad - MicroPython 2024, Luglio
Anonim
Utilizzo di una tastiera 4x4 con CircuitPython
Utilizzo di una tastiera 4x4 con CircuitPython

Questa tastiera economica offre un metodo semplice di input numerico per i tuoi progetti CircuitPython. Lo userò con un Adafruit ItsyBitsy M0 express.

Avrai bisogno:

  • Tastiera: la mia è 4x4
  • ItsyBitsy M0 Express o scheda simile
  • Mu Editor installato sul tuo computer
  • Cavo USB per far lampeggiare il codice

Passaggio 1: come funziona la tastiera

Come funziona la tastiera
Come funziona la tastiera

La tastiera ha 16 interruttori a bolla semplici e ad azione lenta disposti in una griglia 4 con 8 connessioni nella parte inferiore. Se numeriamo da sinistra da 0 a 7, le connessioni da 0 a 3 sono collegate a ciascuna delle righe. Connessione 0 alla riga superiore e connessione 3 alla riga inferiore. Gli attacchi da 4 a 7 sono collegati alle colonne con attacco 4 sulla colonna di sinistra e attacco 7 sulla colonna di destra. Ciascuno dei 16 interruttori crea un'unione tra una diversa combinazione riga/colonna. Se premiamo il tasto 7 la terza riga viene unita alla colonna di sinistra. Possiamo percepire se il tasto 5 viene premuto se la sua riga viene alzata in alto e possiamo leggere un ALTO sulla sua colonna. Per fare questo effettuiamo OUTPUT alle righe e INPUT dalle colonne.

Dobbiamo impostare a turno ogni riga HIGH, mentre le altre righe sono LOW, leggiamo ogni colonna a turno finché non otteniamo un input HIGH. Questo è facilmente gestibile con i cicli for annidati.

Dobbiamo tenere in considerazione il fatto che questi interruttori a bolla agiscono piuttosto lentamente e devono essere premuti abbastanza forte per farli chiudere. La scansione di tutti e 16 gli interruttori in questo modo può essere eseguita molto rapidamente, ma dobbiamo eseguire la scansione ripetutamente per rilevare la pressione di un tasto. Abbiamo anche bisogno di "antirimbalzare" con un breve ritardo in modo da non avere i tasti che si ripetono ogni volta che si preme.

Dato che gli interruttori sono piuttosto "morbidi", abbiamo bisogno di un feedback per l'utente per indicare che è stata letta una pressione di un tasto. Il LED integrato lampeggia ogni volta che viene rilevata la pressione di un tasto.

Passaggio 2: connessioni fisiche

Connessioni fisiche
Connessioni fisiche

Connessioni da sinistra a destra su KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 su ItsyBitsy

Da D7 a D11 sono impostati come USCITE mentre da A5 a A2 sono impostati come INGRESSI con PULLDOWN.

Il codice ha molti commenti e dovrebbe essere abbastanza facile da seguire.

Passaggio 3: come funziona Getkey()?

Come funziona Getkey()
Come funziona Getkey()

Questa funzione esegue la scansione della tastiera per una singola pressione di un tasto. Controlla rapidamente ciascuna delle chiavi a turno un massimo di 10 volte per vedere se un interruttore a chiave è chiuso. Se viene premuto un tasto, restituisce il valore del tasto, contando da sinistra a destra dall'alto verso il basso (0 …15) Annotare i valori per la riga inferiore: 14, 0, 15, 13 (Hex E, 0, F, D). Se non è stato premuto alcun tasto restituisce -999 come codice di errore che può essere facilmente rilevato nel programma principale. Il LED integrato lampeggia se viene rilevata la pressione di un tasto come feedback dell'utente. Questo funziona abbastanza velocemente e l'attesa antirimbalzo di 0,2 secondi viene utilizzata solo quando viene premuto un tasto.

Passaggio 4: ottieni valore (cifre)

Ottienivalore(cifre)
Ottienivalore(cifre)

Questa routine fornisce un valore di n cifre dai tasti numerici. Ignora i tasti rossi.

Questo codice Python può essere facilmente convertito per essere eseguito su un altro dispositivo, come un Raspberry Pi, probabilmente devi solo modificare le linee di configurazione dei pin nella parte superiore dello script.

Per favore fatemi sapere se trovate utile il codice.

Stai sicuro e divertiti!

Consigliato: