Cuprins:

Utilizarea unui KeyPad 4x4 cu CircuitPython: 4 pași
Utilizarea unui KeyPad 4x4 cu CircuitPython: 4 pași

Video: Utilizarea unui KeyPad 4x4 cu CircuitPython: 4 pași

Video: Utilizarea unui KeyPad 4x4 cu CircuitPython: 4 pași
Video: Cum se utilizează tastatura Arduino 4x4 descărcați codul 2024, Noiembrie
Anonim
Utilizarea unui KeyPad 4x4 cu CircuitPython
Utilizarea unui KeyPad 4x4 cu CircuitPython

Această tastatură ieftină oferă o metodă simplă de introducere numerică pentru proiectele dvs. CircuitPython. Îl voi folosi cu un Adafruit ItsyBitsy M0 express.

Vei avea nevoie:

  • Tastatura - a mea este 4x4
  • ItsyBitsy M0 Express sau placa similară
  • Mu Editor instalat pe computer
  • Cablu USB pentru a bloca codul

Pasul 1: Cum funcționează tastatura

Cum funcționează tastatura
Cum funcționează tastatura

Tastatura are 16 comutatoare cu bule simple, cu acțiune lentă, dispuse într-o rețea cu 4 rețele, cu 8 conexiuni în partea de jos. Dacă numerotăm de la stânga de la 0 la 7, conexiunile 0 la 3 sunt conectate la fiecare dintre rânduri. Conexiunea 0 la rândul de sus și conexiunea 3 la rândul de jos. Conexiunile 4 la 7 sunt conectate la coloane cu conexiunea 4 pe coloana din stânga și conexiunea 7 la coloana din dreapta. Fiecare dintre cele 16 comutatoare face o îmbinare între o combinație diferită de rânduri / coloane. Dacă apăsăm tasta 7 al treilea rând este unit cu coloana din stânga. Putem simți dacă tasta 5 este apăsată dacă rândul său este ridicat HIGH și putem citi un HIGH pe coloana sa. Pentru a face acest lucru, ieșim pe rânduri și intrăm din coloane.

Trebuie să setăm fiecare rând HIGH pe rând, în timp ce celelalte rânduri sunt LOW, citiți fiecare coloană pe rând până când obținem o intrare HIGH. Acest lucru este ușor de gestionat cu imbricate pentru bucle.

Trebuie să ținem cont de faptul că aceste comutatoare cu bule acționează destul de lent și trebuie apăsate destul de greu pentru a le face aproape. Scanarea tuturor celor 16 comutatoare în acest mod se poate face foarte repede, dar trebuie să scanăm în mod repetat pentru a prelua apăsarea unei taste. De asemenea, trebuie să „dezabonim” cu o întârziere scurtă, astfel încât să nu primim taste care se repetă de fiecare dată când apăsăm.

Deoarece comutatoarele sunt destul de „strâmbe”, avem nevoie de feedback către utilizator pentru a indica faptul că a fost citită o apăsare de tastă. LED-ul încorporat este intermitent de fiecare dată când se apasă o tastă.

Pasul 2: Conexiuni fizice

Conexiuni fizice
Conexiuni fizice

Conexiuni de la stânga la dreapta pe KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 pe ItsyBitsy

D7 până la D11 sunt stabilite ca OUTPUT-uri, în timp ce A5-A2 sunt configurate ca INPUT-uri cu PULLDOWN.

Codul conține o mulțime de comentarii și ar trebui să fie destul de ușor de urmat.

Pasul 3: Cum funcționează Getkey ()

Cum funcționează Getkey ()
Cum funcționează Getkey ()

Această funcție scanează tastatura pentru a apăsa o singură tastă. Verifică rapid fiecare tastă la rândul său de maximum 10 ori pentru a vedea dacă un comutator de chei este închis. Dacă este apăsată o tastă, returnează valoarea tastei, numărând de la stânga la dreapta de sus în jos (0 … 15) Observați valorile pentru rândul de jos: 14, 0, 15, 13 (Hex E, 0, F, D). Dacă nu a fost apăsată nicio tastă, returnează -999 ca un cod de eroare care poate fi preluat cu ușurință în programul principal. LED-ul încorporat clipește dacă este apăsată o tastă ca feedback al utilizatorului. Acest lucru se execută destul de repede și așteptarea de respingere de 0,2 secunde este utilizată numai atunci când este apăsată o tastă.

Pasul 4: Getvalue (cifre)

Getvalue (cifre)
Getvalue (cifre)

Această rutină furnizează o valoare de n cifre din tastele numerice. Acesta ignoră tastele roșii.

Acest cod Python poate fi ușor convertit pentru a rula pe un alt dispozitiv, cum ar fi un Raspberry Pi, probabil că trebuie doar să schimbați liniile de configurare a pinului din partea de sus a scriptului.

Vă rog să-mi spuneți dacă vi se pare util codul.

Rămâi în siguranță și distrează-te!

Recomandat: