Jak uzyskać aktualny czas i datę w Arduino bez zewnętrznego źródła?

Pracuję nad projektem przy użyciu Arduino Uno i osłony karty SD. Chciałbym codziennie przechowywać zmienną o określonej godzinie na karcie SD . Jak mogę sprawdzić aktualny czas w Arduino? Każda pomoc byłaby znacząca.

UWAGA: Arduino NIE jest podłączone do komputera.

Odpowiedź

wystarczająco dokładnym sposobem jest użycie funkcji millis(). Zwróci wartość w milisekundach od początku Arduino. Jeśli uruchomisz Arduino o określonej godzinie, będziesz mógł obliczyć dokładną datę i godzinę.


Dlaczego nie moduł zewnętrzny? RTC, taki jak DS3231 za jedyne 5 $ i zawiera czujnik temperatury dla Ciebie!

Komentarze

Odpowiedź

bez zewnętrznego źródła

Nie można „t. Arduino Uno nie ma zegara czasu rzeczywistego. Zegar czasu rzeczywistego jest tylko czymś w rodzaju 1 USD z serwisu eBay. Na przykład DS1307 lub DS3231. Znalazłem 5 płytek wstępnie zmontowanych z chipem zegara, w tym uchwyt baterii, kryształ, chip i płytka drukowana za 4,20 USD w serwisie eBay. Baterie nie są dostarczane.

Podłącz to do pinów I2C (A4 i A5), ustaw raz za pomocą odpowiedniego szkicu i gotowe.


Jeśli chcesz coś zrobić co 24 godziny (niekoniecznie o 9:36), możesz po prostu użyć millis, aby sprawdzić, kiedy upłynęła odpowiednia liczba milisekund. Wynik z millis będzie zawijał się mniej więcej co 49 dni, ale nie musisz się tym martwić .

Pamiętaj, że nie pozwoli Ci zarejestrować daty i godziny, ale możesz coś zarejestrować (np. temperaturę), musisz tylko wiedzieć, kiedy zacząłeś rejestrować.

Odpowiedź

Jedną z możliwości do rozważenia jest użyj 24-godzinnego zegara wtyczki , który steruje zasilaniem Uno.

Np. coś, co wygląda tak:

tutaj wprowadź opis obrazu

Obwód będzie wyglądał następująco: Gniazdo sieciowe -> Timer -> Ładowarka USB -> Arduino

Możesz ustawić timer, aby wyłączał zasilanie Uno o, powiedzmy, 23:30 i włączał ponownie północ.

W takiej konfiguracji millis() będzie czasem od ostatniego uruchomienia Uno, który zwykle będzie czasem od poprzedniej północy.

Podczas debugowania możesz ustawić czas rozpoczęcia nieobecności na inny niż północ.

Zastrzeżenia są następujące:

  • Twoja sytuacja pozwala na codzienne 30 minut ( lub jakiekolwiek inne przyrosty timera) przestój
  • Może tolerować przesunięcia timera z powodu przerw w dostawie prądu

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *