Jeg jobber med et prosjekt med Arduino Uno og SD-kortskjold. Jeg vil lagre en variabel på et bestemt tidspunkt hver dag på SD-kortet . Hvordan kan jeg få den nåværende tiden i Arduino? Enhver hjelp vil være merkbar.
MERK: Arduino er IKKE koblet til PC.
Svar
En nøyaktig nok måte er å bruke millis()
-funksjonen. Det vil returnere verdien i millisekunder siden starten av Arduino. Hvis du starter Arduino på et bestemt tidspunkt, vil du kunne beregne nøyaktig dato og klokkeslett.
Hvorfor ikke en ekstern modul ?? En RTC som DS3231 på kun 5 $ og den inkluderer en temperatursensor for deg!
Kommentarer
- Se opp millis () -funksjonen vikle rundt etter omtrent 50 dager.
- @AndreCourchesne: arduino.stackexchange.com/questions/12587/…
- Så hva om det brytes rundt? Et riktig skrevet klokkeprogram bryr seg ikke om det.
Svar
uten ekstern kilde
Du kan ikke «t. Arduino Uno har ingen sanntidsklokke. En sanntidsklokke er bare noe som $ 1 fra eBay. For eksempel DS1307 eller DS3231. Jeg fant 5 x kort forhåndsmontert med klokkebrikken, inkludert batteriholder, krystall, chip og kretskort for $ 4,20 på eBay. Batterier leveres ikke.
Hekt det opp til I2C-pinnene (A4 og A5), still inn klokkeslettet en gang med en passende skisse, og så er du klar til å rulle.
Hvis du bare vil gjøre noe hver 24. time (ikke nødvendigvis klokken 09.36), så kan du bare bruke millis
for å finne når riktig antall millisekunder er gått. Resultatet fra millis
brytes hver 49. dag omtrent, men du trenger ikke å bekymre deg for det .
Merk at dette s lar deg ikke logge dato og klokkeslett, men du kan logge noe (f.eks. temperaturen) hver dag, du må bare vite når du begynte å logge.
Svar
En mulighet å vurdere er å bruk en 24-timers plug-in timer som styrer strømmen til Uno.
Dvs. noe som ser slik ut:
Kretsen vil være: Stikkontakt -> Timer -> USB-lader -> Arduino
Du kan stille timeren til å slå av strømmen til Uno kl. 23:30 og slå den på igjen midnatt.
Under et slikt oppsett vil millis()
være tiden siden forrige Uno-start, som vanligvis vil være tiden siden forrige midnatt.
Når du feilsøker, kan du stille klokkeslettet ved Uno-start til annet enn midnatt.
Advarslene er:
- Situasjonen din tillater daglig 30 minutter ( eller hva timertrinnene er) nedetid
- Tåler tidsskift på grunn av strømbrudd