Innholdsfortegnelse:

Bruke en 4x4 -tastatur med CircuitPython: 4 trinn
Bruke en 4x4 -tastatur med CircuitPython: 4 trinn

Video: Bruke en 4x4 -tastatur med CircuitPython: 4 trinn

Video: Bruke en 4x4 -tastatur med CircuitPython: 4 trinn
Video: COSY SOLO Camping setup in the RAIN [ ASMR ] 2024, Juni
Anonim
Bruke en 4x4 -tastatur med CircuitPython
Bruke en 4x4 -tastatur med CircuitPython

Dette rimelige tastaturet tilbyr en enkel metode for numerisk inndata til CircuitPython -prosjektene dine. Jeg skal bruke den med en Adafruit ItsyBitsy M0 express.

Du vil trenge:

  • Tastatur - min er 4x4
  • ItsyBitsy M0 Express eller lignende brett
  • Mu Editor installert på datamaskinen din
  • USB -kabel for å blinke koden

Trinn 1: Slik fungerer tastaturet

Slik fungerer tastaturet
Slik fungerer tastaturet

Tastaturet har 16 enkle, saktevirkende boblebrytere arrangert i et 4 -by -grid med 8 tilkoblinger nederst. Hvis vi nummererer fra venstre fra 0 til 7, er tilkoblingene 0 til 3 koblet til hver av radene. Tilkobling 0 til øverste rad og tilkobling 3 til nederste rad. Tilkoblinger 4 til 7 er koblet til kolonnene med tilkobling 4 på venstre kolonne og tilkobling 7 til høyre kolonne. Hver av de 16 bryterne gjør en sammenføyning mellom en annen rad/kolonne -kombinasjon. Hvis vi trykker på tast 7, kobles den tredje raden til venstre kolonne. Vi kan kjenne om 5 -tasten hvis den trykkes hvis raden er hevet HØY og vi kan lese en HØY på kolonnen. For å gjøre dette OUTPUT til radene og INPUT fra kolonnene.

Vi må sette hver rad HIGH etter tur, mens de andre radene er LOW, les hver kolonne etter tur til vi får en HIGH -inngang. Dette håndteres enkelt med nestede sløyfer.

Vi må ta hensyn til det faktum at disse boblebryterne virker ganske sakte og må presses ganske hardt for å få dem til å lukke. Skanning av alle 16 brytere på denne måten kan gjøres veldig raskt, men vi må skanne flere ganger for å få et tastetrykk. Vi må også 'debounce' med en kort tidsforsinkelse, slik at vi ikke får tastene til å gjenta hver gang vi trykker.

Siden bryterne er ganske "squishy", trenger vi noen tilbakemeldinger til brukeren for å indikere at et tastetrykk er lest. Den innebygde LED-en blinker hver gang et tastetrykk registreres.

Trinn 2: Fysiske forbindelser

Fysiske forbindelser
Fysiske forbindelser

Tilkoblinger fra venstre til høyre på KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 på ItsyBitsy

D7 til D11 er angitt som OUTPUTs mens A5 til A2 er satt opp som INPUTs med PULLDOWN.

Koden har mange kommentarer og bør være ganske lett å følge.

Trinn 3: Hvordan fungerer Getkey ()

Slik fungerer Getkey ()
Slik fungerer Getkey ()

Denne funksjonen skanner tastaturet for et enkelt tastetrykk. Den kontrollerer raskt hver av tastene maks 10 ganger for å se om en nøkkelbryter er lukket. Hvis du trykker på en tast, returnerer den nøkkelverdien, og teller fra venstre til høyre fra topp til bunn (0… 15) Legg merke til verdiene for den nederste raden: 14, 0, 15, 13 (sekskant E, 0, F, D). Hvis ingen tast ble trykket, returnerer den -999 som en feilkode som enkelt kan hentes i hovedprogrammet. Den innebygde LED-en blinker hvis et tastetrykk blir hentet som tilbakemelding fra brukeren. Dette går ganske raskt, og ventetiden på avvisning på 0,2 sekunder brukes bare når du trykker på en tast.

Trinn 4: Getvalue (sifre)

Getvalue (sifre)
Getvalue (sifre)

Denne rutinen gir en n sifferverdi fra de numeriske tastene. Den ignorerer de røde tastene.

Denne Python -koden kan enkelt konverteres til å kjøre på en annen enhet, for eksempel en Raspberry Pi, du trenger sannsynligvis bare å endre pin -oppsettlinjene øverst i skriptet.

Gi meg beskjed hvis du synes koden er nyttig.

Vær trygg og ha det gøy!

Anbefalt: