Arduino Schateiland (7 / 12 stap)

Stap 7: Het toetsenbord...


Voor degenen die nog nooit een array type toetsenbord gebruikt is dit hoe ze werken.

In een poging om het verminderen van het aantal draden die uit een toetsenblok voortkomen, worden geleiders ingedeeld in rijen en kolommen. Dit type van toetsenbord neemt sommige Kung Fu te laten werken, maar het vermindert ook het aantal pinnen dat u wilt gebruiken.

In een standaard bedrade toetsenblok hebt u één gemeenschappelijke draad en één draad voor elke knop. Dat zou in dit geval een totaal van 17 draden.

Bedraad toetsenbord die je hebt slechts 8 in een array. Hier is de vangst. De micro controllers heeft 4 pinnen instellen als uitgangen (rijen) en 4 pinnen als ingangen (de kolommen) die u alleen 4 knoppen tegelijk lezen kunt instellen.

"Wat???!!! Wat goed is dat ik mij een 12 knop toetsenbord gekocht!"

Slechts één van de rij is ingeschakeld op een moment. Bijvoorbeeld die de eerste rij is ingeschakeld, geeft dit kracht aan de ene kant van elke knop in de bovenste rij (1,2,3, A) als 1 wordt ingedrukt, dan je macht is die voortvloeien uit de uitgang 1 weet naar ingang 1. Als 2 is ingedrukt, dan weet je dat vermogen van uitgang 1 ingang 2 loopt er door. Als 3 is ingedrukt dan macht is die voortvloeien uit de uitgang 1 3 invoeren en als A wordt ingedrukt dan macht is die voortvloeien uit uitgang 1 om input 4.

Als u zich wenden uitgang zou 2 daarover zetten macht aan één kant van elk van de knoppen op de tweede rij (4,5,6, B) als 4 elektriciteitstromen van uitgang 2 naar ingang 1 is ingedrukt. Als 5 wordt ingedrukt elektriciteitstromen van uitgang 2 op ingang 2. Als 6 ingedrukt dan macht stromen van uitgang 2 op ingang 3 is en tot slot als B elektriciteitstromen van uitgang 2 op ingang 4 wordt gedrukt.

Hoe lees ik het hele toetsenbord dat u vragen. Een andere goede vraag sprinkhaan. Hier is hoe het werkt. De micro controller denkt heel snel, dus wat er gebeurt dit is. Rij 1 is ingeschakeld die is verbonden met 1,2,3, A en alle vier de ingangen zijn keek. Als geen macht is gevonden in één van de ingangen dan die rij is uitgeschakeld en vervolgens rij 2 is ingeschakeld die is aangesloten op 4,5,6, B. Dan alle vier ingangen zijn weer keek. Als geen macht is opgemerkt bij de ingangen die rij is uitgeschakeld en rij drie is ingeschakeld die is gekoppeld aan 7,8,9, zijn C en de ingangen opnieuw gekeken. Als geen macht wordt opnieuw genoteerd op de ingangen dan dat rij af en de vierde rij is ingeschakeld die is verbonden met *, 0, #, D. en opnieuw de ingangen worden gekeken om de macht. Als geen macht wordt opgemerkt dan rij 4 is uitgeschakeld en de processen begint helemaal opnieuw met rij 1.

* Belangrijk onderdeel - als u meer dan één rij inschakelt en een knop is ingedrukt, dan kunnen er twee mogelijkheden welke knop is ingedrukt, aangezien er meer dan één bron macht vanuit twee verschillende rijen. Zeggen zet u rij 1 en rij 2. Als u 1 druk zal dan macht blijken op ingang 1. Als u druk op knop 4 vervolgens ziet ingang 1 macht weer. Snap het?

Hier is waar het wordt cool. De micro controller beweegt zo snel, dat maakt niet uit hoe snel u druk op de knop de scan uw vinger op een knop ziet een bos van tijden voordat kunt u uw vinger uit de knop. In het programma schrijft u een indien verklaring. "Als mijn vinger op een knop wordt gezien dan stoppen met de scan en wachten op de knop om te worden vrijgegeven (dit houdt u van het invoeren van 5000 knop drukt voordat u de vinger kan opstaan.) Zodra uw vinger loslaat het vervolgens met behulp van de rij en kolomdiagram stelt een variabele om na te denken welk nummer werd ingedrukt. Ga dan terug aan het scannen van het toetsenbord weer wachten op een andere knop drukt. Een indien verklaring moet worden geschreven voor elke combinatie van rij en kolom.

Ik hoor sommigen van u zeggen "Er is een bibliotheek voor dat al gedaan, de zogenaamde keypad.h" dat klopt, er is, maar ik wilde niet voortdurend scannen voor een druk op de knop, alleen op bepaalde tijden en op deze manier is het iets gemakkelijker voor mij te controleren, of ten minste in mijn hoofd is. De scan is geschreven in een aparte functie van de lus functie Op bepaalde momenten tijdens de lus als ik wil zoeken naar persen sleutel dan stuur ik het programma naar die functie die de scan vervolgens één keer uitgevoerd. Ik heb geschreven mijn lus om vooruitgang in stappen en al de rest negeren. Dus als de lus rond komt de en die stap is actief dan de scan wordt aangedrongen. Meestal gemakkelijk squeezy.

Gerelateerde Artikelen

Schattenjacht voor volwassenen (metgezel naar Arduino Schateiland Box)

Schattenjacht voor volwassenen (metgezel naar Arduino Schateiland Box)

Ik heb altijd graag films zoals National Treasure en dergelijke. Degenen die beschikt over een team van mensen die worden uitgevoerd over de hele probeert op te lossen een raadsel of een tekenreeks van raadsels om, het goud, krijgen het meisje, behal
Child's stof Book (met behulp van LilyPad Arduino)

Child's stof Book (met behulp van LilyPad Arduino)

als een sewable (zacht) circuits project, ik heb een boek van Broadway thema stof gemaakt.  Ik werd geïnspireerd door een gepersonaliseerde stof boek met familielid foto's die mijn jonge neef ontvangen.  Ik gebruikte om te maken het boek oplichten en
Audio Schateiland

Audio Schateiland

Iedereen houdt van schattenjacht. Rondrennen op een zoektocht naar uw huidige maakt elke gift beter. Dus gewoon voor de lol ontwierp ik mijn eigen variatie van het spel. Ik een Arduino microcontroller gecombineerd met een Adafruit Wave Shield te make
Maken van een draagbare barcodescanner met een arduino en een cuecat

Maken van een draagbare barcodescanner met een arduino en een cuecat

rond het begin van de eeuw, was er een bedrijf waarvan bedrijfsmodel opgenomen weggeven van gratis barcodescanners die wedijveren met toetsenborden.    Een relatief eenvoudig mod met deze scanners cuecat verwijderd van de codering en maakte hen gesch
Glas van computers op basis van Arduino Uno

Glas van computers op basis van Arduino Uno

Aan mijn meesters graduate project ("Gowing Computers, aansluiten van organen, knippen het snoer") van Konstfack College van kunstnijverheid en Design (keramiek en glas/CRAFT) heb ik gemaakt 3 glazen computers op basis van de specificaties van d
Arduino temperatuurgevoelig Fan

Arduino temperatuurgevoelig Fan

Ik en een paar leden van de groep hebben besloten dat voor de zomer, zou gunstig zijn voor het maken van een ventilator die worden ingeschakeld bij 70 graden Fahrenheit en in intensiteit met de hitte blijft toenemen. Dus is dat wat we deden. :)Stap 1
LPD8806 VUMeter met PC & Arduino + GUI

LPD8806 VUMeter met PC & Arduino + GUI

Als u dit project please vote voor het in de "sensoren Contest 2016" en "Rainbow Contest 2016" als het kostte me een hoop tijd te maken (de knop rechts boven die zegt "Stem").Ik heb altijd al een soort van LED VU-Meter omdat
Arduino & Neopixel Coke fles partij licht

Arduino & Neopixel Coke fles partij licht

Dus mijn zoon Doon plekken een zeer koele partij licht van oude cokes flessen en de slissend ingewanden van Glow Sticks maakte, en vraagt als kunnen we één voor zijn aanstaande School examens zijn Over Blowout PartAYYY!!! Ik zeg zeker, maar niet zou
Arduino Rocket datalogger

Arduino Rocket datalogger

Heb je ooit wilde onderzoeken van elk aspect van uw model raketten vlucht voor slechts £15?In dit instructable ik bevatten code en instructies voor een Arduino raket datalogger voor het meten van de hoogte van de raket, versnelling, temperatuur en ro
Standalone Arduino hoogtemeter

Standalone Arduino hoogtemeter

Hier is een standalone hoogtemeter werken met Arduino die u in RC project gebruiken kunt, hiking, auto's... waar u :)Het toont op het eerste scherm van de altittude, de temperatuur en de luchtdruk, en in de tweede, de Minimale / maximale hoogte berei
Arduplane - Arduino gebaseerd rc vliegtuigen

Arduplane - Arduino gebaseerd rc vliegtuigen

RC vliegtuig is een van de grootste speelgoed dat iedereen wil om mee te spelen. Maar het kopen van een mogelijk duurder laat onze handen vies en lichaamsbouw men voor onszelf met behulp van de Arduino micro controllers. Laat onze eigen zender en ont
Parking System met Ethernet in arduino

Parking System met Ethernet in arduino

Dit is de Parking systeem met Ethernet en arduino.Ethernet is WIZnet W5500 Ethernet shiled.Het is zeer gemakkelijk mogelijk met behulp van het ethernet. Ethernet of internet is oorspronkelijk met behulp van de mededeling van de TCP/IP-Protocol.En oor
Interfacing borstelloze DC-Motor (BLDC) met Arduino

Interfacing borstelloze DC-Motor (BLDC) met Arduino

dit is een tutorial over hoe interface en uitvoeren van een borstelloze DC-motor met behulp van Arduino. Als u vragen hebt of opmerkingen gelieve te in commentaren of mail naar rautmithil [at] gmail [dot antwoorden] com. Kan je ook contact met mij op
Arduino wachtwoord beveiligingssysteem met magnetische deur sensoren

Arduino wachtwoord beveiligingssysteem met magnetische deur sensoren

In deze handleiding Instructables zal ik u tonen hoe maak je je eigen wachtwoord beveiligingssysteem met behulp van de Arduino uno bestuur en sommige schakelopties magnetische deur. Ik maakte mijn eigen circuit met behulp van de ATmega328 micro contr