12 Tangenter
ATmega328P.pdf ( Register summary on p 428 )( Tex. Kjell & Co artikel 90650 )


Numeriska tangentbord med 12 tangenter används oftast till olika kombinationslås tex för inmatning av PIN-koden. Tangenterna är kopplade mellan tre kolumner (C1 C2 C3) och fyra rader (R1 R2 R3 R4). Om en tangent trycks ned så blir det kontakt mellan motsvarande kolumn och rad.
Tangentbordet ansluts med 7 pinnar, och det kan vara problematiskt att välja ut vilka pinnar som ska användas.
I programmet definieras ( #define ) symboliska namn för register och pinnar så att det ska gå enklare att vid behov byta till andra pinnar.
Funktionen getchar_KeyPad( ) är blockerande och väntar därmed på att någon kontakt ska
tryckas ned.
Kolumnerna är utgångar, en i taget är 0, de övriga då 1. Raderna är ingångar med de inre pullup resistorerna inkopplade.
Om någon av ingångarna läser 0 så har motsvarande tangent tryckts.
Tangentbordet kan ge mekaniska kontaktstudsar. Dessa kan undvikas med en fördröjning.
Exempelprogrammet ekar tangenttryckningarna till Arduinos seriekommunikations terminalfönster.
KeyPad12.txt
( for Arduino use code stored as: keypad12\keypad12.ino )
William Sandqvist william@kth.se