Buenas noches... lo primero decir que soy muy novato en Arduino e intento aprender poco a poco.
Quiero montar un circuito que encienda las luces de mi coche automaticamente cuando la luz baja de cierto valor. Hasta aqui creo que es sencillo y facil de encontrar el codigo.
El caso es que una vez ajustado el valor de encendido, no quiero que se enciendan directamente cuando baja la luz, si no que se enciendan si esa luz esta en nivel bajo unos 3 segundos, esto es pra que no enciendan al pasar debajo de algun puente.
Tambien quiero que una vez encendidas, esten un minimo de 8 segundos antes de apagarse.
He hecho un codigo que creo que me podria funcionar, pero el primer tiempo de 3 segundos a veces no se cumple.... Igual estoy haciendo algo mal.. no se.
Os pego el codigo que he creado por si alguien me lo puede revisar....
Un saludo y muchas gracias.
/* Este codigo sirve para encender y apagar un led cada vez que ocurre un cambio
en la intensidad de la luz.
Especial para encendido automatico de luces de coche
Tenemos 2 tiempos de espera, el que primero aparece delay 8000 (8 segundos)
es el tiempo que tardan en apagarse las luces cuando aumenta la luz,
el primer delay 3000 (3 segundos) es el tiempo seguido que tiene que estar
en penumbra para encenderse
La salida digital del sensor debe ir conectada al pin A0, y el led debe ir
conectado al pin 3.
*/
int PinSensor = A0; // entrada analoga para nuestro sensor de luz
int PinSalida = 3; // salida digital para realizar la conexion de un led
int LecturaSensor=0; /* variable para almacenar el valor del sensor,
este valor hay que modificarlo al instalar el circuito
en el coche, hacerlo a la hora del crepusculo cuando
pensemos que hace falta encender las luces */
void setup() {
pinMode(PinSalida, OUTPUT); // declarar la PinSalida como salida:
pinMode(PinSensor,INPUT); // declarar la relayPin como salida:
}
void loop() {
LecturaSensor = analogRead(PinSensor); // Leemos el valor del sensor
if (LecturaSensor <800) // Verificamos si el la entrada del sensor a tomado el valor de A0
{
digitalWrite(PinSalida,HIGH); // Encendemos el led
delay(8000); // Tiempo de espera para apagarse la luz
}
else
{
digitalWrite(PinSalida, LOW); // Encendemos el led
delay(3000); // Tiempo seguido en penumbra para encenderse
}
}