aboutsummaryrefslogtreecommitdiff
path: root/Arduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde
diff options
context:
space:
mode:
Diffstat (limited to 'Arduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde')
-rwxr-xr-xArduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde72
1 files changed, 72 insertions, 0 deletions
diff --git a/Arduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde b/Arduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde
new file mode 100755
index 0000000..db53ff0
--- /dev/null
+++ b/Arduino/Libraies/Keypad/Examples/EventKeypad/EventKeypad.pde
@@ -0,0 +1,72 @@
+/* @file EventSerialKeypad.pde
+|| @version 1.0
+|| @author Alexander Brevig
+|| @contact alexanderbrevig@gmail.com
+||
+|| @description
+|| | Demonstrates using the KeypadEvent.
+|| #
+*/
+#include <Keypad.h>
+
+const byte ROWS = 4; //four rows
+const byte COLS = 4; //four columns
+char keys[ROWS][COLS] = {
+ {'1','2','3','A'},
+ {'4','5','6','B'},
+ {'7','8','9','C'},
+ {'#','0','*','D'}
+};
+byte rowPins[ROWS] = {2,3,4,5}; //connect to the row pinouts of the keypad
+byte colPins[COLS] = {6,7,8,9}; //connect to the column pinouts of the keypad
+
+Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
+byte ledPin = 13;
+
+boolean blink = false;
+
+void setup(){
+ Serial.begin(9600);
+ pinMode(ledPin, OUTPUT); // sets the digital pin as output
+ digitalWrite(ledPin, HIGH); // sets the LED on
+ keypad.addEventListener(keypadEvent); //add an event listener for this keypad
+}
+
+void loop(){
+ char key = keypad.getKey();
+
+ if (key != NO_KEY) {
+ Serial.println(key);
+ }
+ if (blink){
+ digitalWrite(ledPin,!digitalRead(ledPin));
+ delay(100);
+ }
+}
+
+//take care of some special events
+void keypadEvent(KeypadEvent key){
+ switch (keypad.getState()){
+ case PRESSED:
+ switch (key){
+ case '#': digitalWrite(ledPin,!digitalRead(ledPin)); break;
+ case '*':
+ digitalWrite(ledPin,!digitalRead(ledPin));
+ break;
+ }
+ break;
+ case RELEASED:
+ switch (key){
+ case '*':
+ digitalWrite(ledPin,!digitalRead(ledPin));
+ blink = false;
+ break;
+ }
+ break;
+ case HOLD:
+ switch (key){
+ case '*': blink = true; break;
+ }
+ break;
+ }
+}