Come ottenere lora e la data correnti in arduino senza fonte esterna?

Sto lavorando a un progetto che utilizza Arduino Uno e la protezione della scheda SD. Vorrei memorizzare una variabile in un momento specifico ogni giorno nella scheda SD . Come posso ottenere lora corrente in Arduino? Qualsiasi aiuto sarebbe apprezzabile.

NOTA: Arduino NON è connesso al PC.

Rispondi

Un un modo abbastanza preciso è usare la funzione millis(). Restituirà il valore in millisecondi dallinizio di Arduino. Se avvii Arduino in un momento specifico, sarai in grado di calcolare la data e lora esatte.


Perché non un modulo esterno ?? Un RTC come il DS3231 costa solo 5 $ e include un sensore di temperatura per te!

Commenti

  • Fai attenzione alla funzione millis () avvolgere dopo circa 50 giorni.
  • @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
  • Quindi cosa succede se si conclude? Un programma orologio scritto correttamente non se ne preoccuperà.

Rispondi

senza sorgente esterna

Non puoi “t. Arduino Uno non ha un orologio in tempo reale. Un orologio in tempo reale è solo qualcosa di simile $ 1 da eBay. Ad esempio DS1307 o DS3231. Ho trovato 5 schede preassemblate con il chip dellorologio, inclusi portabatterie, cristallo, chip e circuito stampato per $ 4,20 su eBay. Batterie non fornite.

Collegalo ai pin I2C (A4 e A5), imposta lora utilizzando uno schizzo adatto, e poi sei pronto per rotolare.


Se vuoi solo fare qualcosa ogni 24 ore (non necessariamente alle 9:36), puoi semplicemente utilizzare millis per trovare quando è trascorso il numero appropriato di millisecondi. Il risultato di millis terminerà ogni 49 giorni circa ma non devi preoccuparti di questo .

Tieni presente che questo Non ti consentirà di registrare la data e lora, ma puoi registrare qualcosa (ad es. la temperatura) ogni giorno, dovresti solo sapere quando hai iniziato a registrare.

Risposta

Una possibilità da considerare è quella di utilizza un timer plug-in 24 ore che controlla lalimentazione di Uno.

Cioè qualcosa che assomigli a questo:

inserisci qui la descrizione dellimmagine

Il circuito sarebbe: presa AC -> Timer -> Caricatore USB -> Arduino

Puoi impostare il timer per spegnere lalimentazione di Uno alle 23:30 e riaccenderla mezzanotte.

In tale configurazione, millis() sarà lora dallultimo avvio di Uno, che di solito sarà lora dalla mezzanotte precedente.

Durante il debug, puoi impostare il tempo di inizio a Uno su un valore diverso da mezzanotte.

Le avvertenze sono:

  • La tua situazione consente 30 minuti giornalieri ( o qualunque siano gli incrementi del timer) tempi di inattività
  • Può tollerare turni del timer dovuti a interruzioni di corrente

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *