Aumentar el tiempo (delay);

Hola buenas noches, tengo funcionando un pequeño Sketch, con una app android que me que hasta ahora me ha ido bien, pero ahora necesito poner delay 1 hora, pero el tiempo máximo que me sale son 6 segundos aproximadamente, da igual que ponga delay (20000); delay (360000); porque el tiempo son siempre 6 ó 8 segundos, he intentado varias formas de hacerlo pero no aumenta más de ese tiempo, si le pongo delay (1000); si me lo hace bien, a ver si me podéis echar una mano.

Gracias

#define ledpin12 12
#define ledpin11 11
#define ledpin10 10 
#include <avr/wdt.h> // Incluir la librería que contiene el watchdog (wdt.h)


char rxChar; // Variable para recibir datos del puerto serie       
 
 
// Configurar el arduino
void setup() {
  
  {
  wdt_disable(); // Desactivar el watchdog mientras se configura
  wdt_enable(WDTO_8S); // Configurar a dos segundos
}
  
// Pin 12 como salida
pinMode(ledpin12, OUTPUT);
// Pin 11 como salida de 1 segundo de cierre
pinMode(ledpin11, OUTPUT);
// Pin 10 coo sallida 1 segundo
pinMode(ledpin10, OUTPUT);
// Comunicación serie a 9600 baudios
Serial.begin(9600);  

}

// Ciclo infinito, programa principal
void loop()


{
// Si hay datos disponibles en el buffer
if( Serial.available() )
{
// Leer un byte y colocarlo en variable
rxChar = Serial.read();
 
// Procesar comando de un solo byte 
if( rxChar == '1' )
{
digitalWrite(ledpin12, HIGH);
delay (20000);
digitalWrite(ledpin12, LOW);
Serial.println("ON");
}

else if ( rxChar == '0' )
{
digitalWrite(ledpin12, LOW);

Serial.println("OFF");

}


//if(rxChar == '0' )

//digitalWrite(ledpin11, LOW);
//delay (0);
//rxChar='0';


if ( rxChar== '2' )
{ 
digitalWrite(ledpin11, HIGH);
delay (20000);
digitalWrite(ledpin11, LOW);
rxChar='0';
} 
else if(rxChar == '0' )
{
digitalWrite(ledpin11, LOW);
delay (0);
rxChar='0';
}


if(rxChar == '0' )
{
digitalWrite(ledpin10, LOW);
delay (0);
rxChar='0';
}

if ( rxChar== '3' )
{ 
digitalWrite(ledpin10, HIGH);
delay (10000);
digitalWrite(ledpin10, LOW);
rxChar='0';
}

{
  wdt_reset(); // Actualizar el watchdog para que no produzca un reinicio
}
}



 // Podemos hacer otras cosas aquí

}

Prueba agregando sufijo UL (unsigned long) al valor literal:

delay(120000UL);

Se puede tener un watchdog de 2 segundos con un delay mayor a 2 segundos?

Pues tienes toda la razón, surbyte. Me ceñí a lo inmediato y no miré el resto del código, pero ¿a qué extraña mente maquiavélica podía ocurrírsele usar el watchdog y a la vez delays de una hora?

Hay de todo en este mundo maquiavélico. Watchdog y delay no son amigos, sino enemigos.
Se entiende ignacio123?
Reemplaza delay por millis() si te es posible.