Innehållsförteckning:
- Steg 1: Hur knappsatsen fungerar
- Steg 2: Fysiska anslutningar
- Steg 3: Hur Getkey () fungerar
- Steg 4: Getvalue (siffror)
Video: Använda en 4x4 -knappsats med CircuitPython: 4 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:40
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
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
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
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)
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:
Använda infraröd sensor med Arduino: 8 steg (med bilder)
Använda infraröd sensor med Arduino: Vad är en infraröd (aka IR) sensor? En IR -sensor är ett elektroniskt instrument som skannar IR -signaler i specifika frekvensområden definierade av standarder och omvandlar dem till elektriska signaler på dess utgångsstift (kallas vanligtvis signalstift) . IR -signalen
CCTV -kamera med nodMCU + gammal bärbar kameramodul (med och utan att använda Blynk): 5 steg
CCTV -kamera med NodeMCU + gammal bärbar kameramodul (med och utan att använda Blynk): Hej killar! I denna instruerbara, ska jag visa dig hur jag använde en gammal bärbar kameramodul och nodeMCU för att göra något liknande CCTV
Hemmautomation med ESP8266 WiFi utan att använda Blynk !: 24 steg (med bilder)
Hemmautomation med ESP8266 WiFi utan att använda Blynk !: För det första vill jag tacka alla för att jag blev en vinnare i Automation Contest 2016 för denna INSTRUKTABELA. Så, som jag lovade dig, här är instruktionerna för att styra hushållsapparater med ESP8266 WiFi -modul
Neopixel Ws2812 Rainbow LED-glöd med M5stick-C - Köra Rainbow på Neopixel Ws2812 Använda M5stack M5stick C Använda Arduino IDE: 5 steg
Neopixel Ws2812 Rainbow LED-glöd med M5stick-C | Köra Rainbow på Neopixel Ws2812 Använda M5stack M5stick C Använda Arduino IDE: Hej killar i denna instruktioner kommer vi att lära oss hur man använder neopixel ws2812 lysdioder eller ledremsor eller ledmatris eller ledring med m5stack m5stick-C utvecklingsbräda med Arduino IDE och vi kommer att göra ett regnbågsmönster med det
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: 13 steg (med bilder)
Grafik på en SSD1306 I2C OLED 128x64 -skärm med CircuitPython med en Itsybitsy M4 Express: SSD1306 OLED -skärmen är en liten (0,96 "), billig, allmänt tillgänglig, I2C, svartvit grafisk skärm med 128x64 pixlar, som är lätt att koppla ihop (endast 4 ledningar) till mikroprocessorutvecklingskort som en Raspberry Pi, Arduino eller