Indholdsfortegnelse:

Brug af en 4x4 -tastatur med CircuitPython: 4 trin
Brug af en 4x4 -tastatur med CircuitPython: 4 trin

Video: Brug af en 4x4 -tastatur med CircuitPython: 4 trin

Video: Brug af en 4x4 -tastatur med CircuitPython: 4 trin
Video: FORT MPM og Weedmaster M-line varmvandsrensning - ingen brug af kemi. 2024, Juli
Anonim
Brug af en 4x4 -tastatur med CircuitPython
Brug af en 4x4 -tastatur med CircuitPython

Dette billige tastatur tilbyder en enkel metode til numerisk input til dine CircuitPython -projekter. Jeg vil bruge den med en Adafruit ItsyBitsy M0 express.

Du får brug for:

  • Tastatur - min er 4x4
  • ItsyBitsy M0 Express eller lignende bord
  • Mu Editor installeret på din computer
  • USB -kabel til at blinke koden

Trin 1: Sådan fungerer tastaturet

Sådan fungerer tastaturet
Sådan fungerer tastaturet

Tastaturet har 16 enkle, langsomt virkende boblekontakter arrangeret i et 4 by -grid med 8 forbindelser i bunden. Hvis vi taler fra venstre fra 0 til 7, er forbindelserne 0 til 3 forbundet til hver af rækkerne. Tilslutning 0 til den øverste række og forbindelse 3 til den nederste række. Forbindelser 4 til 7 er forbundet til kolonnerne med forbindelse 4 på den venstre kolonne og forbindelse 7 til den højre kolonne. Hver af de 16 kontakter skifter mellem en anden række/kolonne kombination. Hvis vi trykker på tast 7, er den tredje række forbundet med den venstre kolonne. Vi kan mærke, om 5 -tasten, hvis der trykkes på, hvis dens række er hævet HØJ, og vi kan læse en HØJ på dens kolonne. For at gøre dette OUTPUT til rækkerne og INPUT fra kolonnerne.

Vi er nødt til at indstille hver række HIGH efter tur, mens de andre rækker er LOW, skal du læse hver kolonne efter tur, indtil vi får et HIGH -input. Dette styres let med indlejrede sløjfer.

Vi er nødt til at tage højde for, at disse boblekontakter virker ganske langsomt og skal presses ret hårdt for at få dem til at lukke. Scanning af alle 16 kontakter på denne måde kan udføres meget hurtigt, men vi skal scanne gentagne gange for at få et tastetryk. Vi skal også 'debounce' med en kort tidsforsinkelse, så vi ikke får tasterne gentaget hver gang vi trykker på.

Da kontakterne er ret 'squishy', har vi brug for lidt feedback til brugeren for at angive, at et tastetryk er blevet læst. Den indbyggede LED blinker hver gang et tastetryk registreres.

Trin 2: Fysiske forbindelser

Fysiske forbindelser
Fysiske forbindelser

Forbindelser fra venstre til højre på KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 på ItsyBitsy

D7 til D11 angives som OUTPUT'er, mens A5 til A2 konfigureres som INPUT'er med PULLDOWN.

Koden har masser af kommentarer og burde være ret let at følge.

Trin 3: Sådan fungerer Getkey ()

Sådan fungerer Getkey ()
Sådan fungerer Getkey ()

Denne funktion scanner tastaturet efter et enkelt tastetryk. Den kontrollerer hurtigt hver af tasterne maksimalt 10 gange for at se, om en nøglekontakt er lukket. Hvis der trykkes på en tast, returnerer den nøgleværdien og tæller fra venstre til højre fra top til bund (0… 15) Bemærk værdierne for den nederste række: 14, 0, 15, 13 (Hex E, 0, F, D). Hvis der ikke blev trykket på en tast, returneres -999 som en fejlkode, der let kan hentes i hovedprogrammet. Den indbyggede LED blinker, hvis der tages et tastetryk som brugerfeedback. Dette kører temmelig hurtigt, og ventetiden på de-bounce på 0,2 sekunder bruges kun, når der trykkes på en tast.

Trin 4: Getvalue (cifre)

Getvalue (cifre)
Getvalue (cifre)

Denne rutine leverer en n cifret værdi fra de numeriske taster. Den ignorerer de røde taster.

Denne Python -kode kan let konverteres til at køre på en anden enhed, f.eks. En Raspberry Pi, du skal sandsynligvis kun ændre pin -opsætningslinjerne øverst i scriptet.

Lad mig vide, hvis du finder koden nyttig.

Vær sikker og hav det sjovt!

Anbefalede: