--- /dev/null
+\r
+//example use of LCD4Bit_mod library\r
+\r
+#include <LCD4Bit_mod.h> \r
+//create object to control an LCD. \r
+//number of lines in display=1\r
+LCD4Bit_mod lcd = LCD4Bit_mod(2); \r
+\r
+//Key message\r
+char msgs[5][15] = {"Right Key OK ", \r
+ "Up Key OK ", \r
+ "Down Key OK ", \r
+ "Left Key OK ", \r
+ "Select Key OK" };\r
+int adc_key_val[5] ={30, 150, 360, 535, 760 };\r
+int NUM_KEYS = 5;\r
+int adc_key_in;\r
+int key=-1;\r
+int oldkey=-1;\r
+\r
+void setup() { \r
+ pinMode(13, OUTPUT); //we'll use the debug LED to output a heartbeat\r
+\r
+ lcd.init();\r
+ //optionally, now set up our application-specific display settings, overriding whatever the lcd did in lcd.init()\r
+ //lcd.commandWrite(0x0F);//cursor on, display on, blink on. (nasty!)\r
+ lcd.clear();\r
+ lcd.printIn("KEYPAD testing... pressing");\r
+}\r
+\r
+void loop() {\r
+\r
+ adc_key_in = analogRead(0); // read the value from the sensor \r
+ digitalWrite(13, HIGH); \r
+ key = get_key(adc_key_in); // convert into key press\r
+ \r
+ if (key != oldkey) // if keypress is detected\r
+ {\r
+ delay(50); // wait for debounce time\r
+ adc_key_in = analogRead(0); // read the value from the sensor \r
+ key = get_key(adc_key_in); // convert into key press\r
+ if (key != oldkey) \r
+ { \r
+ oldkey = key;\r
+ if (key >=0){\r
+ lcd.cursorTo(2, 0); //line=2, x=0\r
+ lcd.printIn(msgs[key]);\r
+ }\r
+ }\r
+ }\r
+ \r
+ //delay(1000);\r
+ digitalWrite(13, LOW);\r
+ \r
+\r
+ \r
+ \r
+ \r
+}\r
+\r
+// Convert ADC value to key number\r
+int get_key(unsigned int input)\r
+{\r
+ int k;\r
+ \r
+ for (k = 0; k < NUM_KEYS; k++)\r
+ {\r
+ if (input < adc_key_val[k])\r
+ {\r
+ \r
+ return k;\r
+ }\r
+ }\r
+ \r
+ if (k >= NUM_KEYS)\r
+ k = -1; // No valid key pressed\r
+ \r
+ return k;\r
+}
\ No newline at end of file