Go Down

Topic: Temporizzatore pre programmato (Read 841 times) previous topic - next topic

francescopicciallo

Premetto che sono un neo_arduiniano,... "abbiate pietà di me".
sono anche coscente che Roma non fu costrita in un solo giormo.
Quindi, il problema che ho è questo:
prendendo come esempio l'esempio dell' RTClib (solo se anche voi siete d'accordo) vorrei fare un temorizzatore pre programmato, nel senso che premendo un pulsante, che sarò lo stesso ad azzerare la temporizzazione e lo stato dell'uscita, devo dare il via al conteggio di un tempo pre impostato nel programma o impostabile tramite potenziometri, che al suo termine dia un'uscita.
Parto già male perchè nell'esempio non capisco precisamente questa riga:
DateTime future (now.unixtime() + 7 * 86400L + 30);
(7 giorni convertito in secondi fa 604800 secondi e no 86400L, la cui L non mi dice niente)

e quando avvio il monitor seriale mi da queste info di cui la seconda riga non comprendo.
Credo sia la somma di tutto compeso gli anni convertito in secondi, solo che non mi trovo ai conti.
2013/3/17 17:19:13
seconds since 1970: 1363540753
now + 7d + 30s: 2013/3/17 17:19:43

// Date and time functions using just software, based on millis() & timer

#include <Wire.h>
#include "RTClib.h"

RTC_Millis RTC;

void setup () {
    Serial.begin(57600);
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.begin(DateTime(__DATE__, __TIME__));
}

void loop () {
    DateTime now = RTC.now();
   
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
   
    Serial.print(" seconds since 1970: ");
    Serial.println(now.unixtime());
   
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now.unixtime() + 0 * 86400L + 30);
   
    Serial.print(" now + 7d + 30s: ");
    Serial.print(future.year(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.day(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
   
    Serial.println();
    delay(3000);
}

Grazie
Francesco

Go Up