迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

Arduino mills() 函数

作者:迹忆客 最近更新:2024/03/13 浏览次数:

本教程将讨论 millis() 函数在 Arduino 中不同应用程序中的使用。本教程还将讨论一些例子来更好地理解 millis() 函数。


在 Arduino 中使用 millis() 函数检查经过的时间

millis() 函数返回类型为 unsigned long 的无符号变量,该变量包含自 Arduino 开发板开始运行代码以来经过的毫秒数。由于返回的变量的类型为 unsigned long,该数字将在 49 天后溢出并重置为零。

unsigned long currentTime;

void setup() { Serial.begin(19200); }

void loop() {
  Serial.print("Time Stamp: ");
  currentTime = millis();
  Serial.println(currentTime);
  delay(1000);
}

在上面的代码中,currentTime 是类型为 unsigned long 的变量,用于存储时间。查看此链接以获取有关 millis() 函数的更多信息。


在 Arduino 中使用 millis() 函数闪烁 LED

在此示例中,我们将使用 millis() 函数闪烁一个 LED。考虑到你必须使 LED 闪烁特定的时间,例如 1 秒钟。在这种情况下,你可以使用 millis() 函数使 LED 闪烁特定时间。如果你使用 delay() 函数使 LED 闪烁,它还将暂停你的代码,直到延迟时间结束。因此,可以使用 millis() 函数来代替使用 delay() 函数,并且该函数不会暂停你的代码。

unsigned long startTime;
unsigned long currentTime;
const unsigned long period = 1000;
const byte ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  startTime = millis();  // initial start time
}

void loop() {
  currentTime = millis();
  if (currentTime - startTime >= period)  // test whether the period has elapsed
  {
    digitalWrite(ledPin,
                 !digitalRead(ledPin));  // if so, change the state of the LED.
    startTime = currentTime;
  }
}

在此示例中,LED 将精确地打开和关闭一秒钟。你可以通过更改上面代码中可变周期的值来更改闪烁周期。


使用 millis() 函数更改 Arduino 中 LED 的亮度

在此示例中,我们将使用 millis() 函数更改 LED 的亮度。我们将设置一个期间,在此期间 LED 的亮度将增加。为此,我们需要将 LED 与 Arduino 的 PWM 引脚连接。我们可以使用 analogWrite() 函数将亮度写入 LED。我们可以使用 analogWrite 功能在 0 到 255 之间改变 LED 的亮度。

unsigned long startTime;
unsigned long currentTime;
const unsigned long period = 10;
const byte ledPin = 10;  // using an LED on a PWM pin.
byte LedBrightness = 0;  // initial brightness
byte LedIncrement = 1;   // amount to change the brightness

void setup() {
  pinMode(ledPin, OUTPUT);
  startTime = millis();  // initial start time
}

void loop() {
  currentTime = millis();
  if (currentTime - startTime >= period) {
    analogWrite(ledPin, LedBrightness);  // set the brightness
    LedBrightness += LedIncrement;
    startTime = currentTime;
  }
}

在此示例中,LED 亮度将每 10 毫秒增加一次。你可以通过更改以上代码中的可变周期来更改增量时间。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:166 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

Arduino 复位

发布时间:2024/03/13 浏览次数:165 分类:C++

可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。

Arduino 的字符转换为整型

发布时间:2024/03/13 浏览次数:116 分类:C++

可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。

Arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:166 分类:C++

可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:82 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:184 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:100 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:69 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便