如何将延迟转换为毫秒

马丁

我有一个带有延迟的简单代码。我想知道如何将此代码转换为millis?有没有这样做的功能?

long revers = 1000;

void setup() {
  pinMode(D1, OUTPUT); 
  pinMode(D2, OUTPUT);    
}


void loop() {
  digitalWrite(D1, LOW);
  delay(revers);               
  digitalWrite(D2, HIGH);  
  delay(revers);
  digitalWrite(D2, LOW);
  delay(revers);
  digitalWrite(D1, HIGH);
  delay(revers);

}
京东

基本概念是这样的:在变量中记录给定时刻的millis()——比如“开始时间”。现在,在每个循环()期间,通过从“开始时间”中减去millis()来检查已经过去的时间。如果经过的时间大于您设置的延迟时间,则执行代码。重置开始时间以创建重复模式。

这对你来说可能太短了,所以在你深入代码之前,我强烈建议你阅读这篇关于使用 millis() 进行计时的介绍它很长,但它广泛地解释了原理。这将帮助您理解下面的代码。

最后,编写了几个库来简化时序的使用。例如SimpleTimer -library,但您可以为其他人搜索“arduino 计时器库”。我在下面包含了一个例子。

1 秒开,3 秒关:

unsigned long startMillis;  //some global variables available anywhere in the program
unsigned long currentMillis;
const unsigned long period = 1000;  //the value is a number of milliseconds
int fase; //value used to determine what action to perform


void setup() {
  pinMode(7, OUTPUT); 
  pinMode(8, OUTPUT);    
  startMillis = millis();  //initial start time
  fase = 0;
}



void loop() {
  currentMillis = millis();  //get the current "time" (actually the number of milliseconds since the program started)
  if (currentMillis - startMillis >= period)  //test whether the period has elapsed
  {
    if (fase == 0)
    {
      digitalWrite(8, LOW);
      startMillis = currentMillis;  //IMPORTANT to save the start time of the current LED state.
      fase = 1; //increment fase, so next action will be different
    }
    else if (fase == 1)
    {               
      digitalWrite(7, HIGH);  
      startMillis = currentMillis; 
      fase = 2;
    }
    else if (fase == 2)
    {
      digitalWrite(7, LOW);
      startMillis = currentMillis; 
      fase = 3;
    }
    else if (fase == 3)
    {
      digitalWrite(8, HIGH);
      fase = 0;
      startMillis = currentMillis; 
    }
  }
}

使用 SimpleTimer 库的闪烁 LED 示例

#include <SimpleTimer.h>

// the timer object
SimpleTimer timer;
int ledPin = 13; 

// a function to be executed periodically
void repeatMe() {
    digitalWrite(ledPin, !digitalRead(ledPin));
}

void setup() {
    pinMode(ledPin, OUTPUT);
    timer.setInterval(1000, repeatMe);
}

void loop() {
    timer.run();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将日期转换为毫秒

来自分类Dev

如何将毫秒转换为Javascript UTC日期?

来自分类Dev

如何将毫秒转换为相对时间?

来自分类Dev

如何将日期时间对象转换为毫秒

来自分类Dev

如何将毫秒转换为日期(每月的某天)?

来自分类Dev

如何将毫秒转换为“ mmm:ss”格式?

来自分类Dev

如何将毫秒日期转换为DateTime?

来自分类Dev

我们如何将simTime()转换为毫秒?

来自分类Dev

如何将毫秒转换为列表中的正常时间?

来自分类Dev

如何将毫秒转换为天/小时/分钟

来自分类Dev

如何将毫秒精度的日期时间转换为 MySQL 中 Unix 纪元的毫秒?

来自分类Dev

如何将Angular Promise转换为jQuery延迟对象

来自分类Dev

如何将按钮单击去抖动延迟转换为文本框按键延迟?

来自分类Dev

如何将时间戳字符串转换为毫秒?

来自分类Dev

如何将Double中的秒转换为秒和毫秒的两个int?

来自分类Dev

在熊猫中,如何将字符串转换为以毫秒为单位的日期时间对象?

来自分类Dev

Microsoft Reporting Services-如何将毫秒转换为dd:mm:ss格式

来自分类Dev

如何将Double中的秒转换为秒和毫秒的两个int?

来自分类Dev

Netezza-如何将时间戳/日期时间转换为13位UNIX时间毫秒?

来自分类Dev

如何将毫秒(整数)转换为mm:ss格式的字符串?

来自分类Dev

MomentJS:如何将特定时区和特定格式的时间转换为毫秒

来自分类Dev

如何将以毫秒为单位的时间转换为DateTime?

来自分类Dev

如何将Á转换为A

来自分类Dev

如何将Á转换为A

来自分类Dev

将时间转换为毫秒?

来自分类Dev

将毫秒转换为年

来自分类Dev

将时间转换为毫秒

来自分类Dev

将时间转换为毫秒

来自分类Dev

如何正确将MIDI节拍转换为毫秒?

Related 相关文章

  1. 1

    如何将日期转换为毫秒

  2. 2

    如何将毫秒转换为Javascript UTC日期?

  3. 3

    如何将毫秒转换为相对时间?

  4. 4

    如何将日期时间对象转换为毫秒

  5. 5

    如何将毫秒转换为日期(每月的某天)?

  6. 6

    如何将毫秒转换为“ mmm:ss”格式?

  7. 7

    如何将毫秒日期转换为DateTime?

  8. 8

    我们如何将simTime()转换为毫秒?

  9. 9

    如何将毫秒转换为列表中的正常时间?

  10. 10

    如何将毫秒转换为天/小时/分钟

  11. 11

    如何将毫秒精度的日期时间转换为 MySQL 中 Unix 纪元的毫秒?

  12. 12

    如何将Angular Promise转换为jQuery延迟对象

  13. 13

    如何将按钮单击去抖动延迟转换为文本框按键延迟?

  14. 14

    如何将时间戳字符串转换为毫秒?

  15. 15

    如何将Double中的秒转换为秒和毫秒的两个int?

  16. 16

    在熊猫中,如何将字符串转换为以毫秒为单位的日期时间对象?

  17. 17

    Microsoft Reporting Services-如何将毫秒转换为dd:mm:ss格式

  18. 18

    如何将Double中的秒转换为秒和毫秒的两个int?

  19. 19

    Netezza-如何将时间戳/日期时间转换为13位UNIX时间毫秒?

  20. 20

    如何将毫秒(整数)转换为mm:ss格式的字符串?

  21. 21

    MomentJS:如何将特定时区和特定格式的时间转换为毫秒

  22. 22

    如何将以毫秒为单位的时间转换为DateTime?

  23. 23

    如何将Á转换为A

  24. 24

    如何将Á转换为A

  25. 25

    将时间转换为毫秒?

  26. 26

    将毫秒转换为年

  27. 27

    将时间转换为毫秒

  28. 28

    将时间转换为毫秒

  29. 29

    如何正确将MIDI节拍转换为毫秒?

热门标签

归档