1) The document discusses connecting and programming a keypad and LCD display for an Arduino robotics project. It describes the keypad hardware, connecting it to Arduino pins, and reading input codes.
2) It also covers connecting and using a 16x2 LCD display with Arduino. The LCD requires 7 pins in 4-bit mode and can display text using functions like print and setCursor.
3) The document provides exercises to display keypad input on the LCD and control a robot's state from the keypad while showing status on the LCD.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
21 views20 pages
EmbeddedWorkshop 09 Keypad
1) The document discusses connecting and programming a keypad and LCD display for an Arduino robotics project. It describes the keypad hardware, connecting it to Arduino pins, and reading input codes.
2) It also covers connecting and using a 16x2 LCD display with Arduino. The LCD requires 7 pins in 4-bit mode and can display text using functions like print and setCursor.
3) The document provides exercises to display keypad input on the LCD and control a robot's state from the keypad while showing status on the LCD.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20
Embedded Programming and
Robotics Lesson 9 Keypad and LCD Display
Keypad and LCD Display 1
The Keypad The keypad is similar to a telephone keypad, with a few extra keys Youll need to download libraries to run it from http://playground.arduino.cc/Code/ Keypad
Keypad and LCD Display 2
Connecting the Keypad The keypad requires 8 I/O pins, one per row and one per column This is a lot considering what is available Connect power and ground
Keypad and LCD Display 3
Keypad Programming Overview The keypad doesnt output characters; it outputs scan codes It requires 8 digital inputs, 4 for the rows and 4 for the columns When you create the Keypad object, you can map these to characters
Keypad and LCD Display 4
Include Files #include <Keypad.h> #include <LiquidCrystal.h> #include <SoftwareSerial.h>
Keypad and LCD Display 5
Set up Keypad data const byte numRows = 4; //number of rows on the keypad const byte numCols = 4; //number of columns on the keypad Pins connected to rows and columns byte rowPins[numRows] = {38, 36, 34, 32}; //Rows 0 to 3 byte colPins[numCols] = {30, 28, 26, 24}; //Columns 0 to 3
Keypad and LCD Display 6
Set Up Keypad Mapping //keymap maps buttons to characters char keymap[numRows][numCols] = { {'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'} };
Get a Character Determine if there is anything from the keypad, and get it if there is. Note that NO_KEY is defined in key.h as binary zero. char keypressed = myKeypad.getKey(); if (keypressed != NO_KEY) { Serial.print("Key pressed "); Serial.println(keypressed + '0'); }
Keypad and LCD Display 9
Using the Keypad Best to use the keypad in programs that do not use delay(), since that can make it seem unresponsive We used this in a robot that had an Arduino Mega so we could choose programs during operation, rather than loading new programs every time we changed something.
Keypad and LCD Display 10
The Liquid Crystal Display (LCD) The LCD panel has 2 lines of 16 characters each It can be used to display status, time, direction, etc. Less useful in robots, and more with Raspberry Pi
Keypad and LCD Display 11
The Liquid Crystal Display (LCD) The Hitachi-compatible LCDs can be controlled in two modes: 4-bit or 8-bit The 4-bit mode requires seven I/O pins from the Arduino, while the 8- bit mode requires 11 pins. For displaying text on the screen, you can do nearly everything in 4- bit mode, which is what well use
Keypad and LCD Display 12
LCD Panel Wiring Vdd connects to +5 Vo controls the brightness Vss connects to ground
Keypad and LCD Display 13
LCD Panel Wiring Before wiring the LCD screen to your Arduino we suggest to solder a pin header strip to the connector of the LCD screen Connect the following pins: LCD RS pin to digital pin 12 LCD Enable pin to digital pin 11 LCD D4 pin to digital pin 5 LCD D5 pin to digital pin 4 LCD D6 pin to digital pin 3 LCD D7 pin to digital pin 2
Keypad and LCD Display 14
LCD Panel Wiring You can connect a 10K-Ohm potentiometer to the V0 pin, controlling the brightness. (We didnt order this part and it isnt necessary)
Keypad and LCD Display 15
The Liquid Crystal Display (LCD) LCD Panel Pins: A register select (RS) pin that controls where in the LCD's memory you're writing data to. You can select either the data register, which holds what goes on the screen, or an instruction register, which is where the LCD's controller looks for instructions on what to do next. A Read/Write (R/W) pin that selects reading mode or writing mode An Enable pin that enables writing to the registers
Keypad and LCD Display 16
The Liquid Crystal Display (LCD) 8 data pins (D0 -D7). The states of these pins (high or low) are the bits that you're writing to a register when you write, or the values you're reading when you read. There's also a display constrast pin (Vo), power supply pins (+5V and Gnd) and LED Backlight (Bklt+ and BKlt-) pins that you can use to power the LCD, control the display contrast, and turn on and off the LED backlight, respectively.
Keypad and LCD Display 17
The LCD Panel #include <LiquidCrystal.h> Set up the LiquidCrystal object and tell it the pins (note these are on an Arduino Mega) LiquidCrystal lcd(42, 44, 46, 48, 50, 52);
Keypad and LCD Display 18
LCD Functions Initializes the panel with columns and rows lcd.begin(16, 2); Clears the panel lcd.clear(); Display something lcd.print(Hello, World!"); Set the cursor position to col, row lcd.setCursor(col, row);
Keypad and LCD Display 19
Programming Exercise First program: Write a program that takes whatever you type at the keypad and puts it on the LCD display Second program: Write a program that lets you stop the robot and restart it from the keypad, and shows the state on the LCD panel