// MEF de parpadeo con patron SOS // 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 int Patron[18] = { 500, 500, 500, 500, 500, 500, 2000, 500, 2000, 500, 2000, 500, 500, 500, 500, 500, 500, 5000 }; // Constante para el patron SOS // Declaramos variables int i = 0; 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() { if (i > 17) i = 0; 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 = PON; break; case POFF: digitalWrite(L1, LOW); if (S > 530) { estado = DIA; i = 0; } if (trel > Patron[i]) { estado = PON; tini = tact; i++; } break; case PON: digitalWrite(L1, HIGH); if (S > 530) { estado = DIA; i = 0; } if (trel > Patron[i]) { estado = POFF; tini = tact; i++; } break; } }