Inhoudsopgave:
- Stap 1: Hoe het toetsenbord werkt
- Stap 2: Fysieke verbindingen
- Stap 3: Hoe Getkey() werkt
- Stap 4: Getvalue(cijfers)
Video: Een 4x4 toetsenbord gebruiken met CircuitPython: 4 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Dit goedkope toetsenbord biedt een eenvoudige methode voor numerieke invoer voor uw CircuitPython-projecten. Ik ga het gebruiken met een Adafruit ItsyBitsy M0 express.
Je zal nodig hebben:
- Toetsenbord - de mijne is 4x4
- ItsyBitsy M0 Express of vergelijkbaar bord
- Mu Editor geïnstalleerd op uw computer
- USB-kabel om de code te laten knipperen
Stap 1: Hoe het toetsenbord werkt
Het toetsenbord heeft 16 eenvoudige, langzaam werkende bellenschakelaars die zijn gerangschikt in een 4 per raster met 8 aansluitingen aan de onderkant. Als we van links nummeren van 0 tot 7, zijn de verbindingen 0 tot 3 verbonden met elk van de rijen. Aansluiting 0 op de bovenste rij en aansluiting 3 op de onderste rij. Aansluitingen 4 t/m 7 worden aangesloten op de kolommen met aansluiting 4 op de linkerkolom en aansluiting 7 op de rechterkolom. Elk van de 16 schakelaars maakt een verbinding tussen een andere rij/kolom-combinatie. Als we op toets7 drukken, wordt de derde rij samengevoegd met de linkerkolom. We kunnen voelen of de 5-toets wordt ingedrukt als de rij HOOG wordt verhoogd en we kunnen een HOOG op de kolom lezen. Om dit te doen, OUTPUT naar de rijen en INPUT uit de kolommen.
We moeten elke rij om de beurt HOOG instellen, terwijl de andere rijen LAAG zijn, lees elke kolom om de beurt totdat we een HOGE invoer krijgen. Dit is eenvoudig te beheren met geneste for-lussen.
We moeten er rekening mee houden dat deze bellenschakelaars vrij traag werken en behoorlijk hard moeten worden ingedrukt om ze te sluiten. Het scannen van alle 16 schakelaars op deze manier kan heel snel, maar we moeten herhaaldelijk scannen om een toetsaanslag op te pikken. We moeten ook 'debouncen' met een korte vertraging, zodat we niet elke keer dat we drukken de toetsen herhalen.
Omdat de schakelaars nogal 'squishy' zijn, hebben we wat feedback aan de gebruiker nodig om aan te geven dat een toetsaanslag is gelezen. De ingebouwde LED knippert elke keer dat er een toets wordt ingedrukt.
Stap 2: Fysieke verbindingen
Aansluitingen van links naar rechts op KeyPad0 1 2 3 4 5 6 7
D7 D9 D10 D11 A5 A4 A3 A2 op ItsyBitsy
D7 tot D11 zijn ingesteld als OUTPUT's, terwijl A5 tot A2 zijn ingesteld als INPUT's met PULLDOWN.
De code heeft veel opmerkingen en zou vrij gemakkelijk te volgen moeten zijn.
Stap 3: Hoe Getkey() werkt
Deze functie scant het toetsenbord op een enkele toetsdruk. Het controleert snel elk van de sleutels om de beurt, maximaal 10 keer om te zien of een sleutelschakelaar gesloten is. Als een toets wordt ingedrukt, wordt de toetswaarde geretourneerd, geteld van links naar rechts van boven naar beneden (0 …15) Let op de waarden voor de onderste rij: 14, 0, 15, 13 (Hex E, 0, F, D). Als er geen toets werd ingedrukt, wordt -999 geretourneerd als een foutcode die gemakkelijk kan worden opgehaald in het hoofdprogramma. De ingebouwde LED knippert als een toetsaanslag wordt opgepikt als feedback van de gebruiker. Dit gaat vrij snel en de de-bounce wachttijd van 0,2 seconden wordt alleen gebruikt als er een toets wordt ingedrukt.
Stap 4: Getvalue(cijfers)
Deze routine levert een n-cijferige waarde van de numerieke toetsen. Het negeert de rode toetsen.
Deze Python-code kan eenvoudig worden geconverteerd om op een ander apparaat te draaien, zoals een Raspberry Pi, je hoeft waarschijnlijk alleen de pin-setupregels bovenaan het script te wijzigen.
Laat het me weten als je de code nuttig vindt.
Blijf veilig en veel plezier!
Aanbevolen:
Een USB-hub maken van een oud toetsenbord ?♻: 3 stappen (met afbeeldingen)
Een USB-hub maken van een oud toetsenbord ?♻: As-Salaamu-Alaikum! Ik heb een oud toetsenbord dat niet in gebruik was en ook de toetsen waren een beetje defect. Dus besloot ik er iets aan te doen. Ik nam de printplaat en zette het om in "USB Hub".Het was gemakkelijk
Een Arduino programmeren Een andere Arduino gebruiken om een scrollende tekst weer te geven zonder een bibliotheek - Ajarnpa
Een Arduino programmeren Een andere Arduino gebruiken om een scrollende tekst weer te geven zonder een bibliotheek: Sony Spresense of Arduino Uno zijn niet zo duur en vereisen niet veel stroom. Als uw project echter beperkingen heeft op het gebied van stroom, ruimte of zelfs budget, kunt u overwegen om Arduino Pro Mini te gebruiken. In tegenstelling tot Arduino Pro Micro, is Arduino Pro Mi
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 6 stappen
Voorbeeld van een kluisje met Arduino Matrix-toetsenbord 4x4: 2 manieren om een toetsenbord met 16 drukknoppen te beheren met een minimum aan pinnen
Een USB-toetsenbord installeren in een OLPC XO-laptop, fase I: 8 stappen (met afbeeldingen)
Een USB-toetsenbord installeren in een OLPC XO-laptop, fase I: ik weet niet hoe het met u zit, maar ik kan siliconen zeker van het echte werk onderscheiden. Hier leest u hoe u de gelei kunt dumpen en een normaal USB-toetsenbord met toetsen en veren in een OLPC XO-laptop kunt persen. Dit is "fase I" -- het toetsenbord in de l
Apple aluminium toetsenbord schoonmaken of een ander soft-touch toetsenbord - Ajarnpa
Apple aluminium toetsenbord schoonmaken… of een ander zacht aanvoelend toetsenbord: hoe schoon u of ik ook proberen onze aluminium appeltoetsenborden te houden, ze worden na een jaar of zo smerig. Dit instructable is om u te helpen het op te ruimen. Wees voorzichtig, want ik ben niet verantwoordelijk als je toetsenbord breekt terwijl je dit doet….ZUIGT F