LCD和RTC_DS1307-无法正确打印液晶显示屏上的1-9位秒

时间:2016-04-14 19:11:36

标签: c++ c arduino

我将我的RTC模块和LCD连接到我的Arduino。时间打印正确,但是当它是例如实时10:13:09,在液晶显示屏上打印出10:13:19。当它到达10:13:10它打印出来的很好。 例: 10点13分58秒

十点13分59秒

10点14分10秒

10:14:11 ......这是问题

10:14:19这是问题

10点14分10秒

10:14:11 ......等等。

我的代码(不知道我哪里出错了):

 //time displayed on lcd
lcd.setCursor(4, 0);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
if(Serial.print(now.second(), DEC) >= 10){
   lcd.setCursor(10,0);
   lcd.print(now.second(), DEC);
}
else if(Serial.print(now.second(), DEC) < 10){
  lcd.setCursor(11,0);
  lcd.print(now.second(), DEC);
  lcd.setCursor(10,0);
  lcd.print(" ");
} 

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

代码应该:

 //time displayed on lcd
lcd.setCursor(4, 0);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
if(now.second() >= 10){
   lcd.setCursor(10,0);
   lcd.print(now.second(), DEC);
}
else if(now.second() < 10){
  lcd.setCursor(11,0);
  lcd.print(now.second(), DEC);
  lcd.setCursor(10,0);
  lcd.print(" ");
} 

删除if中的Serial.print Serial.print(now.second(),DEC)返回发送到串行端口的字节数。 https://www.arduino.cc/en/Serial/Print 这里没用。