Arduino skattjakt (7 / 12 steg)

Steg 7: Tangentbordet...



För dem som aldrig har använt en matris typ knappsats är hur de fungerar.

I ett försök att minska antalet kablar som kommer ut från en knappfunktion, fastställs ledare i rader och kolumner. Denna typ av knappsatsen tar vissa Kung Fu att få dem att fungera men det minskar också antalet stift som du behöver använda.

I en standard fast knappfunktion har du en gemensam tråd och en tråd för varje knapp. I detta fall det skulle vara totalt 17 ledningar.

I en matris fast tangentbordet du har endast 8. Här är fångsten. Mikrokontrollanter har 4 stift som utgångar (rader) och 4 stift som insatsvaror (kolumnerna) kan du bara läsa 4 knappar på en gång.

"Vad???!!! Vad bra är att jag köpte en 12 knapp knappsats till mig!"

Bara en i raden är påslagen i taget. Om exempelvis den första raden är aktiverat sätter detta makt på ena sidan av varje knapp på den översta raden (1,2,3, A) om 1 trycks då vet du makt flödar från utgång till ingång 1 1. Om 2 trycks då vet du att makt flödar från resultat 1 till ingång 2. Om 3 trycks sedan makt flödar från 1 utgång till ingång 3, och om A trycks sedan flödar makt från 1 utgång till ingång 4.

Om du skulle vända utgång skulle 2 på som sätta makt på ena sidan av varje knapp på andra raden (4,5,6, B) om 4 trycks energiflöden från utgång till ingång 1 2. Om 5 trycks energiflöden från utgång 2 till ingång 2. Om 6 är pressade då makt flöden från utgång 2 till ingång 3 och slutligen om B trycks energiflöden från utgång 2 till ingång 4.

Hur läser jag hela tangentbordet du frågar. En annan bra fråga gräshoppa. Här är hur det fungerar. Micro controller tänker mycket snabbt, så vad som händer är detta. Ro en aktiveras som är ansluten till 1,2,3, A och alla fyra ingångarna är undersökt. Om ingen makt är som finns vid någon av ingångarna då den raden är avstängd och sedan ror 2 är påslagen som är knuten till 4,5,6, B. Sedan är alla fyra ingångar tittade på igen. Om ingen makt noteras på ingångarna så att raden är avstängd och rad tre är påslagen som är knuten till 7,8,9, är C och ingångarna igen tittade på. Om ingen makt noteras igen på ingångarna så att raden bort och den fjärde raden är påslagen som är ansluten till *, 0, #, D. och igen ingångarna är tittade på för makt. Om ingen makt noteras sedan rad 4 är avstängd och processer startar över igen med ro en.

* Viktig del - om du slår på mer än en rad och en knapp trycks då det kunde vara två möjligheter om vilken knapp trycks eftersom det finns mer än en källa makt kommer från två olika rader. Säga du slår på rad 1 och rad 2. Om du trycker på knappen 1 kommer sedan makt att ses på ingång 1. Om du trycker på knappen 4 sedan se input 1 makt igen. Jag fattar?

Här är där det blir coolt. Micro controller rör sig så snabbt oavsett hur snabbt du skjuta knappen Skanna visas som fingret på en knapp en massa gånger innan du kan få ditt finger av knappen. I programmet du skriver en if sats. "Om mitt finger som syns på en knapp och sedan stoppa sökningen och vänta på knappen vara släppt (här håller dig från att komma in 5000 knapp pressar innan du kan få finger.) När fingret släpper knappen sedan använda på rad och kolumndiagram som en variabel för att återspegla vad många trycktes. Gå sedan tillbaka till scanning knappsatsen igen väntar ett annat tryck på knapp. En om uttalande måste skrivas för varje kombination av rad och kolumn.

Jag kan höra några av er säger "Det finns ett bibliotek för som redan gjorts, dess kallas keypad.h" som är korrekt, det finns, men jag ville inte att ständigt vara skanning för en knapptryckning, endast vid vissa tider och på så sätt är det lite lättare för mig att kontrollera, eller åtminstone i mitt huvud är det. Skanningen är skriven till en separat funktion från loop funktion. Vid vissa tider under slingan om jag vill leta efter pressar nyckel då jag skicka programmet till den funktion som sedan körs på scan en gång. Jag har skrivit min loop för att gå vidare i stegen och ignorera resten. Så när slingan kommer runt den och att steget är aktiv sedan sökningen kallas för. Mestadels lätt squeezy.

Se Steg
Relaterade Ämnen

Skattjakt för vuxna (följeslagare till Arduino skattjakt Box)

Jag har alltid gillat filmer som National Treasure och liknande. De som har ett team av människor som kör hela försöker lösa en gåta eller en sträng med gåtor för att få guld, få flickan, rädda världen, bli direkt rik, etc.Jag har tre vuxna barn och...

Arduino / Raspberry Pi internetradio

Detta är ett projekt för Arduino och Raspberry Pi att göra en Internet Radio, syftar till att mellanliggande skicklighetsnivå. Viss erfarenhet med Linux användning kommer att vara till nytta (eller tillgång till någon som kan hjälpa till om det behöv...

RFIDuino - med en Arduino & RFID-läsare för att göra ett pussel GeoCache

jag njuta av både Geocaching och elektronik och har gjort ett par elektroniska pussel cachar med en Arduino.Min senaste skapelse (med hjälp av en kollega cacher för koden) är att använda en Arduino och RFID-läsare för att göra ett pussel geocache vi...

Göra en bärbara streckkodsläsare med en arduino och en cuecat

runt om vänden av århundradet, det var ett företag vars affärsmodell ingår ger bort gratis streckkodsläsare som emulerar tangentbord. En relativt enkel mod till dessa cuecat skannrar bort krypteringen och gjorde dem lämpliga för skanning av streckkod...

Hårda & mjuk Suceava 2015 "skattjakt"

Slutprodukten är en kompakt robust inbäddade system som slutfört uppgifterna i enlighet med H & S 2015 edition. I systemet ingår en Intel Edison styrelse, en Arduino Pro Mini och sensorer för att samla in data från den miljö och biometriska meassurem...

Barns tyg boken (med LilyPad Arduino)

som en sewable (mjuk) kretsar projekt, jag skapade en Broadway tema tyg bok. Jag blev inspirerad av en personlig tyg bok med familjemedlem bilder som min unga kusin fick. För att göra boken lyser upp och spela låtar, använde jag Lilypad Arduino tekni...

Ljud skattjakt

Alla älskar skattjakter. Kör på en strävan att hitta din nuvarande gör någon gåva bättre. Så bara för skojs skull designade jag min egen variant av spelet. Jag kombinerade en Arduino mikrokontroller med en Adafruit våg sköld att göra ett ljud skattja...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Android och Arduino SMS-baserade Home Automation

Nyligen fick jag en relativt billig Kvadranten Band GSM/GPRS-modul för att spela med. Det är en SIM800L modul, och kommunicerar med alla micro via en seriell port. Det kom med en panel mount antenn.Jag beslutade att bygga ett enkelt SMS Controller sy...

Arduino temperaturreglerade Fan

Jag och några medlemmar har beslutat att för sommaren, skulle det vara fördelaktigt att skapa en fläkt som tänds vid 70 grader Fahrenheit och fortsätter att öka i intensitet med värmen. Så det är vad vi gjorde. :)Steg 1: Gears Det första vi laser skä...

Sable 2015 CNC + Arduino + GRBL = LunchBox CNC

Detta är min 2: a Instructable och min 2nd Arduino powered CNC, den här gången jag upp svårighetsgraden genom att besluta att göra en själv innehöll CNC enhet av design min egen elektronik kapslingar och placeringar.Stegen i detta Instructable är mer...

Arduino kontrollerade Beehive Fumigator / Air Freshener

Inom det relativa kaoset av mina inhemska arrangemang har jag en liten oas i perfekt ordning. En sak som jag kan kalla "organiserade" och "fullt fungerande". En sak jag kan röra och vet att det är tillförlitliga och färdiga för åtgärde...

Hemmabyggd (DIY) CNC router - baserade Arduino (GRBL)

Redan för några var månader eller år, jag planerar att bygga mitt eget CNC fräsmaskin. Nu bestämde jag mig för det var tid att göra det! Jag läser mycket om andra DIY projekt och till slut jag gillade designen från Arduino CNC intstructable som jag h...

12 tim binär klocka, timmar och minuter bara, DS1307 RTC, i2C, Arduino-Nano

Ett tag nu har jag velat göra en binär klocka, men efter att ha tittat jag bestämde mig något bara lite annorlunda. Så jag beslöt att endast visar timmar och minuter och endast visa en 12 timmars klocka, innebär detta du bara behöver 3 kolumner och m...

Arduino 7-Seg Display Clock

Detta är en Auduino klocka gjorde med Sunfounder kit. Detta är en riktigt cool projekt och lätt att göra!Steg 1: material Endast 9 material krävs för montering av arduino powered klockanSkärbrädaSladdarUSB-kabelTråd-kontakterCardstock boxSju segment...

Arduino binär klocka med LED-matris

Denna webbplats har många fina inlägg som beskriver byggandet av armbandsur. Jag är oerhört skakig, emellertid, och har svårt med någon lödning. Jag ville därför göra mig från en 8 x 8 MAX7219-kontrollerade ledde matrisen.Steg 1: Läsa BCD binär klock...

Arduino klockan

Ahmed Mohamed gjorde en väckarklocka som misstog för en bomb. Poliser trodde inte honom när han sa till dem att det inte var en bomb, men en väckarklocka. I min klass kände vi att antagandet var orättvist och för att visa vårt stöd vi skapat klockor...

Arduino IoT väder klocka

I detta Instructable kommer vi att bygga en klocka som även visar i och utanför klimatförhållanden.Jag brukade ha en cool liten klocka som, förutom talande tiden, visas även temperaturen i huset, datumet och den utvändiga temperaturen via en sensor f...

Arduino VFD Display klocka handledning - en Guide till VFD displayer

... + Lite om VFDsMinns du (fortfarande) visning av din gamla CD-spelare, HiFi system eller bil radio? Har du någonsin märkt displayerna används på din lokala mataffär som visar du skannade objektet och priset för det?Dessa skärmar har en karakterist...