arduino mills() 函数
本教程将讨论 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 浏览次数:315 分类:c
-
可以通过使用复位按钮,softwarereset 库和 adafruit sleepydog 库来复位 arduino。
发布时间:2024/03/13 浏览次数:181 分类:c
-
可以使用简单的方法 toint()函数和 serial.parseint()函数将 char 转换为 int。
发布时间:2024/03/13 浏览次数:151 分类:c
-
可以使用 arduino 中的循环制作计数器。