当前位置:首页Arduino > 正文

Arduino uno获取ds3231时钟模块的年、月、日、时、分、秒信息

作者:野牛程序员:2023-12-26 12:22:24Arduino阅读 2742

使用Arduino Uno获取DS3231时钟模块的年、月、日、时、分、秒信息的示例代码如下:

#include <Wire.h>
#include <RTClib.h>

RTC_DS3231 rtc;

void setup() {
  Serial.begin(9600);

  if (!rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, let's set the time!");
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  DateTime now = rtc.now();

  int year = now.year();
  int month = now.month();
  int day = now.day();
  int hour = now.hour();
  int minute = now.minute();
  int second = now.second();

  Serial.print("Current Date & Time: ");
  printDigits(year);
  Serial.print("-");
  printDigits(month);
  Serial.print("-");
  printDigits(day);
  Serial.print(" ");
  printDigits(hour);
  Serial.print(":");
  printDigits(minute);
  Serial.print(":");
  printDigits(second);
  Serial.println();

  delay(1000); // 等待1秒钟
}

void printDigits(int digits) {
  // 在数字小于10时前面加0
  if (digits < 10)
    Serial.print('0');
  Serial.print(digits);
}

请确保已经安装了RTC库。可以在Arduino IDE中通过"工具" -> "管理库" -> 搜索"RTClib"来安装。

这个代码使用了RTC库,该库支持DS3231时钟模块。在setup函数中初始化RTC对象,并在loop函数中获取当前时间,并将其通过串口输出。printDigits函数用于确保在数字小于10时前面加上0。

请记得连接DS3231模块到Arduino Uno的I2C引脚(通常是A4和A5)以便能够正确通信。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击