为lcd Arduino创建2个按钮菜单

时间:2016-07-04 09:11:21

标签: arduino interrupt lcd

我想用Arduino为我的液晶显示器创建一个菜单。我想使用2个按钮 - 一个用于向下滚动,一个用于选择项目。再次按第一个按钮将返回菜单。问题是,如果我在代码中插入该行:while(digitalRead(menu) == LOW); 我的程序只等待按下第一个按钮,所以第二个按钮不起作用。但是,如果我不插入该行,则两个按钮都正常工作,但是lcd上的文本正在闪烁。 伪代码就是这样:

如果按下第一个按钮:

- >转到第一个菜单项

- >如果按下第二个按钮(interrput?):

--->显示内容

如果按下第一个按钮:

- >转到第二个菜单项

- >如果按下第二个按钮(中断?):

--->显示内容

如何编写程序以等待中断而不是等待什么也不做?

1 个答案:

答案 0 :(得分:0)

void setup
{
 //...
}

如果您不需要,请不要更改显示。 沿着这些方向的东西可能是:

#define NUM_ITEMS 5

int itemShown = -1;
int item2show = 0;

void loop()
{
  if (digitalRead(button1pin) == LOW)
  {
       item2show++;
       if(item2show>=NUM_ITEMS)
           item2show = 0;
  } else { 
    // if button2 do it
  }

  if (item2show != itemShown) 
  {
     showItem(item2show);
     itemShown = item2Show;
  }
}
}