In this lesson, you will learn to use Keypad. Keypad can be applied into various kinds of devices, including mobile phone, fax machine, microwave oven and so on. It is commonly used in user input.
A keypad is a rectangular array of 12 or 16 OFF-(ON) buttons. Their contacts are accessed via a header suitable for connection with a ribbon cable or insertion into a printed circuit board. In some keypads, each button connects with a separate contact in the header, while all the buttons share a common ground.
More often, the buttons are matrix encoded, meaning that each of them bridges a unique pair of conductors in a matrix. This configuration is suitable for polling by a microcontroller, which can be programmed to send an output pulse to each of the four horizontal wires in turn. During each pulse, it checks the remaining four vertical wires in sequence, to determine which one, if any, is carrying a signal. Pullup or pulldown resistors should be added to the input wires to prevent the inputs of the microcontroller from behaving unpredictably when no signal is present.
In this example, we extend the pins 1~8 of Keypad to connect to the digital pins 2~9.
After uploading the codes to the Mega2560 board, on the serial monitor, you can see the value of the key currently pressed on the Keypad.
By calling the Keypad.h library, you can easily use Keypad.
Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols)
Initializes the internal keymap to be equal to userKeymap.
userKeymap: The symbols on the buttons of the keypads.
row, col: Pin configuration.
numRows, numCols: Keypad sizes.
Returns the key that is pressed, if any. This function is non-blocking.