menu lcd button?
i have problem in making assignments.
my difficulty in directing cursor button , down on menu.
i ask help, take @ button "up" , "down" in program , see mistake? thanks
my difficulty in directing cursor button , down on menu.
i ask help, take @ button "up" , "down" in program , see mistake? thanks
code: [select]
#include <liquidcrystal.h>
liquidcrystal lcd(7,6,5,4,3,2);
int keypad_pin = a0;
int keypad_value = 0;
int keypad_value_old = 0;
char btn_push;
byte mainmenupage = 1;
byte mainmenupageold = 1;
byte mainmenutotal = 3;
void setup()
{
lcd.begin(20,4);
serial.begin(9800);
mainmenudisplay();
}
void loop()
{
btn_push = readkeypad();
mainmenubtn();
if(btn_push == 's')//enter selected menu
{
waitbtnrelease();
switch (mainmenupage)
{
case 1:
menua();
break;
case 2:
menub();
break;
case 3:
menuc();
break;
}
mainmenudisplay();
waitbtnrelease();
}
}
void menua(){
lcd.clear(); lcd.setcursor(0,0); lcd.print("inside menu a");
while(readkeypad()!= 'l')
{}}
void menub(){
lcd.clear(); lcd.setcursor(0,0); lcd.print("inside menu b");
while(readkeypad()!= 'l')
{}}
void menuc(){
lcd.clear(); lcd.setcursor(0,0); lcd.print("inside menu c");
while(readkeypad()!= 'l'){}}
void mainmenudisplay()
{
lcd.clear();
lcd.setcursor(3,0);
lcd.print("weather portable");
lcd.setcursor(3,1);
lcd.print("chek ");
lcd.setcursor(3,2);
lcd.print("open sd card");
lcd.setcursor(3,3);
lcd.print("open data logger");
switch (mainmenupage)
{
case 1:
lcd.setcursor(0,1);
lcd.print("->");
break;
case 2:
lcd.setcursor(0,2);
lcd.print("->");
break;
case 3:
lcd.setcursor(0,3);
lcd.print("->");
break;
}
}
void mainmenubtn()
{
waitbtnrelease();
if(btn_push == 'u')
{
mainmenupage++;
if(mainmenupage > mainmenutotal)
mainmenupage = 1;
}
else if(btn_push == 'd')
{
mainmenupage++;
if(mainmenupage < mainmenutotal)
mainmenupage = 1;
}
if(mainmenupage != mainmenupageold) //only update display when page change
{
mainmenudisplay();
mainmenupageold = mainmenupage;
}
}
char readkeypad()
{
keypad_value = analogread(keypad_pin);
serial.println(keypad_value);
if(keypad_value > 540 && keypad_value < 590)
return 'r';
else if(keypad_value> 600 && keypad_value < 650)
return 'u';
else if(keypad_value >710 && keypad_value< 835)
return 'd';
else if(keypad_value >470 && keypad_value < 500)
return 'l';
else if(keypad_value>670 && keypad_value < 700)
return 's';
else
return 'n';
}
void waitbtnrelease()
{
while( analogread(keypad_pin)>670 && analogread(keypad_pin) < 700) {}
}
Arduino Forum > Using Arduino > Project Guidance > menu lcd button?
arduino
Comments
Post a Comment