Jak získat aktuální čas a datum v Arduinu bez externího zdroje?

Pracuji na projektu pomocí Arduino Uno a štítu SD karty. Chtěl bych každý den ukládat proměnnou v určitou dobu na SD kartu . Jak mohu zjistit aktuální čas v Arduinu? Jakákoli pomoc by byla ocenitelná.

POZNÁMKA: Arduino NENÍ připojeno k PC.

Odpověď

An dostatečně přesným způsobem je použít funkci millis(). Vrátí hodnotu v milisekundách od začátku Arduina. Pokud spustíte Arduino v určitou dobu, budete moci vypočítat přesné datum a čas.


Proč ne externí modul ?? RTC, jako je DS3231, za pouhých 5 $ a obsahuje teplotní senzor pro vás!

Komentáře

Odpověď

bez externího zdroje

Nemůžete. t. Arduino Uno nemá žádné hodiny v reálném čase. Hodiny v reálném čase jsou jen něco jako 1 $ z eBay. Například DS1307 nebo DS3231. Na eBay jsem našel 5 x desek předem smontovaných s hodinovým čipem, včetně držáku baterie, krystalu, čipu a desky s plošnými spoji za 4,20 $. Baterie nejsou součástí dodávky.

Zahákněte to až na piny I2C (A4 a A5), jednou nastavte čas pomocí vhodného náčrtu a pak jste připraveni k hodu.


Pokud chcete něco udělat každých 24 hodin (nemusí to být nutně v 9:36), pak můžete pomocí millis zjistit, kdy uplynul příslušný počet milisekund. Výsledek z millis se zabalí zhruba každých 49 dní, ale s tím si nemusíte dělat starosti .

Všimněte si, že Neumožní vám zaznamenat datum a čas, ale můžete něco zaznamenat (např. teplota) každý den, stačí vědět, kdy jste začali protokolovat.

Odpovědět

Jednou z možností, kterou je třeba vzít v úvahu, je použijte 24hodinový zásuvný časovač , který ovládá napájení Uno.

Tj. něco, co vypadá takto:

zde zadejte popis obrázku

Obvod by byl: zásuvka střídavého proudu -> časovač -> USB nabíječka -> Arduino

Můžete nastavit časovač tak, aby vypnul napájení Uno na řekněme 23:30 a znovu zapnul půlnoc.

V rámci takového nastavení bude millis() čas od posledního spuštění Uno, což bude obvykle čas od předchozí půlnoci.

Při ladění můžete nastavit time-at-Uno-start na jinou dobu než půlnoc.

Upozornění:

  • Vaše situace umožňuje denně 30 minut ( nebo bez ohledu na to, jaké jsou přírůstky časovače) prostoje
  • Může tolerovat posunutí časovače kvůli výpadkům napájení

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *