Duda para mover un servo

Hola soy muy nuevo en el tema de programacion arduino y quisiera pedir ayuda con un codigo para poder mover un servo 180 grados cada 6 horas… de momento estoy usando el codigo de ejemplo que trae el programa arduino y modificando sus valores pero no se como hacer para generar un temporizador de 6 horas entre un movimiento y el otro.
Desde ya muchas gracias!!

/* Sweep
 by BARRAGAN <http://barraganstudio.com> 
 This example code is in the public domain.

 modified 8 Nov 2013
 by Scott Fitzgerald
 http://arduino.cc/en/Tutorial/Sweep
*/ 

#include <Servo.h> 
 
Servo myservo;  // create servo object to control a servo 
                // twelve servo objects can be created on most boards
 
int pos = 0;    // variable to store the servo position 
 
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
void loop() 
{ 
  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(30);                       // 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(30);                       // waits 15ms for the servo to reach the position 
  } 
}

Aca lo tienes.
El sistema arranca enviando a 180 grados al servo y cada 6 horas cambiara entre 0 y 180 como entendí que quieres que funcione.
Para probarlo modifica RETARDO por un valor como por ejemplo un 30 o 60 segundos entonces debes poner 301000 o 601000 mseg
Comenta // el tiempo de 6hs y descomenta el de 30 segundos y pruebalo.

#include <Servo.h> 
#define RETARDO 6*3600*1000    // 6 horas x 3600 segundos/hora * 1000 mseg
// define RETARDO 30*1000          // prueba de 30 segundos 

Servo myservo;  // create servo object to control a servo 
 
unsigned long start;
bool estado = false;   
void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
  start = millis() + RETARDO; 
} 
 
void loop()  { 
  
  if (millis() > start) {
  	  estado = !estado;    // cada 6 horas estado cambia de 0 a 1 y va a 180 o a 0 alternadamente
  	  if (estado)
      	   myservo.write(180);              // servo a 180 grados 
      else 
      	   myservo.write(0);              // vuelvo a 0 grados

  	  start = millis() + 6*3600*1000; // 6 horas x 3600 segundos/hora * 1000 mseg
  }     
}

Hola de nuevo... gracias por la ayuda! pero luego de probar este código no me esta funcionando bien... :( al conectar el servo lo único que hace es una especie de vibración pero no se mueve... probé con 30 segundos tal como me recomendaste pero hace lo mismo... no se que puede ser... tal vez me explique mal, lo que yo quiero es que el servo gire 180 grados, pare espere 6 horas y vuelva a girar de nuevo a 0 y así sucesivamente. El giro debe ser gradual pero en un tiempo no superior a 3 o 4 segundos. Es para el volteo de huevos en una incubadora pequeña...

El giro debe ser gradual pero en un tiempo no superior a 3 o 4 segundos. Es para el volteo de huevos en una incubadora pequeña...

Donde pusiste esto en el primer post?

Bueno entonces hazlo gradual. Usa el criterior que te he dado y comienza la secuencia de 6 hs cuando se llegue a 180 o a 0 grados.

Disculpa que no lo mencione antes... El problema es que no tengo idea de como hacer eso... en el primer código que puse trate de varias maneras de conseguir un retraso de 6 horas entre un movimiento y el otro pero no pude, sin embargo si logre que el movimiento fuera gradual. EL problema es que necesito que el servo envés de arrancar inmediatamente que llega a un extremo pare y ahi espere las 6 horas para arrancar en el sentido opuesto. Es decir un movimiento con una duracion de aproximadamente 4 segundos y un angulo de 180 grados cada 6 horas. Se me dificulta explicarlo mejor.