📅  最后修改于: 2023-12-03 15:29:27.769000             🧑  作者: Mango
Arduino是一款嵌入式开发板,可用于控制各种电子设备。掌握如何在Arduino中使用时间功能,对于许多项目都是必要的。在本文中,我们将介绍如何在Arduino中使用不同的时间功能。
Arduino中有几个常用的时间函数,以下是它们的介绍:
millis()
millis()
函数返回自Arduino板初始化以来经过的毫秒数。该函数可用于精确测量时间间隔。
unsigned long currentMillis = millis();
unsigned long previousMillis = 0;
unsigned long interval = 1000;
void loop() {
if (currentMillis - previousMillis >= interval) {
// 执行任务
previousMillis = currentMillis;
}
currentMillis = millis();
}
micros()
同样,micros()
函数返回自Arduino板初始化以来经过的微秒数。它比millis()
更加精确,但它的计时器是从零开始的,也更容易溢出。
delay()
delay()
函数会暂停程序的执行一定的毫秒数。这很容易使用,但它会占用Arduino板的处理器,因为它会等待一定的时间。例如:
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}
该代码将在LED引脚上打开和关闭电流,每次等待1秒。
delayMicroseconds()
delayMicroseconds()
函数与delay()
函数类似,但是它将暂停一定数量的微秒。由于它只暂停很短的时间,因此会消耗更少的处理器时间。
time()
time()
函数返回自1970年1月1日以来经过的秒数。该函数需要使用时间库或RTC模块。
实时时钟模块(RTC)是一种可用于Arduino的外部组件,可存储并保持时间。该模块将保持时间,即使Arduino板被断电或重启。
以下是使用RTC模块设置时间的示例:
#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 rtc;
DateTime now;
void setup() {
Wire.begin();
rtc.begin();
if (!rtc.isrunning()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
now = rtc.now();
}
void loop() {
now = rtc.now();
}
了解和掌握Arduino的时间函数是非常有用的,可以帮助您精确测量时间间隔和控制设备的信号。实时时钟模块可使您的Arduino板在掉电或重启后也能够保持时间。