Я использую SD-карту с Arduino Mega. Каждый раз, когда я пишу на карту, то есть примерно раз в 2 или 3 секунды, я хочу, чтобы рядом с текстом была метка времени, так же, как это работает на Serial Monitor.
Мне было интересно, есть ли способ сделать это программно вместо получения RTC.
Я использую Arduino Mega, я не думаю, что он совместим с Wi-Fi. Я знаю, что esp8266 есть.
Я не использую щит, я использую держатель SD-карты
Существуют программные библиотеки RTC, такие как swRTC , а Arduino-RTC имеет только программный режим.
Эти библиотеки полагаются на точность часов Arduino, поэтому они не будут такими точными и время от времени будут нуждаться в настройке. Кроме того, вам нужно будет устанавливать их каждый раз, когда вы перезагружаете Arduino.
Для установки и настройки этих программных RTC требуется текущее время откуда-то, например, с вашего ПК, если он подключен через последовательный порт, Wi-Fi для времени вашей сети, время GPS, сервер SNTP в Интернете и т. д.
Самый простой способ - установить время при запуске вручную и следить за временем с помощью millis()
. Тоже не очень точно, но лучше, чем ничего.
Сказав это: я бы просто получил аппаратный RTC; они дешевы, довольно точны, и у них есть резервная батарея, поэтому они всегда показывают точное время. Они также лучше, чем RTC в Arduinos, которые имеют аппаратное обеспечение.
Доступ к Интернету и использование SNTP для получения времени?