Este es el codigo que valdria perfecto para la imagen que lo acompaña, tiene su copyright, y por supuesto es de libre uso y gratuito para los compañeros del foro:
/////////////////////////////////////////////////////////////////////////////////
// ARCHIVO: Controlador Amanecerr-Anochecerr.ino
// AUTOR: Layans
// Copyright 2014
// PROPOSITO: Iluminacion diaria de un aviario en epoca de cria y reposo.
// VERSION: 1.2 Alba-Luzdia-ocaso-noche
// FECHA: 23/6/2014
////////////////////////////////////////////////////////////////////////////////
int Linea1 = 3; //linea1 es fila jaulas primera
int Linea2 = 5;// linea2 jaulas fila segunda
int Linea3 = 6; //linea3 jaulas fila tercera
int Linea4 = 9; //linea4 jaulas fila cuarta
int interruptoresta = 4; // interruptor estacional cria-reposo conectado al pin 4
void setup()
{
pinMode(Linea1, OUTPUT); //DEFINIMOS LOS PIN 3 5 6 9 COMO SALIDA
pinMode(Linea2, OUTPUT);
pinMode(Linea3, OUTPUT);
pinMode(Linea4, OUTPUT);
pinMode(interruptoresta, INPUT); // pin 4 como entrada
Serial.begin(9600); // empieza la comunicacion a 9600bps
}
void loop()
{
if(digitalRead(interruptoresta) == HIGH); // si esta activo seria 30 minutos que es la epoca cria
{
analogWrite(Linea1,0); // comienzo de amanecer de 30 minutos que son 1800000 milisegundos
analogWrite(Linea2,0);
analogWrite(Linea3,0);
analogWrite(Linea4,0);
delay(112500); //salto de menos 2 minutos
analogWrite(Linea1,16);
analogWrite(Linea2,16);
analogWrite(Linea3,16);
analogWrite(Linea4,16);
delay(112500);
analogWrite(Linea1,32);
analogWrite(Linea2,32);
analogWrite(Linea3,32);
analogWrite(Linea4,32);
delay(112500);
analogWrite(Linea1,48);
analogWrite(Linea2,48);
analogWrite(Linea3,48);
analogWrite(Linea4,48);
delay(112500);
analogWrite(Linea1,64);
analogWrite(Linea2,64);
analogWrite(Linea3,64);
analogWrite(Linea4,64);
delay(112500);
analogWrite(Linea1,79);
analogWrite(Linea2,79);
analogWrite(Linea3,79);
analogWrite(Linea4,79);
delay(112500);
analogWrite(Linea1,96);
analogWrite(Linea2,96);
analogWrite(Linea3,96);
analogWrite(Linea4,96);
delay(112500);
analogWrite(Linea1,111);
analogWrite(Linea2,111);
analogWrite(Linea3,111);
analogWrite(Linea4,111);
delay(112500);
analogWrite(Linea1,127);
analogWrite(Linea2,127);
analogWrite(Linea3,127);
analogWrite(Linea4,127);
delay(112500);
analogWrite(Linea1,143);
analogWrite(Linea2,143);
analogWrite(Linea3,143);
analogWrite(Linea4,143);
delay(112500);
analogWrite(Linea1,159);
analogWrite(Linea2,159);
analogWrite(Linea3,159);
analogWrite(Linea4,159);
delay(112500);
analogWrite(Linea1,175);
analogWrite(Linea2,175);
analogWrite(Linea3,175);
analogWrite(Linea4,175);
delay(112500);
analogWrite(Linea1,191);
analogWrite(Linea2,191);
analogWrite(Linea3,191);
analogWrite(Linea4,191);
delay(112500);
analogWrite(Linea1,207);
analogWrite(Linea2,207);
analogWrite(Linea3,207);
analogWrite(Linea4,207);
delay(112500);
analogWrite(Linea1,223);
analogWrite(Linea2,223);
analogWrite(Linea3,223);
analogWrite(Linea4,223);
delay(112500);
analogWrite(Linea1,239);
analogWrite(Linea2,239);
analogWrite(Linea3,239);
analogWrite(Linea4,239);
delay(112500);
analogWrite(Linea1,255);
analogWrite(Linea2,255);
analogWrite(Linea3,255);
analogWrite(Linea4,255); // led encendidos al 100%
delay(43200000); // tiempo que los led estan encendidos al 100% con tiempo en milisegundos que son 12 horas
analogWrite(Linea1,239); // comienzo de anochecer de 30 minutos que son 1800000
analogWrite(Linea2,239);
analogWrite(Linea3,239);
analogWrite(Linea4,239);
delay(112500);//algo menos de 4 minutos por salto
analogWrite(Linea1,223);
analogWrite(Linea2,223);
analogWrite(Linea3,223);
analogWrite(Linea4,223);
delay(112500);
analogWrite(Linea1,207);
analogWrite(Linea2,207);
analogWrite(Linea3,207);
analogWrite(Linea4,207);
delay(112500);
analogWrite(Linea1,191);
analogWrite(Linea2,191);
analogWrite(Linea3,191);
analogWrite(Linea4,191);
delay(112500);
analogWrite(Linea1,175);
analogWrite(Linea2,175);
analogWrite(Linea3,175);
analogWrite(Linea4,175);
delay(112500);
analogWrite(Linea1,159);
analogWrite(Linea2,159);
analogWrite(Linea3,159);
analogWrite(Linea4,159);
delay(112500);
analogWrite(Linea1,143);
analogWrite(Linea2,143);
analogWrite(Linea3,143);
analogWrite(Linea4,143);
delay(112500);
analogWrite(Linea1,127);
analogWrite(Linea2,127);
analogWrite(Linea3,127);
analogWrite(Linea4,127);
delay(112500);
analogWrite(Linea1,111);
analogWrite(Linea2,111);
analogWrite(Linea3,111);
analogWrite(Linea4,111);
delay(112500);
analogWrite(Linea1,96);
analogWrite(Linea2,96);
analogWrite(Linea3,96);
analogWrite(Linea4,96);
delay(112500);
analogWrite(Linea1,79);
analogWrite(Linea2,79);
analogWrite(Linea3,79);
analogWrite(Linea4,79);
delay(112500);
analogWrite(Linea1,64);
analogWrite(Linea2,64);
analogWrite(Linea3,64);
analogWrite(Linea4,64);
delay(112500);
analogWrite(Linea1,48);
analogWrite(Linea2,48);
analogWrite(Linea3,48);
analogWrite(Linea4,48);
delay(112500);
analogWrite(Linea1,32);
analogWrite(Linea2,32);
analogWrite(Linea3,32);
analogWrite(Linea4,32);
delay(112500);
analogWrite(Linea1,16);
analogWrite(Linea2,16);
analogWrite(Linea3,16);
analogWrite(Linea4,16);
delay(112500);
analogWrite(Linea1,0);
analogWrite(Linea2,0);
analogWrite(Linea3,0);
analogWrite(Linea4,0);
delay(39600000); //retardo de 11horas para que no empiece el ciclo de nuevo y asi se apaga la placa y la fuente los led hasta el dia siguiente
}
Else if(digitalRead(interruptoresta) == LOW); // esta desactivado seran 15 minutos que es epoca de reposo
{
analogWrite(Linea1,0); // comienzo de amanecer de 15 minutos que son 900000 milisegundos
analogWrite(Linea2,0);
analogWrite(Linea3,0);
analogWrite(Linea4,0);
delay(112500); //salto de menos de 2minutos
analogWrite(Linea1,32);
analogWrite(Linea2,32);
analogWrite(Linea3,32);
analogWrite(Linea4,32);
delay(112500);
analogWrite(Linea1,64);
analogWrite(Linea2,64);
analogWrite(Linea3,64);
analogWrite(Linea4,64);
delay(112500);
analogWrite(Linea1,96);
analogWrite(Linea2,96);
analogWrite(Linea3,96);
analogWrite(Linea4,96);
delay(112500);
analogWrite(Linea1,127);
analogWrite(Linea2,127);
analogWrite(Linea3,127);
analogWrite(Linea4,127);
delay(112500);
analogWrite(Linea1,159);
analogWrite(Linea2,159);
analogWrite(Linea3,159);
analogWrite(Linea4,159);
delay(112500);
analogWrite(Linea1,191);
analogWrite(Linea2,191);
analogWrite(Linea3,191);
analogWrite(Linea4,191);
delay(112500);
analogWrite(Linea1,213);
analogWrite(Linea2,213);
analogWrite(Linea3,213);
analogWrite(Linea4,213);
delay(112500);
analogWrite(Linea1,255);
analogWrite(Linea2,255);
analogWrite(Linea3,255);
analogWrite(Linea4,255); // led encendidos al 100%
delay(36000000); // tiempo que los led estan encendidos al 100% con tiempo en milisegundos que son 10 horas
analogWrite(Linea1,229); // comienzo de anochecer de 15 minutos que son 900000 milisegundos
analogWrite(Linea2,229);
analogWrite(Linea3,229);
analogWrite(Linea4,229);
delay(112500); //algo menos de 2 minutos por salto
analogWrite(Linea1,213);
analogWrite(Linea2,213);
analogWrite(Linea3,213);
analogWrite(Linea4,213);
delay(112500);
analogWrite(Linea1,191);
analogWrite(Linea2,191);
analogWrite(Linea3,191);
analogWrite(Linea4,191);
delay(112500);
analogWrite(Linea1,159);
analogWrite(Linea2,159);
analogWrite(Linea3,159);
analogWrite(Linea4,159);
delay(112500);
analogWrite(Linea1,127);
analogWrite(Linea2,127);
analogWrite(Linea3,127);
analogWrite(Linea4,127);
delay(112500);
analogWrite(Linea1,96);
analogWrite(Linea2,96);
analogWrite(Linea3,96);
analogWrite(Linea4,96);
delay(112500);
analogWrite(Linea1,64);
analogWrite(Linea2,64);
analogWrite(Linea3,64);
analogWrite(Linea4,64);
delay(112500);
analogWrite(Linea1,32);
analogWrite(Linea2,32);
analogWrite(Linea3,32);
analogWrite(Linea4,32);
delay(112500);
analogWrite(Linea1,0);
analogWrite(Linea2,0);
analogWrite(Linea3,0);
analogWrite(Linea4,0);
delay(41400000); //retardo de 11.30 horas para noche para que no empiece el ciclo amanecer de nuevo y asi se apaga la placa y la fuente los led hasta el dia siguiente
}
}
//////////////////////////////////////////////////////////////////////////////