延迟10秒继续增加arduino

时间:2019-07-26 13:09:19

标签: delay arduino

为什么10秒的延迟不是恒定值,而是在增加?

我正在使用arduino nano版本3。我设置为9600 bps

void loop() {
      serialPrint("Saaabbb--hghgE");
}
void serialPrint(String message){
  Serial.println(millis());
  Serial.println(message);
  delay(10000);
}

输出

0
Saaabbb--hghgE
10000
Saaabbb--hghgE
20000
Saaabbb--hghgE
30001
Saaabbb--hghgE
40001
Saaabbb--hghgE
50001
Saaabbb--hghgE
60002
Saaabbb--hghgE
70003
Saaabbb--hghgE
80004
Saaabbb--hghgE
90004
Saaabbb--hghgE
100004
Saaabbb--hghgE
110005
Saaabbb--hghgE
120006
Saaabbb--hghgE
130007
Saaabbb--hghgE
140007
Saaabbb--hghgE
150007

2 个答案:

答案 0 :(得分:1)

每两个命令增加的1是实际处理代码所导致的延迟。 Serial.println(millis())需要花费一些时间才能完成,因此总时间为处理时间+您增加的延迟。

例如:

void loop() {
      serialPrint("Saaabbb--hghgE");
}
void serialPrint(String message){
  Serial.println(millis()); //takes 0.5millis (for example)
  Serial.println(message);  //takes 0.5millis (for example)
  delay(10000); //takes 10000millis
}

因此,从millis()开始的总时间为10001。

答案 1 :(得分:0)

是的,这只是处理命令所需要的时间。我不知道您的项目,但是由于我的项目从来不需要毫秒级的精度,因此我认为您可以忽略它。