// MEF de parpadeo condicionado a Noche // Definimos estados #define DIA 0 #define POFF 1 #define PON 2 // Definimos etiquetas #define L1 2 // Etiquetamos el LED conectado al pin 2 como "L1" #define FR A0 // Etiquetamos la fotoresistencia FR en el pin A0 // Declaramos constantes const unsigned long TOn = 2000; // Constante para el tiempo de encendido 2000 ms const unsigned long TOff = 1000; // Constante para el tiempo de apagado 1000 ms // Declaramos variables unsigned int estado = DIA; unsigned long tini, tact, trel; void setup() { // Configuramos los pines pinMode(L1, OUTPUT); // Definimos L1 como una salida // Limpieza de la salida por seguridad digitalWrite(L1, LOW); // Apagamos L1 tini = millis(); // Iniciamos la marca de tiempo } void loop() { int S = analogRead(FR); // Leemos la información de FR tact = millis(); // Tomamos el tiempo actual trel = tact - tini; // Calculamos el tiempo que a pasado desde tini switch (estado) { case DIA: digitalWrite(L1, LOW); if (S < 500) estado = POFF; break; case POFF: digitalWrite(L1, LOW); if (S > 530) estado = DIA; if (trel > TOff){ estado = PON; tini = tact; } break; case PON: digitalWrite(L1, HIGH); if (S > 530) estado = DIA; if (trel > TOn){ estado = POFF; tini = tact; } break; } }