Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
2 måter å administrere et tastatur med 16 knapper med minimum pinner.
Trinn 1: Intro
Jeg har nylig jobbet med en måte å administrere en 4x4 -tastaturmatrise koblet til en Arduino -klon. Settpunktene var:
-å bruke bare 4+1 pinner i stedet for 8 pinner på atmega328p
-å legge til en LCD -skjerm 4x20 CHAR -lenke via I2C (2 pins)
-for å kontrollere digitale og analoge utganger.
Så å ha mange ting å kontrollere med en synd mengde I/O.
Trinn 2: Ting å bruke:
Jeg kjøpte en LCD -skjerm 4x20 tegn og en I2C -moduladapter for å koble skjermen med SDA (A4) og SCL (A5) pinner på min arduino -klon.
Jeg bruker den berømte og nå foreldede MM74C922N: en 8 til 4 -veis omformer som passer til 4x4 matrisetastaturet.
Jeg opprettet en klon av arduino basert på atmega328p og programmert via en HE10 -kontakt (SPI -buss) og en USBasp -kabel.
Trinn 3: Skjematisk og styret:
Styret er laget av:
-LCD -tastaturet kan bare brukes med Arduino IDE, ikke mulig med LDmicro (stige -programmering)
-kortet MM74C922N: 16 trykknapper kodet på 16 binære verdier på 4 bits DCBA. Når du trykker på en knapp: den blå LED -lampen lyser og en verdi vises på DCBA (A er LSB). Når en knapp slippes: Den blå lysdioden lyser og verdien nullstilles på DCBA.
-klonebrettet Arduino atmega238p.
Trinn 4: Bruke LDmicro With Ladder Programming:
Koden som skal legges inn består av 4 verdier blant 16 tastetrykkede verdier, så 16x16x16x16 kombinasjoner.
Når du har tegnet SFC, må du oversette den til LADDER med metoden gitt i en av mine
instruerbare:
www.instructables.com/id/Arduino-tomation-…
Når du har skrevet det, kompilerer du det som xxxx.hex og laster det ned med KHAZAMA -nedlastning.
LCD -skjermen kan ikke programmeres på LDmicro.
Jeg gir LDmicro zip med skissen SERRURE.id i den og KHAZAMA -nedlasteren.
Trinn 5: Bruke Arduino IDE 1.8.x med Mightycore og SMlib:
Jeg oversetter SFC til en statsmaskin. Deretter brukte jeg Arduino IDE med Mightycore og SM -biblioteket inne.
Jeg viser melding som: FEIL, VENTER, LÅS OPP, tilstand nådd, verdien av tastetrykket på LCD -displayet.
Jeg gir deg skissen og SM lib. For Mightycore, se på dette:
www.instructables.com/id/Arduino-18x-Clone …
Trinn 6: For å konkludere:
Dette er to måter å administrere det 16 tastaturet på, og det tok meg flere timer å finne den gode sekvensen, men nå fungerer det fint. Du må respektere disse trinnene:
-1 oppdager et tastetrykk på en stigende kant av DA -pinnen
-2 les verdien generert på DCBA og sammenlign med den gode
Med mindre det absolutt ikke vil fungere.
Takk til all interessant opplæring på nettet.