Skip to content
Архив записей за

Проблема с часами DS1307 на arduino mega 2560

Вобщем нигде толком в интернете не нашел, как правильно подключить часы к arduino mega.

Картинки есть, на которых видно что он вешается на питание (GND и +5V) а также на контакты SDA и SCL. Причем на самом модуле у меня было 2 группы контактов с разных сторон и повторяющимися контактами, и непонятно было какой группой пользоваться. Подозреваю что они параллельны и просто проходят через модуль часов, чтоб далее на эту шину можно было еще устройств присандалить. Вобщем я зацепил со стороны где контактов было меньше.

Итак, при первой попытке у меня вышло —

При загрузке скетча DS1307_serial_easy

у меня выходило вот такое:

xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85
xxxxxxxxx 00.00.2000 — 00:00:85

Позже оказалось, что на МЕГЕ надо использовать другие контакты.
DS1307 подключается через SDA и SCL , а это на arduino mega контакты 20 и 21

Поэтому в скетче в строчке
DS1307 rtc(4, 5);

я сделал  изменения:
DS1307 rtc(20, 21);

после чего результат уже был интереснее —

xxxxxxxxx 00.03.2000 — 16:00:51
xxxxxxxxx 00.03.2000 — 16:01:51
xxxxxxxxx 00.03.2000 — 16:02:51
xxxxxxxxx 00.03.2000 — 16:03:51
xxxxxxxxx 00.03.2000 — 16:04:51
xxxxxxxxx 00.03.2000 — 16:05:51
xxxxxxxxx 00.03.2000 — 16:06:51
xxxxxxxxx 00.03.2000 — 16:07:51
xxxxxxxxx 00.03.2000 — 16:08:51

То есть каждую секунду я получал значение увеличенное на минуту.
Однако это уже прогресс!!!

То есть часы тикают, но оказалась кривой библиотека DS1307.

После чего мною была использована библиотека с GITHUB.COM от andrewoke

https://github.com/andrewoke/MacroDuino/tree/master/Libraries/DS1307

После чего все затикало нормально.

Причем, даже ноги нигде указывать в коде не пришлось.