Go Down

Topic: software che funziona in base all'ora (Read 3 times) previous topic - next topic

leo72


ma se voglio che faccia una cosa a una determinata ora che codice devo fare?


La swRTC non è uno scheduler, è ciò che dice il nome, un orologio. Lei ti fornisce l'orario, devi poi nel tuo codice implementare il controllo.
Esempio:
Code: [Select]
if (rtc.getHours() == ore && rtc.getMinutes() == minuti && rtc.getSeconds() == secondi) {
  ....esegui qualcosa
}


Se vuoi programmare azioni prefissate a determinati intervalli ho scritto la libreria leOS/leOS2. A differenza della swRTC, imposti l'intervallo e questa ti esegue le operazioni in background.

steveborty

ma basta mettere cosi` o prima devo mettere qualcos'altro?

leo72


ma basta mettere cosi` o prima devo mettere qualcos'altro?

Prima regoli l'orario della swRTC, ma questa è un'operazione che dovresti fare comunque anche con un RTC hardware.


leo72


che sarebbe il print time?

Forse intendi "timestamp". E' il numero di secondi a partire da una data epoca (cioè un giorno prefissato). Il timestamp più diffuso è quello con epoca UNIX, 1970.0, ossia 1° gennaio 1970 ore 00:00.

Se non sai cos'è probabilmente non ti serve neanche  ;)

steveborty

riesci a scrivermi come settare le ore i  minuti e i secondi?     grazie per il tempo che mi stai dando... :)

leo72


riesci a scrivermi come settare le ore i  minuti e i secondi?     


Nella sezione Megatopic c'è una discussione sulla libreria di 69 pagine  :)
Negli esempi allegati c'è la chiamata di tutti i metodi che supporta.
Ne readme allegato ci sono descritte le funzioni e come usarle. Che vuoi di più?  ;)

pablos

no comment

leo72


steveborty



#include <swRTC.h>
swRTC rtc; //create a new istance of the lib

void setup() {
   rtc.stopRTC(); //stop the RTC
   rtc.setTime(12,0,0); //set the time here
   rtc.setDate(4,6,2012); //set the date here
   rtc.startRTC(); //start the RTC
   Serial.begin(19200); //choose the serial speed here
   delay(2000); //delay to let the user opens the serial monitor
}

void loop() {
    Serial.print(rtc.getHours(), DEC);
    Serial.print(":");
    Serial.print(rtc.getMinutes(), DEC);
    Serial.print(":");
    Serial.print(rtc.getSeconds(), DEC);
    Serial.print(" -- ");
    Serial.print(rtc.getDay(), DEC);
    Serial.print("/");
    Serial.print(rtc.getMonth(), DEC);
    Serial.print("/");
   
    if (rtc.getHours() == 00 && tyc.getMinutes() == 00) ;
   
   
    { pinMode(13 HIGH)}
}




beh,intanto e` giusto?devo settare le ore e i minuti...ma il resto e` ok?   

leo72

Hai fatto un copia-incolla di 2 sketch di esempio allegati alla swRTC  :smiley-yell:
C'è però un paio di errori, uno di sintassi ed un logico... trovali  ]:D

steveborty

uno e` un ";"    quello logico proprio non so...??!!  :smiley-roll-blue:

steveborty


leo72


forse manca lo rtc.startRTC();

Quello c'è.

uno e` un ";"    quello logico proprio non so...??!!  :smiley-roll-blue:

Questo non l'avevo visto. Allora gli errori di sintassi sono 2...
L'hai compilato, per curiosità?  :P


Go Up