int Hora;
int Minuto;
int Segundo;
int Pulsado;
int Miliseg;
float TempPro;
int Temp[60];
float suma;
const float BETA = 3950;
int ContSeg;
void setup(){
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(A0, INPUT);
datosReloj();
while ((Hora >=24)||(Minuto >= 60)||(Segundo >=60)) {
Serial.read();
datosReloj();
}
Serial.println(String(Hora)+(" : ")+String(Minuto)+(" : ")+String(Segundo));
//delay(1000);
}
void loop() {
unsigned long currentMillis = millis();
long previousMillis;
long previoSeg;
long previoMin;
long intervaloMillis=100;
long intervaloMin=60000;
long intervalo1Seg=500;
while(currentMillis > previoSeg + intervalo1Seg) {
previoSeg = currentMillis;
MiReloj();
Temperatura();
}
//Verificar si ha pasado 100 milesimas
if (currentMillis > previousMillis + intervaloMillis) {
previousMillis = currentMillis;
Pulsador();
}
while (currentMillis - previoMin >= intervaloMin) {
previoMin = currentMillis;
TempPromedio();
}
}
//******FUNCIONES******//
void Pulsador (){
digitalWrite(2, LOW);
int estado = digitalRead(2);
if (estado == HIGH){
Pulsado++;}
//Serial.println(" Pulsado "+String(Pulsado));
delay(100);
}
void MiReloj(){
Segundo++;
Serial.println(String(Hora)+(" : ")+String(Minuto)+(" : ")+String(Segundo)+(" Pulsado "+String(Pulsado)));
if (Segundo >= 60){
Segundo=0;
Minuto++;}
if (Minuto >= 60){
Minuto=0;
Hora++;
}
if (Hora >= 24){
Hora= 00; }
}
void Temperatura(){
suma=0;
int analogValue = analogRead(A0);
float Temperatura = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
for (int i=0; i<60; i++){
Temp[i]= Temperatura;
suma= suma + Temp[i];}
}
void TempPromedio(){
TempPro = suma/60;
Serial.println(String(TempPro));
}
void datosReloj(){
Serial.println( "Ingrese la hora");
while (Serial.available() == 0){
}
Hora = Serial.parseInt();
Serial.println( "Ingrese los minutos");
while (Serial.available() ==1){
}
Minuto = Serial.parseInt();
Serial.println( "Ingrese los segundos");
while (Serial.available() ==1){
}
Segundo = Serial.parseInt();
}