Arduino Duemilanove have LCD216 Display and RTC Propox I can not change the code to make it work
Code: Select all
#include <LiquidCrystal.h>
//create object to control an LCD.
//number of lines in display=1
LiquidCrystal lcd(8,9,4,5,6,7);
//Key message
char msgs[5][15] = {"Select Key OK",//"Right Key OK ",
"Right Key OK",//"Up Key OK ",
"Up Key OK ",//"Down Key OK ",
"Down Key OK ",//"Left Key OK ",
"Left Key OK "};
int adc_key_val[5] ={20, 270, 520, 690, 880};
int NUM_KEYS = 5;
int adc_key_in;
int key=-1;
int oldkey=-1;
void setup() {
pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
lcd.print("KEYPAD testing... pressing");
}
void loop() {
adc_key_in = analogRead(0); // read the value from the sensor
digitalWrite(13, HIGH);
key = get_key(adc_key_in); // convert into key press
if (key != oldkey) // if keypress is detected
{
delay(50); // wait for debounce time
adc_key_in = analogRead(0); // read the value from the sensor
key = get_key(adc_key_in); // convert into key press
if (key != oldkey)
{
oldkey = key;
if (key >=0){
lcd.setCursor(0, 1); //line=2, x=0
lcd.print(msgs[key]);
}
}
}
//delay(1000);
digitalWrite(13, LOW);
}
// Convert ADC value to key number
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
{
if (input < adc_key_val[k])
{
return k;
}
}
if (k >= NUM_KEYS)
k = -1; // No valid key pressed
return k;
}
RTC
Analog In 4-SDA
Analog In 5-SCL