arduinolcd1602和ds1307时钟模块显示时间位数任何时间都是两位数
时间: 2023-10-22 14:04:56 浏览: 168
Arduino连接时钟模块在LCD1602上显示时间
好的,让我们来看看如何解决这个问题。这个问题通常是由于在显示时间时,不足两位数的数字前面没有加“0”导致的。以下是一个示例代码片段,可以帮助你解决这个问题:
```c
#include <Wire.h>
#include <LiquidCrystal.h>
#include <RTClib.h>
RTC_DS1307 rtc;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
Wire.begin();
rtc.begin();
// 如果RTC模块没有被初始化,则把下面一行解除注释
// rtc.adjust(DateTime(__DATE__, __TIME__));
lcd.print("Time: ");
}
void loop() {
DateTime now = rtc.now();
int hour = now.hour();
int minute = now.minute();
int second = now.second();
lcd.setCursor(6, 0);
if (hour < 10) {
lcd.print("0");
}
lcd.print(hour);
lcd.print(":");
if (minute < 10) {
lcd.print("0");
}
lcd.print(minute);
lcd.print(":");
if (second < 10) {
lcd.print("0");
}
lcd.print(second);
delay(1000);
}
```
在这个示例中,我们通过使用 `if` 语句来检查当前的时间是否小于10,并在需要时在它前面加上“0”。这样就可以确保在任何时候,时间数字都是两位数。
阅读全文