Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 时间倒计时编码_Arduino - Fatal编程技术网

Arduino 时间倒计时编码

Arduino 时间倒计时编码,arduino,Arduino,我一直在做一个Arduino倒计时计时器。一个16x2的显示器是有线的,但现在我只需要得到正确的编码 #include <LiquidCrystal.h> LiquidCrystal lcd(12, 13, 11, 10, 9, 8); //Pins used for display signed short minutes, seconds; char timeline[16]; void setup() { lcd.begin(16, 2); //Start cur

我一直在做一个Arduino倒计时计时器。一个16x2的显示器是有线的,但现在我只需要得到正确的编码

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 13, 11, 10, 9, 8);   //Pins used for display
signed short minutes, seconds;
char timeline[16];

void setup() {

  lcd.begin(16, 2); //Start cursor setting
  lcd.print("Time Remaining:"); //Top bar message


}

void loop() {

  lcd.setCursor(0, 1); 
  sprintf(timeline,"%0.2d:%0.2d secs", minutes, seconds);
  lcd.print(timeline);

  delay(1000);
  seconds--;

 if (minutes > 0 || seconds > 0); { // count down
  if (--seconds < 0) { 
   seconds = 59; 
    --minutes; 
    }
  }
}
#包括
液晶液晶显示器(12,13,11,10,9,8)//用于显示的管脚
签名短分,秒;
字符时间线[16];
无效设置(){
lcd.begin(16,2);//开始光标设置
lcd.print(“剩余时间:”;//顶栏消息
}
void循环(){
lcd.setCursor(0,1);
sprintf(时间线,“%0.2d:%0.2d秒”,分,秒);
lcd.打印(时间表);
延迟(1000);
秒--;
如果(分钟>0 | |秒>0);{//倒计时
如果(--秒<0){
秒=59;
--会议记录;
}
}
}
我目前的问题是,它正在累积。相反,我需要它从45分00秒开始倒计时,计时器在达到00:00时停止

我需要从45分00秒开始倒计时

我没看到你把这个放在任何地方

还有一个建议可以让代码更容易理解。仅以秒为单位计数。2分5秒总共是125秒。

要输出此代码,请将其转换为分钟=totalseconds%60,秒=totalseconds/60。

您确定这是您所说的同一代码吗?我不明白为什么它应该在计数。秒可能是按顺序倒计时:0-1-2。。。它总是跳过“0”秒,因此每分钟的长度将为59秒。我原以为会,但它会从00:00开始,然后移动到00:-1、00:-2,依此类推。我会从
if(minutes>0&&seconds>0)//倒计时开始。如果(--seconds<0){seconds=59;--minutes;}
,也可以使用
。最后,你应该将分和秒初始化为某个值。我来试一试,谢谢应该是:
if(minutes>0 | | seconds>0)
现在就成功了。谢谢你的帮助:)