LDR y relé

Hola , tengo un sketch muy fácil pero que por alguna cosa no funciona correctamente, es para encender unas luces con LDR, en base a la resistencia. Pongo el sketch y lo explico un poco. Lo que sucede es que parece funcionar bien, lo tapas y activa el relé y le das luz y lo desactiva, pero cuando pasan mas o menos 15 horas pues aunque se vaya la luz no lo activa y me toca hacerle un reset y ya funciona otra vez, alguien sabe porque?

El sketch es el siguiente:

void setup(). {

Serial.begin(9600);
pin.Mode(8,OUTPUT);
}

void loop () { 
int valor= analogRead(A0);
Serial.printIn(valor);
if (valor>290) { 
    digitalWrite(8,LOW);
}else{
     digitalWrite(8,HIGH);
}
} 
[\code]

Hola alguien por el foro??

Moderador@JOSEBERMUDEZ, ya van 33 msgs y sigues posteando códigos sin etiquetas?
Por favor edita!

Vale surbyte ya está, se me había pasado perdón.

Buenas Josebermudez, te faltaria mostrar el cableado, es raro que luego cuando se va la luz no se active ¿no sera que ese valor de 290 no cubre una oscuridad natural del ambiente pero si cuando lo tapas?

Saludos.

Hola hypernovat , pues la verdad es que eso mismo pensé yo, pero abrí el monitor serie y me decía que daba 1000 asique debería de encender , lo curioso es que cuando me meto en el monitor serie pues se queda como 2 segundos pensando y me sale el valor de 1000 y vuelve a funcionar todo bien activando la luz, y al día siguiente falla, creo que va a ser la placa arduino.

No sabria que decirte, si me muestras la conexion (que estimo ha de ser simple) me ofresco a reproducir el proyecto con mi arduino y un modulo rele que por lo visto se activa con LOW. En cuanto al monitor serie, recuerda que cada vez que lo abres resetea el programa, tal vez sea eso.

Espera, veo algunas cosas raras en tu programacion

void setup(). {   //aqui

Serial.begin(9600);
pin.Mode(8,OUTPUT);  //aqui
}

void loop () {
int valor= analogRead(A0);
Serial.printIn(valor);               //aqui
if (valor>290) {
    digitalWrite(8,LOW);
}else{
     digitalWrite(8,HIGH);
}
}