[UPDATE] Demonstration videos included:
Hi everyone,
Been busy developing the hardware and firmware of this sweet LCD keypad panel lately. I thought I should show it off.
The above panel only requires 2 arduino pins to run NewSoftSerial to connect. You will have full control of the LCD with serial.print, sense the keypad with serial.read, and other hardware including the following software and hardware functions:
A video demonstrating all features of the panel on the compact 16x2 panel
This is the on board menu for parameter adjustment: baud rate, startup beep, back light, and key repeat speed.
This is the compact size panel quick look around:
Hardware:
*ATMEGA328 microcontroller manages all hardware
*TTL-Serial (0-5V) interface, compatible with all Arduino variants and most other microcontrollers
*16X2 character display
*Keypad has 0-9, four directional keys, enter, and escape
*4 LEDs
*Buzzer for simple buzz or any tone
*Software adjustable LCD back light intensity
*Reset key behind the panel so you can decide whether the user can reset the panel
*Firmware can be upgraded for more functions
Software (display):
*Wraps messages automatically at the end of a line.
*Automatic scrolls lines up with new messages.
*Supports control characters: newline (‘\n’), return (‘\r’), backspace (‘\b’), tab (‘\t’).
*Supports most ANSI escape sequences: cursor position, blinking/underline cursor.
*Supports local echo of key presses for regular inputs or no local echo of key presses to conceal inputs for password fields.
*Supports LCD back light brightness control 0-255.
Software (keypad):
*Relays key presses via serial port such as ’0? to ’9? on the number pad and 1, 2, 3, 4, 5 and 6 on the arrow pad and enter and escape.
*Getting user input with multi-tap (like on cell phone number pad) for alphanumerical and symbol inputs
*Getting numbers and passwords is as easy as 1-2-3 with few lines of code.
Software (interactive features):
*Supports phi_prompt user interface library such as long text areas, interactive lists or menus, YES/NO or OK dialogs and various number and text inputs.
*Supports on-the-fly baud rate change.
*Planned upgrade will support “store and recall” functions to store messages, menus and lists on-board the panel so they can be recalled by their indices (like display menu#1 instead of sending of the entire menu) to free your Arduino FLASH by up to 256KB (requires serial adapter, special software and external EEPROM).
Software (peripheral):
*Can control 4 LEDs for status indication
*Can output any tone on the buzzer
The panel has integrated functions to render interactive menus and long messages to display menus and long information texts besides all the screen manipulation functions I can think off, all accessible via serial.print commands. A menu can be made simply like the following:
Serial.println(“Menu:”); // Display ” Menu” on line 1
Serial.println(“1.Display GPS info”); // Display option 1 on line 2
Serial.println(“2.Record GPS info”); // Display option 2 on line 3
while(1) {
if (Serial.available()) { // Make sure there is a key press
char response=Serial.read(); // Read key press from phi-panel
if (response==’1?) display_GPS(); // Display GPS info on LCD
if (response==’2?) record_GPS(); // Record GPS info on SD card or EEPROM
break; // Breaks out of the while (1) loop.
}
}
I also have a 20X4 full size version:
A video of multi-tap on the full-size panel:
I will shoot some videos on how to use the panel later.
This is the blog page for this project:
It is available on inmojo.com