Часы на LCD1602 I2c + DS3231 + Arduino Nano

Dublicator

✩✩✩✩✩✩✩
26 Мар 2021
1
0
Здравствуйте дорогие форумчане. Прошу вашей помощи. Я собрал часы на на LCD1602 I2c + DS3231 + Arduino Nano. У меня такая проблема, Мой модуль работает некорректно, время отстаёт за час на 12 секунд. Мне нужно сделать программную автокоррекцию времени, либо чтобы после каждого часа вычиталось 12 секунд и время записывалось заново, либо через каждые 10 минут вычиталось по 2 секунды и время записывалось заново, либо через каждую 1 минут вычиталось по 0,2 секунды и время записывалось заново. Напишите мне пожалуйста как реализовать функцию в коде. Библиотека для работы с DS3231, схема подключения и скетч закреплены.
 

Вложения

Boroda

✩✩✩✩✩✩✩
20 Янв 2020
23
2
Прежде чем корректировать скетч попробуйте заменить питание. DS3231очень не любят зашумленное питание. На крайний случай добавить шунтируюших ёмкостей на общее питание, а на саму DS3231 подавать через ЭМИ фильтр/бусину/мелкий дроссель. Так же убедитесь что над и под модулем DS3231 не проходят провода силовые/сигнальные. Из-за встроенного кварца он чутко реагируют на помехи.
Только потом уже можно влезать в скетч. Для корректировки убегания в DS3231 есть регистр. На форуме даже мелькала работа с ним вроде от Старика Похабыча. Но не факт, что можно таким способом скорректировать большой уход
 

poty

★★★★★★✩
19 Фев 2020
3,233
940
Затея не очень хорошая. Лучше, как посоветовал @Boroda, найти проблему или заменить модуль. Модуль RTC нужен для сохранения времени во время отключения питания. Если питание отключено - коррекция не работает, соответственно при включении часы уйдут и ничего с этим сделать будет нельзя.
 

Alik_PalbIch

✩✩✩✩✩✩✩
9 Дек 2021
8
0
А в третьих, выбросить этот модуль!
Что это за часы такие? Модуль для этого и предназначен, чтобы из коробки, без "танцев" быть точными.
У меня дома китайские детские наручные часы так не отстают за сутки.
Ну или на худой конец, поменять кварцевый резонатор модуля, взяв от тех же детских часов за 50 рублей.
 

poty

★★★★★★✩
19 Фев 2020
3,233
940
@Alik_PalbIch, у этого модуля нет внешнего кварца. Но с общим посылом согласен.
 

Divin

★★★✩✩✩✩
30 Янв 2021
437
192
@poty,
"Основное различие между DS3231 и DS1370, который довольно популярен в связи с дешевизной, заключается в точности учета времени. DS1307 поставляется с внешним резонатором 32 кГц для хронометража, частота колебаний которого легко зависит от внешней температуры. Обычно это приводит к тому, что часы отстают примерно на пять минут в месяц. Тем не менее, DS3231 гораздо точнее, поскольку поставляется с внутренним кварцевым генератором с температурной компенсацией (TCXO), который не зависит от температуры, что делает его точным до нескольких минут в год в среднем." Если верить вышесказанному, то у ТС явный брак.
 

poty

★★★★★★✩
19 Фев 2020
3,233
940
@Эдуард Анисимов, да, это обсуждение было уже. Исходя из него, максимальное значение коррекции для регистра составляет +127 - -128, что даёт максимальное изменение частоты в +12,7 - -12,8ppm (где ppm - это одна миллионная доля). Т.е., в пределах часа максимальная корректировка составит +45,7мс - -46,1мс. А у @Dublicator -время уходит на 12 сек в час.