Hogyan szerezhetem meg az aktuális időt és dátumot az Arduino-ban külső forrás nélkül?

Egy Arduino Uno és SD kártya pajzsot használó projekten dolgozom. Szeretnék egy változót egy adott időpontban tárolni mindennap az SD kártyán . Hogyan kaphatom meg a jelenlegi időt Arduino-ban? Minden segítség érezhető lenne.

MEGJEGYZÉS: Az Arduino NEM csatlakozik a számítógéphez.

Válasz

Elég pontos módszer a millis() függvény használata. Ez az érték az ezredmásodpercekben tér vissza az Arduino indulása óta. Ha egy meghatározott időpontban indítja el az Arduino-t, képes lesz kiszámolni a pontos dátumot és időt.


Miért nem külső modul ?? Egy olyan RTC, mint a DS3231 mindössze 5 dollárba kerül, és tartalmaz egy hőmérséklet-érzékelőt az Ön számára!

Megjegyzések

Válasz

külső forrás nélkül

Nem lehet. Az Arduino Uno-nak nincs valós idejű órája. A valós idejű óra csak valami 1 USD az eBay-től. Például a DS1307 vagy a DS3231. 5 x alaplapot találtam előre összeszerelve az óra chipjével, beleértve az elemtartót, a kristályt, a chipet és az áramköri lapot 4,20 USD-ért az eBay-en. Az elemeket nem szállítjuk.

Csatlakoztassa az I2C csapokig (A4 és A5), állítsa be egyszer az időt egy megfelelő vázlattal, és készen áll a gördülésre.


Ha csak tenni szeretne valamit 24 óránként (nem feltétlenül 9: 36-kor), akkor az millis használatával megkeresheti, hogy mikor telt el a megfelelő milliszekundumszám. Az eredmény: millis 49 naponta nagyjából betakar, de nem kell aggódnia emiatt .

Ne feledje, hogy ez s nem engedi naplózni a dátumot és az időt, de valamit naplózhat (pl. a hőmérséklet), csak tudnia kell, mikor kezdte a naplózást.

Válasz

Az egyik megfontolandó lehetőség az, hogy használjon egy 24 órás plug-in időzítőt , amely vezérli az Uno áramellátását.

Vagyis valami így néz ki:

írja ide a kép leírását

Az áramkör a következő lenne: Hálózati aljzat -> Időzítő -> USB-töltő -> Arduino

Beállíthatja az időzítőt, hogy mondjuk 23: 30-kor kikapcsolja az Uno áramellátását, majd újra bekapcsolja éjfél.

Ilyen beállítás esetén a millis() lesz az idő a legutóbbi Uno kezdete óta, amely általában az előző éjfél óta eltelt idő.

A hibakereséskor beállíthatja az Uno-start kezdési időpontját éjféltől eltérőre.

A figyelmeztetések a következők:

  • Az Ön helyzete lehetővé teszi a napi 30 perces ( vagy bármilyen az időzítő növekménye) leállás
  • tolerálja az időzítés elmozdulását áramkimaradás miatt

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük