si si certo, io l'avevo capito...
per renderla più dinamica ho impostato tempo avvio e tempo arresto come variabili globali che vengono settate automaticamente in void setup... la funzione è quella sotto...
int tempo_avvio;
int tempo_arresto;
void setup()
{
tempo_avvio = get_ora()-get_ora()%30;
if(tempo_avvio == 1410)
tempo_arresto = 30;
else
tempo_arresto=tempo_avvio+30;
}
void loop()
{
// inizializzo i sensori
delay(dht.getMinimumSamplingPeriod());
acquisisco();
scriviseriale();
r_ali();
}
void r_ali(){
int s=0;
if(get_ora() >= tempo_avvio && get_ora()<=tempo_arresto){
if(s==0){
analogWrite(fans[0],150);
s=1;
} else if(s==1 && get_ora()>tempo_arresto){
analogWrite(fans[0],150);
tempo_avvio +=30;
tempo_arresto +=30;
}
Serial.print(tempo_avvio);
Serial.print("\t");
Serial.println(tempo_arresto);
}
}
ho dovuto mette un controllo sull'ora perchè se tempo avvio è uguale a 1410 (23:30) tempo arresto mi viene 1440 (24:30) che il mio RTC mi invia come 00:30 e get_ora() me lo interpreta come 30 e quindi non credo che in quella mezzora funzionerebbe...
grazie mille ancora...