/LCDButtons/examples/ShowButtons/ShowButtons.ino
https://bitbucket.org/jraedler/lcdbuttons · C++ · 65 lines · 51 code · 9 blank · 5 comment · 2 complexity · 4c23645e4ef8c43042502e28656f6596 MD5 · raw file
- #include <LiquidCrystal.h>
- #include <LCDButtons.h>
- /* test the functionality of LCDButtons:
- * - button presses are shown in line 1 for one secons
- * - SELECT toggles the waiting for releasing the button
- * - UP and DOWN change the delay time between repeated readings (5-200 ms)
- */
- LCDButtons lcd;
- boolean wait;
- byte repeatDelay;
- void changeParameters() {
- char s[17];
- lcd.setButtonParameter(wait, repeatDelay);
- lcd.setCursor(0,1);
- snprintf(s, 16, "%s - %03d", (wait) ? " WAIT": "NO WAIT", repeatDelay);
- lcd.print(s);
- }
- void setup() {
- lcd.begin(16, 2);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("PRESS ANY KEY");
- wait = 1;
- repeatDelay = 5;
- changeParameters();
- }
- void loop() {
- static byte button;
- button = lcd.button();
- if (button > 0) {
- lcd.setCursor(0, 0);
- switch (button) {
- case BUTTON_SELECT:
- lcd.print("SELECT ");
- wait = ! wait;
- changeParameters();
- break;
- case BUTTON_LEFT:
- lcd.print("LEFT ");
- break;
- case BUTTON_RIGHT:
- lcd.print("RIGHT ");
- break;
- case BUTTON_UP:
- lcd.print("UP ");
- repeatDelay = min(repeatDelay+5, 200);
- changeParameters();
- break;
- case BUTTON_DOWN:
- lcd.print("DOWN ");
- repeatDelay = max(repeatDelay-5, 5);
- changeParameters();
- break;
- }
- }
- }