Dear all,
I am planning to have a menu based system with let say 2 tact switch.
When button 1 is pressed, it enter screen 1.
When it is in screen 1, when I press the same button 1, it will go to screen 2.
How is it possible to do so ?
Thank you.
Dear all,
I am planning to have a menu based system with let say 2 tact switch.
When button 1 is pressed, it enter screen 1.
When it is in screen 1, when I press the same button 1, it will go to screen 2.
How is it possible to do so ?
Thank you.
Sounds like you need a finite state machine. That sounds scary but it's not.
At any time the system will be in one of several states, each of which you give a number or a name. So, when in say, state 0
if (state == 0)
{
//read the button and act accordingly for state 0
}
but when the state is different, say 1
if (state == 1)
{
//read the button and act accordingly for state 1
}
Or you could use 1 or 2 buttons (or a rotary encoder, if you're feeling more ambitious) to navigate a menu with several functions and then call a function based on the one you choose, roughly like this:
selection = 0;
lcd.print(menuItem[0]);
do {
if (down button pushed){
selection = selection + 1;
if (selection > max menu item #) {
selection = 0;
}
lcd.clear();
lcd.print(menuItem[selection]);
}
if (up button pushed){
selection = selection -1;
if (selection = 0) {
selection = max menu item #;
}
lcd.clear();
lcd.print(menuItem[selection]);
}
} while (select button not pushed)
switch (selection) {
case 0:
function0();
break;
case 1:
function1();
break;
….
}