
Código para arduino del detector de microsueño versión mejorada con buzzer y motor vibrador; tiempo ajustable (3 segundos en este caso) de espera antes de activar la alarma.
Código:
// --- Pines ---
const int pinSensor = 2;
const int pinBuzzer = 3;
const int pinMotor = 4;
// --- Variables ---
int estadoSensor = HIGH;
unsigned long tiempoInicioCierre = 0;
bool contando = false;
// --- Configuración inicial ---
void setup() {
pinMode(pinSensor, INPUT);
pinMode(pinBuzzer, OUTPUT);
pinMode(pinMotor, OUTPUT);
digitalWrite(pinBuzzer, LOW);
digitalWrite(pinMotor, LOW);
Serial.begin(9600);
}
// --- Bucle principal ---
void loop() {
estadoSensor = digitalRead(pinSensor);
if (estadoSensor == LOW) {
if (!contando) { // Si recién detecta ojo cerrado
tiempoInicioCierre = millis(); // Guarda el momento exacto
contando = true;
Serial.println("Ojo cerrado - contando...");
}
// Si han pasado 3 segundos con ojo cerrado...
if (millis() - tiempoInicioCierre >= 3000) {
digitalWrite(pinBuzzer, HIGH);
digitalWrite(pinMotor, HIGH);
Serial.println("MICROSUEÑO DETECTADO -> ALERTA!");
}
}
else { // ojo abierto
contando = false; // Reinicia conteo
digitalWrite(pinBuzzer, LOW);
digitalWrite(pinMotor, LOW);
Serial.println("Ojo abierto - alerta apagada");
}
delay(100);
}