首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino LCD定时器显示

Arduino LCD定时器显示
EN

Stack Overflow用户
提问于 2021-10-11 07:41:58
回答 1查看 160关注 0票数 0

我一直在尝试用Arduino做一个计时器,它会在两个小时后停止,并发出蜂鸣器的响声。我已经成功地获得了计时器的秒数,但现在我已经尝试让它显示小时和分钟&使蜂鸣器关闭,所有的帮助是感激的,这里是代码和picture of project

代码语言:javascript
复制
#include <LiquidCrystal.h> 
LiquidCrystal lcd(1,2,4,5,6,7); // setup the lcd 
#define button 3
         // setup integers //
int timerMode=0;
int buzzer=8;
int wait=400;
int longWait=5000;
int startTime;
int hours=(millis() - startTime) / 360000;




void setup() {
lcd.begin(16,2); // start lcd //
lcd.clear();  // clear old text //
pinMode(button, INPUT_PULLUP); // make button an input //
pinMode(buzzer, OUTPUT); // make buzzer an output //
lcd.print("Ergo timer"); // print begin text //

 
}

void loop() {
lcd.setCursor(0,1);
if (digitalRead(button) == LOW){ // if button is pressed//
  startTime=millis();
  timerMode++;
  delay(wait);
}

if (timerMode==1){ // if timermode is 1 after a button press //
  lcd.setCursor(0,0);
  lcd.print("Over 2 uur pause"); // print top text //
  lcd.setCursor(0,5);
  lcd.print( (millis() - startTime) / 1000); // print time in seconds //
  lcd.setCursor(0,4);
  lcd.print(":"); // print a column between //
  lcd.setCursor(0,3);
  lcd.print( (millis() - startTime) / 60000); // print time in minutes //
  lcd.setCursor(0,2);
  lcd.print(":");
  lcd. setCursor(0,1);
  lcd.print( (millis() - startTime) / 360000); // print time in hours //
 

 }

  if (hours == 2){
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("---Nu pause---");
    tone(buzzer,200,1000);
    
   }

if (timerMode > 1){
  delay(longWait);
  timerMode=0;
  lcd.clear();
  lcd.print("---Ergo timer---");
 }
EN

回答 1

Stack Overflow用户

发布于 2021-10-11 08:32:37

int hours=(millis() - startTime) / 360000;是胡说八道。C++代码从上到下执行。当某些变量发生变化时,程序不会神奇地重新访问以前执行的行。

这意味着这一行不会创建一些神奇的公式,只要有什么变化就会更新hours。它只创建一行代码,在启动时执行一次,当startTime未初始化时,如果计时器外设硬件还没有设置,millis()可能只会产生无意义的结果。

您需要将此代码移到主循环中。由于这是一个嵌入式系统,您还应该放弃所有简单的“原始数据类型”,如int,转而支持stdint.h

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69522626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档