Last active
June 4, 2016 21:14
-
-
Save rafamaciel/e3305c891be904679178694c8495e818 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <LiquidCrystal.h> | |
LiquidCrystal lcd(8, 9, 4, 5, 6, 7); | |
int lcd_key = 0; | |
int adc_key_in = 0; | |
int selected_column = 0; | |
int selected_row = 0; | |
#define btnRIGHT 0 | |
#define btnUP 1 | |
#define btnDOWN 2 | |
#define btnLEFT 3 | |
#define btnSELECT 4 | |
#define btnNONE 5 | |
int read_LCD_buttons() | |
{ | |
adc_key_in = analogRead(0); | |
if (adc_key_in > 1000) return btnNONE; | |
if (adc_key_in < 50) return btnRIGHT; | |
if (adc_key_in < 250) return btnUP; | |
if (adc_key_in < 450) return btnDOWN; | |
if (adc_key_in < 650) return btnLEFT; | |
if (adc_key_in < 850) return btnSELECT; | |
return btnNONE; | |
} | |
void setup() | |
{ | |
lcd.begin(16, 2); | |
lcd.setCursor(0,0); | |
lcd.print("Push the buttons"); | |
} | |
void loop() | |
{ | |
lcd.setCursor(0,1); | |
lcd_key = read_LCD_buttons(); | |
switch (lcd_key) | |
{ | |
case btnRIGHT: | |
{ | |
lcd.print("RIGHT "); | |
break; | |
} | |
case btnLEFT: | |
{ | |
lcd.print("LEFT "); | |
break; | |
} | |
case btnUP: | |
{ | |
lcd.print("UP "); | |
break; | |
} | |
case btnDOWN: | |
{ | |
lcd.print("DOWN "); | |
break; | |
} | |
case btnSELECT: | |
{ | |
lcd.print("SELECT"); | |
break; | |
} | |
case btnNONE: | |
{ | |
lcd.print("NONE "); | |
break; | |
} | |
} | |
lcd.setCursor(selected_column, selected_row); | |
lcd.noCursor(); | |
delay(150); | |
lcd.cursor(); | |
delay(150); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment