Displaying time on a 4x20 LCD

Hi im new to the Arduino and im liking it so far, but I have a slight issue with something that im making, I have the uno, a DS1307 RTC module and a Basic HD44780 LCD and 2 shift registers for the binary clock display, I have it all connected up and running what I want it to, but I would like it if the display could output the time to the LCD to show 01:01:01 for time insted of 1:1:1, because when the seconds get to 59 it goes to 19, 29, 39 and so on untill 20 and it refreshes the last digit, I can solve the issue with LCD.clear and a small delay but this causes the display to 'blink' and also it seems to interfere with the binary clock out put, as i say im new to Arduino and also to here so if this has been answered, could someone point me in the right direction, I did have a 'Google' before trying here but had no joy.

Thanks in advance

Print leading zero

   if(second <10)
  {
    lcd.print("0");
  }
  lcd.print(second);

... so if this has been answered, could someone point me in the right direction, I did have a 'Google' before trying here but had no joy.

This problem comes up quite regularly but coming up with the correct search terminology is not easy.

Here is one of the latest threads : --> Arduino rounding up numbers to print on display - #3 by floresta - Displays - Arduino Forum
And another: --> 16x2 HD44780 lcd screen displays garbage characters after some minutes of use - #2 by floresta - Displays - Arduino Forum
yet another: --> Problem with 16x2 LCD display - Displays - Arduino Forum

Don

Nick_Pyner:
Print leading zero

   if(second <10)

{
    lcd.print("0");
  }
  lcd.println(second);

The lcd.println(...); is going to introduce extraneous characters. Surely you meant lcd.print(...);

Don

Yes I did. It was accidently lifted from a serial.print

hi all thanks for quick response I will try it in the morning, once again thanks!