помогите седать часы вот с таким десплем

Тема в разделе "Arduino & Shields", создана пользователем blackflash2009, 22 мар 2018.

  1. [​IMG]

    Может кто показать схему подключения к ардуино мини и программу для заливки сам ничего не умеею ( модуль часов
    DS3231 AT24C32 IIC
     
  2. Vladis_a

    Vladis_a Гик

  3. b707

    b707 Гуру

    ТС. если "сам ничего не умешь" - то у тебя два пути:
    - учиться
    - заплатить тому. кто умеет

    А писать тебе код бесплатно никто не будет.
     
    Arduino_man нравится это.
  4. blackflash2009 нравится это.
  5. Arduino_man

    Arduino_man Гик

  6. #include <LiquidCrystalRus.h>
    #include <iarduino_RTC.h>

    LiquidCrystalRus lcd(8, 9, 10, 11, 12, 13);
    iarduino_RTC time(RTC_DS1302,4,5,6);
    void setup() {

    delay(300);

    time.begin();


    lcd.begin(16, 2);
    lcd.print("время");
    lcd.setCursor(0, 1);

    lcd.print("дата");
    }

    void loop() {


    lcd.setCursor(5, 0);
    if(millis()%1000==0){
    lcd.print(time.gettime(" H:i:s"));
    lcd.setCursor(5, 1);
    lcd.print(time.gettime("d-m-Y"));
    delay(1);

    }
    }
     
  7. такой код навоял
     
  8. Airbus

    Airbus Радиохулиган Модератор

    Тогда Вам сюда эти красивее.
     
    Последнее редактирование: 24 мар 2018
    citRUS_oleg нравится это.
  9. Asper Daffy

    Asper Daffy Иксперд

    И как? Работает?
     
  10. [​IMG]
     
    Asper Daffy нравится это.
  11. Asper Daffy

    Asper Daffy Иксперд

    Молоток!

    Совет нужен? Или нафиг? Просто навязываться не хочу.
     
  12. kvitko1

    kvitko1 Гик

    чево? на Ардуино юа напишут
     
  13. YeS

    YeS Гик

    У вас дисплей I2C. Там на сколько я понимаю lcd(8, 9, 10, 11, 12, 13) даже прикрутить некуда. Нужен код для работы посредством I2C.
     
  14. внимательно посмотрите на 1 сообщение где вы там увидели I2C ?
    Asper Daffy Естественно нужен
     
  15. Asper Daffy

    Asper Daffy Иксперд

    Вот смотрите, Вы в loop каждую секунду выводите свежее время на экран.

    Само по себе это неплохо, но Вы должны понять, что время у Вас на экране меняется не тогда, когда оно реально поменялось в часах, а когда Ваш миллис отсчитает секунду. Понимаете, у Вас же никак не связано время в часах (факт перехода часов на новую секунду) и Ваш цикл отсчёта миллис. Они могут совпасть, но это большая случайность. Скорее всего время у Вас на экране всегда будет отставать от времени в Ваших часах на величину от 0 до 1 секунды. В среднем отставание Вашего экрана от Ваших же часов будет полсекунды (ещё хуже, когда так делают в часах, которые только минуты показывают - там среднее отставание - полминуты).

    Чтобы этого не было, нужно пользоваться тем, что часы умеют выдавать прерывание в момент смены в них секунды (и минуты тоже, кстати). Это прерывание они выдают на пин SQW. И вот в этот момент, по этому прерыванию, а не по подсчёту миллис, нужно обновлять время на экране. Тогда экран будет точно соответствовать часам.

    Я понятно объяснил?
     
    arkadyf нравится это.
  16. b707

    b707 Гуру

    Обьяснили-то понятно - но вот мне интересно, хоть кому-нибудь важна эта разница в полсекунды в реальной жизни??? :) Тем более, что это разница не с точным мировым временем, а всего лишь со временем конкретного RTC. которое само за месяц может отстать от реального минут (МИНУТ!!) на пять :)
     
  17. Asper Daffy

    Asper Daffy Иксперд

    3231-то? Да, ладно, не пугай детей - за год секунд на пять - поверю.

    А насчёт "важности". Разным людям разное важно. А ТС полезно узнать как делать правильно независимо от важности в данной конкретной задаче.
     
    arkadyf нравится это.
  18. SergeiL

    SergeiL Оракул Модератор

    Главный минус такого варианта вывода времени на дисплей – отсутствие синхронизации с RTC. В какой-то момент время будет меняться скачками. 2-1 секунда.

    Только что проверил часы на ESP8266 с DS3231 выставленные по NTP в середине сентября 2017.

    Корректировку DS3231 закомментировал, чтобы проверить точность RTC.

    По этому, с сентября 2017 время из DS3231 только читается.

    Часы работали с декабря 2017 с подключенным питанием, до этого в сумке, в режиме на работу-домой, когда есть время повозился на работе, нет только дома после девяти вечера.

    В общем, точность нормальная. Плавает туда сюда в районе секунды-двух. Может сказывается стабильность по температуре и питанию, но с декабря время идет стабильно до секунды. За NTP уверен, добивался синхронности нескольких своих часов стоящих рядом.

    С начала декабря расхождение с NTP не изменилось, как было чуть менее двух секунд – так и осталось.

    С сентября до декабря чуть более двух секунд, с условием смены температур и отсутствия питания.

    Декабрьские данные по ссыле здесь.

    Данные, снятые сегодня:
    Код (Text):
    26.03.18 20:59:58
    NTP Time: 21:00
    26.03.18 20:59:59
    26.03.18 21:00:00
     
    Видно, что RTC отстали, но менее, чем на две секунды.
     
    citRUS_oleg и arkadyf нравится это.
  19. У меня за месяц на 15 МИНУТ вперёд отошло.