Innehållsförteckning:

Använda en 4x4 -knappsats med CircuitPython: 4 steg
Använda en 4x4 -knappsats med CircuitPython: 4 steg

Video: Använda en 4x4 -knappsats med CircuitPython: 4 steg

Video: Använda en 4x4 -knappsats med CircuitPython: 4 steg
Video: комбинированная токарная техника, переделка зубчатых колес на токарном станке | вал шестерня 4х4 2024, November
Anonim
Använda en 4x4 -knappsats med CircuitPython
Använda en 4x4 -knappsats med CircuitPython

Denna billiga knappsats erbjuder en enkel metod för numerisk inmatning till dina CircuitPython -projekt. Jag ska använda den med en Adafruit ItsyBitsy M0 express.

Du kommer behöva:

  • Knappsats - min är 4x4
  • ItsyBitsy M0 Express eller liknande bräda
  • Mu Editor installerad på din dator
  • USB -kabel för att blinka koden

Steg 1: Hur knappsatsen fungerar

Hur knappsatsen fungerar
Hur knappsatsen fungerar

Knappsatsen har 16 enkla, långsamt fungerande bubblomkopplare arrangerade i ett 4 -by -grid med 8 anslutningar längst ner. Om vi numrerar från vänster från 0 till 7 är anslutningarna 0 till 3 anslutna till var och en av raderna. Anslutning 0 till översta raden och anslutning 3 till den nedre raden. Anslutningar 4 till 7 är anslutna till kolumnerna med anslutning 4 på den vänstra kolumnen och anslutning 7 till den högra kolumnen. Var och en av de 16 switcharna gör en koppling mellan en annan rad/kolumnkombination. Om vi trycker på tangent7 förenas den tredje raden med den vänstra kolumnen. Vi kan känna om 5 -tangenten om den trycks om dess rad höjs HÖG och vi kan läsa en HÖG i kolumnen. För att göra detta OUTPUT till raderna och INPUT från kolumnerna.

Vi måste ställa in varje rad HIGH i tur och ordning, medan de andra raderna är LOW, läs varje kolumn i tur och ordning tills vi får en HIGH -ingång. Detta hanteras enkelt med kapslade slingor.

Vi måste ta hänsyn till det faktum att dessa bubbelbrytare verkar ganska långsamt och måste pressas ganska hårt för att få dem att stänga. Att skanna alla 16 omkopplare på detta sätt kan göras mycket snabbt men vi måste skanna upprepade gånger för att få ett knapptryck. Vi måste också 'debounce' med en kort tidsfördröjning så att vi inte får tangenterna upprepade varje gång vi trycker på.

Eftersom omkopplarna är ganska "squishy" behöver vi lite feedback till användaren för att indikera att en knapptryckning har lästs. Den inbyggda lysdioden blinkar varje gång ett knapptryck avkänns.

Steg 2: Fysiska anslutningar

Fysiska anslutningar
Fysiska anslutningar

Anslutningar vänster till höger på KeyPad0 1 2 3 4 5 6 7

D7 D9 D10 D11 A5 A4 A3 A2 på ItsyBitsy

D7 till D11 anges som OUTPUTs medan A5 till A2 konfigureras som INPUTs med PULLDOWN.

Koden har gott om kommentarer och borde vara ganska lätt att följa.

Steg 3: Hur Getkey () fungerar

Hur Getkey () fungerar
Hur Getkey () fungerar

Denna funktion skannar knappsatsen för ett enda knapptryck. Den kontrollerar snabbt var och en av tangenterna i sin tur maximalt 10 gånger för att se om en nyckelbrytare är stängd. Om du trycker på en tangent returnerar den nyckelvärdet och räknar från vänster till höger uppifrån och ner (0… 15) Notera värdena för den nedre raden: 14, 0, 15, 13 (Hex E, 0, F, D). Om ingen tangent trycks in returnerar den -999 som en felkod som enkelt kan plockas upp i huvudprogrammet. Den inbyggda lysdioden blinkar om en knapptryckning tas upp som feedback från användare. Detta går ganska snabbt och avstängnings väntetiden på 0,2 sekunder används bara när du trycker på en knapp.

Steg 4: Getvalue (siffror)

Getvalue (siffror)
Getvalue (siffror)

Denna rutin ger ett n -siffrigt värde från sifferknapparna. Den ignorerar de röda knapparna.

Den här Python -koden kan enkelt konverteras för att köras på en annan enhet, till exempel en Raspberry Pi, du behöver förmodligen bara ändra stiftkonfigurationslinjerna högst upp i skriptet.

Meddela mig om du tycker att koden är användbar.

Var säker och ha kul!

Rekommenderad: