Tests forked Keypad library.

Dependencies:   FPointer keypad mbed

Schematic:

http://schind.nl/keypad.png

No extra hardware is needed besides the wires and switches. The columns are outputs configured with open drain. The rows are inputs configured with pull up resistors. A key press pulls down its row. With scanning the column is determined thereafter.

See keypad for the forked library used in this project.

main.cpp

Committer:
gj_schoneveld
Date:
2012-11-03
Revision:
1:8bbe2b267de6
Parent:
0:5410e5950602
Child:
2:eaa3d23e9b29

File content as of revision 1:8bbe2b267de6:

#include "mbed.h"
#include "keypad.h"

// Define your own keypad values
char Keytable[] = { '1', '2', '3', 'A',
                    '4', '5', '6', 'B',
                    '7', '8', '9', 'C',
                    '*', '0', '#', 'D'
                  };

BusOut code(LED4, LED3, LED2, LED1); //show binary code of key

uint32_t cbAfterInput(uint32_t key)
{
    printf("Key: %d => \'%c\'\n", key, Keytable[key]);
    code = key;

    return 0;
}

void Sleep(void)
{
    __WFI();
}

int main()
{
    printf("*** Keypad Demo ***\n");

    Keypad keypad(p25, p26, p27, p28, p21, p22, p23, p24);
    keypad.CallAfterInput(&cbAfterInput);

    keypad.Start();
    while (1) {
        Sleep();
    }
}