Keypad with Arduino using Keypad Library

We learned in previous chapters how to connect LCD with Arduino. In this, you will learn how to interface keypad with arduino using keypad library and to display numbers and/or characters on the LCD screen.

REQUIRED HARDWARE

Following Hardware will be required to perform this circuit.

S.No. Item Quantity
1 Arduino Uno 1
2 Breadboard 1
3 Alphanumeric LCD 16×2 1
4 Keypad 4×3 1
5 Resistor 10K ohm 1
6 Male to Male jumper wire approx 25

BUILDING CIRCUIT

Make the following connections with Arduino

Interfacing of Keypad with Arduino

REAL TIME KEYPAD 4X3 PINOUT

keypad-pinout

ARDUINO CODE KEYPAD WITH ARDUINO USING KEYPAD LIBRARY

ALSO READ: CODE USING WITHOUT KEYPAD LIBRARY

// Include LCD and Keypad Library
#include<LiquidCrystal.h>
#include <Keypad.h>

// Define LCD (RS,E,D4,D5,D6,D7) pins
LiquidCrystal lcd(6, 5, 4, 3, 2, 1);

// Define two variables ‘ROWS and COLS’ of ‘const byte’ type and assign 4 & 3 to them
const byte ROWS = 4;    // four rows
const byte COLS = 3;    // three columns

/* Define 2-Dimension character type array ‘keys’ of 4 rows and 3 columns and assign values to them (1- #)
*/
char keys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};

// Define two 1-Dimensional byte type array “rowPins colPins” and assign values to them
byte rowPins[ROWS] = {8, 9, 10, 2}; // r1, r2, r3, r4 connect to the row pinouts of the keypad
byte colPins[COLS] = {13, 12, 11}; // c1, c2, c3 connect to the column pinouts of the keypad

// Define integer type variable ‘count’ and one character type array ‘typed’ of 5 values
int count = 0;
char typed[5];                //to get five numbers in that array

//Keypad::Keypad(char*, byte*, byte*, byte, byte)
//Keypad(char *userKeymap, byte *row, byte *col, byte numRows, byte numCols);
Keypad k = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
}

void loop() {
  /*The function getKey() returns a key value as you press the key but it does not repeat automatically.
     Also, when we release the key we can track the key RELEASED event if we are use the eventListener feature of the library.
  */
  char key = k.getKey();

  if (key) {
    typed[count] = key;      //storing data in character array
    Serial.println(key);
    lcd.print(key);
    count++;                  //counting number of characters So that can be used to do other things
  }
}

OUTPUT

After uploading the program into Arduino, you will find as you press keys on the keypad the number will get displayed on the LCD screen, If you like you can use Serial monitor using serial communication for the output screen.


ALSO READ
KEYPAD CONTROLLED LOCK USING ARDUINO WITH KEYPAD LIBRARY


 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x