DS1302 — модуль часов реального времени ведет отсчет времени в секундах, минутах, часах, датах месяца, месяцах, днях недели и годах с учетом высокосности текущего года вплоть до 2100 г. Электронная схема модуля включает в себя микросхему, источник питания и кварцевый резонатор. Кварцевый резонатор работает на частоте 32768 Гц.
Ниже показан простой пример скетча для вывода времени в монитор порта. Для первоначальной установки времени необходимо раскомментировать строчку:
// time.settime(0,30,18,24,10,19,4); // Записываем время в модуль: сек, мин, час, дата, месяц, год (2019 = 19), день недели (пон = 1).
Загрузить скетч в плату Arduino, а затем закомментировать строчку и по новой загрузить скетч.
Библиотека — iarduino_RTC.zip
#include <iarduino_RTC.h> iarduino_RTC time(RTC_DS1302, 6, 7, 8); // RST, CLK, DAT void setup(){Serial.begin(9600); time.begin(); // time.settime(0,30,18,24,10,19,4); // Записываем время в модуль: сек, мин, час, дата, месяц, год (2019 = 19), день недели (пон = 1). } void loop(){ time.gettime(); //Год Serial.print(20, DEC); Serial.print(time.year); Serial.print("-"); //Месяц Serial.print(time.month / 10); Serial.print(time.month % 10); Serial.print("-"); //День Serial.print(time.day / 10); Serial.print(time.day % 10); Serial.print(" "); //Час Serial.print(time.Hours / 10); Serial.print(time.Hours % 10); Serial.print(":"); //Минуты Serial.print(time.minutes / 10); Serial.print(time.minutes % 10); Serial.print(":"); //Секунды Serial.print(time.seconds / 10); Serial.println(time.seconds % 10); // Формат даты Serial.println(time.gettime("d-m-Y, H:i:s, D")); // День недели Serial.println(time.weekday); delay(1000); }
Простые часы на LCD1602 I2C
#include <iarduino_RTC.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> iarduino_RTC time(RTC_DS1302, 6, 7, 8); // RST, CLK, DAT LiquidCrystal_I2C lcd(0x27,16,2); // Устанавливаем дисплей void setup(){Serial.begin(9600); time.begin(); lcd.init(); lcd.backlight();// Включаем подсветку дисплея // time.settime(0,30,18,24,10,19,4); // Записываем время в модуль: сек, мин, час, дата, месяц, год (2019 = 19), день недели (пон = 1). } void loop(){ time.gettime(); lcd.setCursor(4, 0); lcd.print(time.gettime("H:i:s")); lcd.setCursor(1, 1); lcd.print(time.gettime("d-m-Y D")); delay(100); }
Спасибо за описание. Применяю этот модуль к проекту часов на ламповых индикаторах. Модуль подключаю по I2C. Никогда не сталкивался с часами реального времени, поэтому у меня некоторое недопонимание в установке. Насколько я понял смысл, первоначально в скетче строку // time.settime(0,30,18,24,10,19,4); // Записываем время в модуль: сек, мин, час, дата, месяц, год (2019 = 19), день недели (пон = 1). я записываю без начальных символов //. вручную вписываю время и дату и заливаю скетч. Потом эту же строку я записываю с начальными символами //, но время и дату не вписываю. Должно произойти обновление времени по времени компиляции?
Выставляете время (заполняете строку). Убираете // и заливаете скетч, потом снова ставите // и снова заливаете скетч, если не поставить // то при старте всегда будет устанавливаться время которое Вы указали в строке.
По времени компиляции это DS3132, DS1302 так не умеют.
Если честно то DS1302 мне не понравился, не очень точные часы, кварц надо сразу менять. DS3132 намного лучше.
Я то же посмотрел отзывы об этом модуле. Всё таки решил купить DS3231.и использовать оригинальный скетч. Доделаю- выставлю видео часов, аналогичных Вашим, но на индикаторах ИН-12.
Начал работу с индикаторами ИВ-22, не факт что выйдет, но попытаться стоит.
В отличии от знаковых ИН. ИВ это семисегментные.Там дешифратор другой нужен, формирующий из сегментов число. В советских часах Электроника такие стояли, но там применялась узкоспециальная микросхема. Думаю, что если использовать к514ид2 и на выходе высоковольтные транзисторные ключи, то всё получится.
Дешифратор ставить не буду, 27 вольт на сегменты и сетку буду подавать через транзисторы bc547, нить накала 5 В через все лампы 4 шт, получится по 1,25 В. Ардуино будет сам как дешифратор.
В принципе логично. Зачем дешифратор? У ардуинки куча выходов.
7 на сегменты и 4 на сетки, итого 11 , 2 выхода еще свободные, на один из них можно запятую подключить
Вот только с накалом будут проблемы. Лучше выделить отдельно напряжение накала и параллельно запитать. Я однажды делал ламповый усилитель. Не было обмотки 6 В на накал. были 2 по 12 В. Решил пару входных ламп последовательно на одну обмотку и пару выходных на другую. Короче, одна из ламп «недогревалась». Пришлось мотать.
Не хочу усложнять схему, если не получится, то буду пробовать что-то другое. Питание всей схемы 9 В, преобразователь поднимет его до 27, стабилизатор до 5 В, накал как получится, надо эксперементировать.
Успехов. Уверен, что получится. Дорогу осилит идущий.
Доброго дня. Понимаю, что своим вопросом вызову у Вас улыбку…год уже прошёл этому проекту. И всё таки…я эти часы собрал, они у меня работают на кухне, удобно. Вот только два раза в год возникает необходимость перевода времени на летнее и зимнее. Приходится их подключать к компу и переписывать в программе время, дату. Возможно ли введение одной кнопки, чтобы изменять показания часов?
http://rcl-radio.ru/wp-content/uploads/2020/12/time_real.zip
Не тестировал в железе, вход копки D9, нажатие — замыкание на GND
Благодарю. Обязательно попробую. Жена к этим часикам привыкла уже. Неудобства с переходом на зимнее время и обратно.
Благодарю. Работает. Попытался сам ещё добавить D10 , чтобы и минуты можно было выставлять, но что то напутал, скетч не компилируется. В принципе итак неплохо. За почти год работы часы идут точно минута в минуту.
http://rcl-radio.ru/wp-content/uploads/2020/12/time_real_1.zip
Спасибо. Я именно так же и сделал, но программа пишет ошибку компиляции, мол mm не задикларированно. Попробую влить Вашу прошивку, может я чего со знаками напутал.