Problema con RTC

nid69ita:
Ma non ho capito, forse mi son perso. Non usavi 16*100+59=> 1659 ?

no adesso uso 16*60+59 che mi da i minuti

Brunello:

Ma se prendessi un sensore di temperatura?

Perche' ha la febbre ?

ahaha sto valutando se mettere il 4° sensore di temperatura...

leo72:

Calamaro:
il problema è che se tipo sono le 17:00 get_ora(); mi restituisce 1020 che rimane divisibile per 30 per 1 minuto quindi non va bene perchè la ventola si accende e si spenge 30 volte in un minuto e poi si spenge per 30min...

Hai semplicemente bisogno di una variabile di stato, un flag, che ti dice lo stato attuale della ventola.
Quindi la logica del tuo programma diventa questa:

SE tempo >= tempo_avvio E tempo <= tempo_arresto ALLORA

SE stato_ventola = 0 ALLORA
       stato_ventola = 1
       AVVIA VENTOLA
   FINE
ALTRIMENTI
   SE stato_ventola = 1 ALLORA
       stato_ventola = 0
       ARRESTA VENTOLA
   FINE
FINE




In questo modo sia l'avvio che l'arresto della ventola lo fai 1 sola volta, grazie appunto al tuo flag.

ok però se usassi la tua funzione e impostassi TEMPO = 17:00, per esempio, la ventola mi si accenderebbe soltanto dalle 17:00 alle 17:30

dovrei mettere un'istruzione tipo quelle in "grassetto" giusto?

SE tempo >= tempo_avvio E tempo <= tempo_arresto ALLORA
    SE stato_ventola = 0 ALLORA
        stato_ventola = 1
        AVVIA VENTOLA
    FINE
ALTRIMENTI
    SE stato_ventola = 1 [b]&&  tempo >= tempo_arresto[/b] ALLORA
        stato_ventola = 0
       [b]tempo_avvio += 30minuti
       tempo_arresto += 30minuti[/b]
        ARRESTA VENTOLA
    FINE
FINE

è troppo presto per dire: "avevo un cane e il suo nome era.... BINGOOOOOW!!!" ???