probleme horloge lcd

bonjour j'ai toujours un problème avec mon programme, il concerne le défilement des secondes .
j'ai ajouté le code de la lib rtc
puis j'ai affiché l'heure pas de problème
puis j'ai affiché les minutes pas de problème
et j'ai ajouté les secondes et là elles s'affichent mais ne défilent pas en temps réel.
le servo moteur met environ 10 secondes à faire sa rotation de 0° à 180° et de 180° à 0°
en fin de cycle les secondes sont remises à jour puis se refigent.

ex: 19:31:10 le cycle du servo se fait, les secondes ne défilent pas, puis apparait 19:31:20 et ainsi de suite ...
Quelqu'un pourrait-il m'aider , merci d'avance...

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


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
Servo myservo; 
RTC_DS1307 RTC;

int pos = 0;    // variable to store the servo position
const int relais=7;//pin7 pour le controle du relai



void setup() {
  
  myservo.attach(8);  // attaches the servo on pin 8 to the servo object
  lcd.begin(20, 2); //nombre de lignes et de colonnes du LCD
  pinMode (relais, OUTPUT);
  Wire.begin();
  RTC.begin();
}

void loop()

{
 
 bougeservo();
 active_relais();

  DateTime now = RTC.now();
  
  // l'heure sur la premiêre ligne du LCD
  lcd.setCursor(0, 0);
  lcd.print(now.hour());
   lcd.print(":");
  if (now.minute() < 10) {
    lcd.print("0");
  }
  lcd.print(now.minute());
   lcd.print(":");
  if (now.second() < 10) {
    lcd.print("0");
  }
  lcd.print(now.second());
 }


void bougeservo(){
 for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
}

void active_relais(){
  digitalWrite (relais,HIGH);
 lcd.setCursor(0,1);
  lcd.print("OSCILLO OFF");
delay(5000);
  digitalWrite (relais,LOW);
 lcd.setCursor(0,1);
  lcd.print("OSCILLO ON"); 

}