Está en la página 1de 2

// Configuración de PINES

const int Encoder = 8; // n° pin entrada encoder


const int pin2 = 2; // n° pin salida del led verde
const int pin4 = 4; //n° pin salida led amarillo
const int pin6 = 6;// n°pin salida led rojo

//Declaración de Constantes y variables


unsigned long hora;//Tiempo actual desde que se corre el programa.
unsigned long tiempo_arriba=0; //Tiempo en el que el hámster se sube a la rueda.
unsigned long tiempo_abajo=0;//Tiempo en el que el hámster está abajo.
unsigned long tiempo_periodo =0;//Tiempo en el que el hámster permanece en la rueda en un periodo
del día.
unsigned long tiempo_total =0;//Tiempo total de todos los periodos del día en el que el hámster
permaneció en la rueda.

//Configuración de entradas y salidas


void setup() {
pinMode(pin8,INPUT);
pinMode(pin2,OUTPUT);
pinMode(pin4,OUTPUT);
pinMode(pin6,OUTPUT);
}
//Main
void loop(){
hora=millis();//Tiempo actual desde que se inició el programa

if(digitalRead(pin8)==HIGH){//Condición cuando el hámster está sobre la rueda


tiempo_arriba=hora;//Se dice que el tiempo en el que el hámster se sube es el mismo que
el actual
tiempo_periodo= tiempo_arriba- tiempo_abajo;//Tiempo en el que el hámster ha
permanecido arriba de la rueda, en un periodo del día.
}
else{
tiempo_abajo=hora;//Tiempo actual en el que permanece debajo de la rueda.
tiempo_total= tiempo_total+tiempo_periodo//Suma total de los periodos cuando el
hámster ha estado arriba de la rueda en el día.
}
static long milidia=0//Variable para almacenar el tiempo de un día en milisegundos.
if(hora-milidia==846400000){//Condición para encender los leds y dar los resultados del hámster.

milidia=hora;//Variable definida para que el programa se actualice cada 24 hrs, tomando


el tiempo actual como referencia para definir la próxima entrega de resultados.

if(tiempo_periodo<=14400000){/Cuando el hámster ha estado menos o igual a 4hrs está


en un rango normal.
digitalWrite(pin2,HIGH); //Activa luz verde
digitalWrite (pin2,LOW); /apaga el led
}
elseif(tiempo_periodo<=18000000 & tiempo_periodo>14400000){//Cuando el hámster ha
estado entre 4 y 5 hrs, esta en un nivel de estrés intermedio.
digitalWrite(pin4,HIGH); //Activa luz amarilla
digitalWrite (pin4,LOW); /apaga el led
}

else{// Cuando el hámster ha estado más de 5 hrs, está en un nivel de estrés elevado.
digitalWrite(pin6/HIGH); //Activa la luz roja
digitalWrite (pin6,LOW); /apaga el led
}
}
}

También podría gustarte