Hur får jag aktuell tid och datum i arduino utan extern källa?

Jag arbetar med ett projekt med Arduino Uno och SD-kortskydd. Jag vill lagra en variabel vid en viss tidpunkt varje dag på SD-kortet . Hur kan jag få den aktuella tiden i Arduino? All hjälp skulle vara märkbar.

OBS: Arduino är INTE ansluten till PC.

Svar

En korrekt nog är att använda funktionen millis(). Det kommer att returnera värdet i millisekunder sedan Arduino startade. Om du startar Arduino vid en viss tidpunkt kommer du att kunna beräkna exakt datum och tid.


Varför inte en extern modul ?? En RTC som DS3231 i bara 5 $ och den innehåller en temperatursensor för dig!

Kommentarer

Svar

utan extern källa

Du kan ”t. Arduino Uno har ingen realtidsklocka. En realtidsklocka är bara ungefär som $ 1 från eBay. Till exempel DS1307 eller DS3231. Jag hittade 5 x kort förmonterade med klockchipet, inklusive batterihållare, kristall, chip och kretskort för 4,20 US $ på eBay. Batterier medföljer inte.

Haka fast det mot I2C-stiften (A4 och A5), ställ in tiden en gång med en lämplig skiss och sedan är du redo att rulla.


Om du bara vill göra något var 24: e timme (inte nödvändigtvis kl. 09.36) kan du bara använda millis för att hitta när rätt antal millisekunder har gått. Resultatet från millis kommer att packas var 49: e dag ungefär men du behöver inte oroa dig för det .

Observera att detta s låter dig inte logga datum och tid, men du kan logga något (t.ex. temperaturen) varje dag måste du bara veta när du började logga.

Svar

En möjlighet att överväga är att använd en 24-timmars plugin-timer som styr strömmen till Uno.

Dvs något som ser ut så här:

ange bildbeskrivning här

Kretsen skulle vara: AC-uttag -> Timer -> USB-laddare -> Arduino

Du kan ställa in timern för att stänga av strömmen till Uno vid säg 23:30 och slå på igen midnatt.

Under en sådan installation kommer millis() att vara tiden sedan den senaste Uno-starten, vilket vanligtvis är tiden sedan föregående midnatt.

När du felsöker kan du ställa in tiden vid Uno-start på annat än midnatt.

Förbehållen är:

  • Din situation tillåter dagliga 30 minuter ( eller vad som helst som timerinkrementen är) stilleståndstid
  • Kan tolerera timerskift på grund av strömavbrott

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *