如何保留计时器按钮状态的值
How to hold value for the state of a button for a timer?
我正在用Arduino上的16x2 LCD屏幕制作一个定时器。显然,我想按下我的启动按钮以供计时器计算,直到按下停止按钮为止。我有一个重置按钮,该按钮已连接到RESET PIN,因此我没有为其编写代码。
我已经去过ladayada.com关于按钮状态的教程,我密切关注说明。我仍然得到错误的结果。
signed short minutes, seconds;
char timeline[16];
int startPin = 7;
int stopPin = 6;
int buttonState1;
int buttonState2;
int oldState;
int currentState;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(startPin,INPUT_PULLUP);
pinMode(stopPin,INPUT_PULLUP);
buttonState1 = digitalRead(startPin);
buttonState2 = digitalRead(stopPin);
void loop() {
currentState = digitalRead(startPin);
if(currentState!= buttonState1){
if(currentState==LOW){
lcd.setCursor(0, 1);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
lcd.print(timeline);
delay(1000);
seconds++;
if (seconds == 60){
seconds = 0;
minutes ++; }
}
}
if(buttonState2==LOW){
delay(500);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
}
buttonState1 = currentState;
}
我希望Arduino保存按钮的状态并计算直到按下停止按钮。按下停止按钮时,按下时应显示时间(当前计数(。取而代之的是,必须按两次开始按钮才能计数一秒钟。我什至无法进入停止按钮的逻辑。
如果仅在程序开始时按开始按钮,为什么不等待 setup()
中的按钮操作?
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
pinMode(startPin,INPUT_PULLUP);
pinMode(stopPin,INPUT_PULLUP);
while (digitalRead(startPin) != LOW); // <- wait for button action
}
在loop()
中,您要计算直到按下停止按钮为止。如果以后进行硬件重置,则只需按下停止按钮,就可以将程序放入无限循环中。
void loop() {
lcd.setCursor(0, 1);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
lcd.print(timeline);
delay(1000);
seconds++;
if (seconds == 60) {
seconds = 0;
minutes ++;
}
if (digitalRead(stopPin) == LOW) {
delay(500);
sprintf(timeline,"%0.2d mins %0.2d secs", minutes, seconds);
while(true) {} // infinite loop
}
}
相关文章:
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- QML按钮点击功能执行顺序
- 当用户超过按钮点击限制时报告
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 我不断收到 [错误] ID 返回 1 退出状态错误,但看不到问题所在
- 函数计算用户按下按钮的频率
- 热键/按钮,根据需要进行编译,但不运行(在F5和Ctrl+Shift+B之间)
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- FLTK:按下哪个按钮 - 将数字传递给按钮的回调 (lambda)
- 如何保留计时器按钮状态的值
- 除非按下按钮,否则保持以前的状态
- 在MFC中以编程方式设置单选按钮状态
- Qt检查多个按钮的状态
- 如何在 wxWidgets 中获取功能区中切换按钮的状态
- 如何在cocos2d-x中将按钮的状态更改为已单击
- MFC状态栏-使文本与按钮行为的链接
- 根据bool状态更改标签/按钮文本
- 检查单选按钮状态winapi
- MFC -消息框显示,主窗口有一个取消按钮.消息框处于活动状态时防止取消