Cum se obține ora și data curente în arduino fără sursă externă?

Lucrez la un proiect folosind Arduino Uno și scutul cardului SD. Aș dori să stochez o variabilă la o anumită oră în fiecare zi pe cardul SD . Cum pot obține ora curentă în Arduino? Orice ajutor ar fi apreciat.

NOTĂ: Arduino NU este conectat la computer.

Răspuns

Un o modalitate suficient de precisă este de a utiliza funcția millis(). Acesta va returna valoarea în milisecunde de la începutul Arduino. Dacă porniți Arduino la o anumită oră, veți putea calcula data și ora exactă.


De ce nu un modul extern ?? Un RTC precum DS3231 în doar 5 $ și include un senzor de temperatură pentru dvs.!

Comentarii

  • Aveți grijă la funcția millis () înfășurați-vă după aproximativ 50 de zile.
  • @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
  • Deci, ce se întâmplă dacă se înfășoară? Un program de ceas scris corect nu îi va păsa de asta.

Răspuns

fără sursă externă

Nu poți. Arduino Uno nu are ceas în timp real. Un ceas în timp real este doar ceva de genul 1 USD de la eBay. De exemplu, DS1307 sau DS3231. Am găsit 5 x plăci pre-asamblate cu cipul ceasului, inclusiv suportul bateriei, cristalul, cipul și placa de circuit pentru 4,20 USD pe eBay. Bateriile nu sunt furnizate.

Cuplați până la pinii I2C (A4 și A5), setați ora folosind o schiță adecvată și apoi sunteți gata să rulați.


Dacă doriți doar să faceți ceva la fiecare 24 de ore (nu neapărat la 9:36), atunci puteți utiliza doar millis pentru a afla când a trecut numărul corespunzător de milisecunde. Rezultatul de la millis se va încheia la fiecare 49 de zile aproximativ, dar nu trebuie să vă faceți griji cu privire la asta .

Rețineți că Nu vă va permite să înregistrați data și ora, dar puteți înregistra ceva (de ex. temperatura) în fiecare zi, ar trebui doar să știți când ați început să vă conectați.

Răspuns

O posibilitate de luat în considerare este să utilizați un temporizator de conectare de 24 de ore care controlează puterea Uno.

Adică ceva care arată astfel:

introduceți descrierea imaginii aici

Circuitul ar fi: priză de curent alternativ -> Temporizator -> Încărcător USB -> Arduino

Ați putea seta temporizatorul să oprească alimentarea Uno la ora 23:30 și să porniți din nou miezul nopţii.

În cadrul unei astfel de configurări, millis() va fi timpul de la ultimul start Uno, care va fi de obicei timpul de la miezul nopții precedente.

La depanare, puteți seta ora-la-Uno-start la altele decât miezul nopții.

Avertismentele sunt:

  • Situația dvs. permite zilnic 30 de minute sau oricare ar fi creșterile temporizatorului) timp de nefuncționare
  • Poate tolera schimbarea temporizatorului din cauza întreruperilor de energie electrică

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *