RTC часы реального времени DS3231 - Arduino

Тема в разделе "Arduino & Shields", создана пользователем loker95, 11 фев 2017.

  1. loker95

    loker95 Нуб

    Ребята подскажите, код универсальный и простой,запускаю все нормально работает, когда отключаю ардуинку время сбивается, что надо сделать что бы время сохранилась на памяти и работал там? (свой источник проверил есть напр. 3.3В)
    Код (C++):
    #include <iarduino_RTC.h>
    iarduino_RTC time(RTC_DS1307);
    void setup() {
        delay(300);
        Serial.begin(9600);
        time.begin();
      // time.settime(0,21,19,10,02,17,5);  // 0  сек, 51 мин, 21 час, 27, октября, 2015 года, вторник
    }
    void loop(){
        if(millis()%1000==0){ // если прошла 1 секунда
          Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
          delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс
        }
    }
     
  2. mcureenab

    mcureenab Гуру

    Модуль RTC неисправен.
     
  3. Tim308

    Tim308 Нерд

    @loker95 Удалите диод который стоит рядом с микросхемой ds3231, схема модуля неправильная, китайцы наверно рассчитывали на аккумулятор.
     
  4. попробуй другую библиотеку
     
  5. mcureenab

    mcureenab Гуру

    Какого модуля? Где диод?
    https://www.aliexpress.com/item/DS3...lt&btsid=e8f743a6-6394-4634-8ce4-74631e0cca94

    Автору нужно по шагам описать, что он делает и что у него за модуль. Сейчас даже не ясно как он узнал, что время сбилось и где оно сбилось. Может на микроволновке?

    Если отключать модуль от работающей Ардуино, то следует сначала отключить сигнальные провода, а за тем питание, чтобы на сигнальных линиях не было напряжение выше напряжения питания.
     
  6. Tim308

    Tim308 Нерд

    Этот самый распространенный и у него как раз проблема с временем.
     

    Вложения:

  7. HydroTechnik

    HydroTechnik Нерд

    Похожая проблема с DS1302 решилась снятием-постановкой батарейки. Время "держит".
     
  8. Gomez

    Gomez Гик

    У меня вот такой https://ru.aliexpress.com/item/RTC-DS3231-EEPROM-ATC24C32/32836006254.html
    И, видимо, опять же было рассчитано на аккум, а в комплекте батерейка, поскольку время "зависает" при выключении.
    Но до установки проверял и вроде время нормально тикало. А что получается с вышеуказанным диодом и не-аккумулятором? В попытке подзарядки схема сажает батарею в 0 или около того?
     
  9. arssev1

    arssev1 Гик

    Попробуйте:
    • Сменить батарейку
    • Выпаять диод (перекусить его, если нечем выпаять), хотя в новых модулях этого диода нет
    • Используйте нормальную библиотеку RTClib
    • Проверьте подключение
     
  10. Gomez

    Gomez Гик

    • Там нестандартная, меньше, чем на классических, но да, надо идти от простого к сложному и поменять.
    • У меня все так, как на фото со ссылки - диод стоит. Выпаять я смогу, но жаль как-то - может, тогда правда аккум поискать?
    • У меня форк, https://github.com/Naguissa/uRTCLib
    • Проверял. Разве что я батарейку вставил неправильно. :D
     
  11. Gomez

    Gomez Гик

    Тут такой еще вопрос - в некоторых источниках пишется что-то вроде "Резисторная сборка RP1 (4.7 кОм), необходима для подтяжки линий 32K, SQW, SCL и SDA (кстати, если используется несколько модулей с шиной I2C, необходимо выпаять подтягивающие резисторы на других модулях)"
    И вот этого я не совсем понимаю. Мало ли сколько устройств на I2C в конкретном проекте. И вот щаззз я брошусь на всех остальных выпаивать резисторы. :)
    Просто у меня еще ко второму входу (справа) clock.png подпаян BMP-280.
    И вот задумался, все ли правильно.
     
  12. arssev1

    arssev1 Гик

    Что правильно или неправильно тут может быть? Тактовую линию, как и линию данных нужно подтягивать к питанию. Все! Как это будет сделано - на вашей совести :)
    Если у каждого модуля на линии будет по резистору, то сопротивление будет падать (параллельное включение резисторов смотрите), а значит толку от подтягивающих резисторов не будет.
     
  13. Gomez

    Gomez Гик

    Я знаю про параллельное и последовательное включение резисторов, но я не могу на каждом модуле рассмотреть, есть у них подтягивающие резисторы или нет.
    Есть ли какая-то традиция у производителей модулей для Ардуино и др. - положено ставить подтягивающие резисторы или нет? :)
    Ну у Вас же наверняка на шине I2C было больше одного устройства (голосом Винни-Пуха : на то оно и шина)
    Вот Вы выпаивали? ;)
    Вот, например, на BMP280 видится ну очень похожее на подтягивающую сборку, и даже вроде видно, что SDA подтягивается к земле. Эхх, придется, видимо, резать дорожки хотя бы на SDA и SCL...
    Bmp280-5-I2C-SPI.jpg
    А то у меня давно складывается впечатление, что девайсы на I2C стали работать как-то неуверенно с добавлением RTC и BMP280.
     
    Последнее редактирование: 1 мар 2018
  14. Gomez

    Gomez Гик

    Если ничего не паять, то теоретически часть I2C-хозяйства можно повесить на software-I2C. :D