![Подключение часов DS3231 к Arduino](https://voltiq.ru/wp-content/uploads/ds3231-and-Arduino-4.jpg)
Если вы проектируете устройство, которому нужно всегда и везде знать точное время, вам пригодится модуль часов реального времени. Такие часы способны отсчитывать точное время и сохранять его даже при отключении основного питания, так как подразумевается их эксплуатация с батарейкой (обычно CR2032). В режиме работы без основного питания, часы способны отработать на такой батарейке c десяток лет!
12 комментариев. Оставить новый
спасибо но работает только с ардуино IDE 0015-1.5
а какие ошибки появляются при работе с другой версией?
Мне интересно, эти ошибки специально созданы для того, чтобы только продвинутый пользователь мог разобраться? Или всё же случайно?
Arduino: 1.8.2 Hourly Build 2017/03/21 05:33 (Windows XP), Плата:”Arduino Nano, ATmega328P”
In file included from C:\Program Files\Arduino\libraries\DS1307RTC\examples\SetTime\SetTime.ino:1:0:
C:\Program Files\Arduino\libraries\DS1307RTC/DS1307RTC.h:19:22: error: ‘tmElements_t’ has not been declared
static bool read(tmElements_t &tm);
^
C:\Program Files\Arduino\libraries\DS1307RTC/DS1307RTC.h:20:23: error: ‘tmElements_t’ has not been declared
static bool write(tmElements_t &tm);
^
SetTime:10: error: ‘tmElements_t’ does not name a type
tmElements_t tm;
^
C:\Program Files\Arduino\libraries\DS1307RTC\examples\SetTime\SetTime.ino: In function ‘void setup()’:
SetTime:20: error: expected primary-expression before ‘)’ token
if (RTC.write(tm)) {
^
C:\Program Files\Arduino\libraries\DS1307RTC\examples\SetTime\SetTime.ino: In function ‘bool getTime(const char*)’:
SetTime:53: error: expected unqualified-id before ‘.’ token
tm.Hour = Hour;
^
SetTime:54: error: expected unqualified-id before ‘.’ token
tm.Minute = Min;
^
SetTime:55: error: expected unqualified-id before ‘.’ token
tm.Second = Sec;
^
C:\Program Files\Arduino\libraries\DS1307RTC\examples\SetTime\SetTime.ino: In function ‘bool getDate(const char*)’:
SetTime:70: error: expected unqualified-id before ‘.’ token
tm.Day = Day;
^
SetTime:71: error: expected unqualified-id before ‘.’ token
tm.Month = monthIndex + 1;
^
SetTime:72: error: expected unqualified-id before ‘.’ token
tm.Year = CalendarYrToTm(Year);
^
exit status 1
‘tmElements_t’ does not name a type
Возможно под этой версией Arduino IDE данная библиотека не работает
Здраствуйте, есть ли возможность переадресации портов?
Приведенный модуль RTC имеет проблему. Схема подключения DS3231 отличается от даташита на эту микросхему. В нем есть цепь “подзарядки” батарейки CR2032, что категорически недопустимо и со временем приводит к вздутию батарейки при круглосуточной работе устройства. Единственное быстродоступное решение – сделать так, чтобы плюсовой контакт батарейки соединялся только с выводом 14 DS3231, для чего на плате перерезается дорожка, ведущая от соединения батарейки и 14 вывода.
Здравствуйте. а подскажите как к данной связке подключить дисплей SSD1306. везде где находил у кого это работает -у меня нет(. по идее все подключают дисплей в параллель проводам I2C к модулю времени. не знаю почему…., после загрузки скейча он даже не светится. он рабочий,проверял его тестовой библиотекой . Пробовал кучу библиотек к дисплею, бесполезно. то ошибка, то не работает. хотя в мониторе порта время идёт,т.е. модулю времени тоже рабочий. Что я делаю не так?. такое ощущение…., что дисплей надо как то по другому подключать.
Спасибо , помогли разобраться
Arduino: 1.8.15 (Windows 10), Плата:”Arduino Nano, ATmega328P (Old Bootloader)”
In file included from C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:9:0:
C:\Users\Asus\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:19:22: error: ‘tmElements_t’ has not been declared
static bool read(tmElements_t &tm);
^~~~~~~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:20:23: error: ‘tmElements_t’ has not been declared
static bool write(tmElements_t &tm);
^~~~~~~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde: In function ‘void setup()’:
TimeRTC:14:3: error: ‘setSyncProvider’ was not declared in this scope
setSyncProvider(RTC.get); // the function to get the time from the RTC
^~~~~~~~~~~~~~~
TimeRTC:15:6: error: ‘timeStatus’ was not declared in this scope
if(timeStatus()!= timeSet)
^~~~~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:15:6: note: suggested alternative: ‘time_t’
if(timeStatus()!= timeSet)
^~~~~~~~~~
time_t
TimeRTC:15:21: error: ‘timeSet’ was not declared in this scope
if(timeStatus()!= timeSet)
^~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:15:21: note: suggested alternative: ‘time_t’
if(timeStatus()!= timeSet)
^~~~~~~
time_t
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde: In function ‘void loop()’:
TimeRTC:23:7: error: ‘timeStatus’ was not declared in this scope
if (timeStatus() == timeSet) {
^~~~~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:23:7: note: suggested alternative: ‘time_t’
if (timeStatus() == timeSet) {
^~~~~~~~~~
time_t
TimeRTC:23:23: error: ‘timeSet’ was not declared in this scope
if (timeStatus() == timeSet) {
^~~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:23:23: note: suggested alternative: ‘time_t’
if (timeStatus() == timeSet) {
^~~~~~~
time_t
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde: In function ‘void digitalClockDisplay()’:
TimeRTC:36:16: error: ‘hour’ was not declared in this scope
Serial.print(hour());
^~~~
TimeRTC:37:15: error: ‘minute’ was not declared in this scope
printDigits(minute());
^~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:37:15: note: suggested alternative: ‘init’
printDigits(minute());
^~~~~~
init
TimeRTC:38:15: error: ‘second’ was not declared in this scope
printDigits(second());
^~~~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:38:15: note: suggested alternative: ‘rewind’
printDigits(second());
^~~~~~
rewind
TimeRTC:40:16: error: ‘day’ was not declared in this scope
Serial.print(day());
^~~
TimeRTC:42:16: error: ‘month’ was not declared in this scope
Serial.print(month());
^~~~~
TimeRTC:44:16: error: ‘year’ was not declared in this scope
Serial.print(year());
^~~~
C:\Users\Asus\Documents\Arduino\libraries\Time\examples\TimeRTC\TimeRTC.pde:44:16: note: suggested alternative: ‘char’
Serial.print(year());
^~~~
char
exit status 1
‘setSyncProvider’ was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
“Показать подробный вывод во время компиляции”
Работает. Только день надо задавать без ведущего ноля иначе ошибку выдавало.
Хочу купить
Здравствуйте. Вы можете приобрести данные товары, оформив заказ в нашем магазине.