Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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;
- enum state {WAITING, LOOPING} current_state = WAITING;
- 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);
- }
- switch(current_state) {
- case WAITING:
- // outside of loop, do nothing
- break;
- case LOOPING:
- // set some parameters. this set of code will be processed until no longer
- // LOOPING, as set by the keyPadEvent.
- break;
- }
- }
- //take care of some special events
- void keypadEvent(KeypadEvent key){
- switch (keypad.getState()){
- case PRESSED:
- switch (key){
- case '#': current_state = LOOPING; break; // enter the function with "#"
- case EXITKEY: current_state = WAITING; break; // exit the function with EXITKEY
- }
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement