| Ваш IP: 44.197.197.23 | Online(33) - гости: 5, боты: 28 | Загрузка сервера: 0.95 ::::::::::::

Часы реального времени DS1302 (Arduino)

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). я записываю без начальных символов //. вручную вписываю время и дату и заливаю скетч. Потом эту же строку я записываю с начальными символами //, но время и дату не вписываю. Должно произойти обновление времени по времени компиляции?

    • liman28:

      Выставляете время (заполняете строку). Убираете // и заливаете скетч, потом снова ставите // и снова заливаете скетч, если не поставить // то при старте всегда будет устанавливаться время которое Вы указали в строке.
      По времени компиляции это DS3132, DS1302 так не умеют.
      Если честно то DS1302 мне не понравился, не очень точные часы, кварц надо сразу менять. DS3132 намного лучше.

      • Я то же посмотрел отзывы об этом модуле. Всё таки решил купить DS3231.и использовать оригинальный скетч. Доделаю- выставлю видео часов, аналогичных Вашим, но на индикаторах ИН-12.

        • liman28:

          Начал работу с индикаторами ИВ-22, не факт что выйдет, но попытаться стоит.

          • В отличии от знаковых ИН. ИВ это семисегментные.Там дешифратор другой нужен, формирующий из сегментов число. В советских часах Электроника такие стояли, но там применялась узкоспециальная микросхема. Думаю, что если использовать к514ид2 и на выходе высоковольтные транзисторные ключи, то всё получится.

            • liman28:

              Дешифратор ставить не буду, 27 вольт на сегменты и сетку буду подавать через транзисторы bc547, нить накала 5 В через все лампы 4 шт, получится по 1,25 В. Ардуино будет сам как дешифратор.

  • Доброго дня. Понимаю, что своим вопросом вызову у Вас улыбку…год уже прошёл этому проекту. И всё таки…я эти часы собрал, они у меня работают на кухне, удобно. Вот только два раза в год возникает необходимость перевода времени на летнее и зимнее. Приходится их подключать к компу и переписывать в программе время, дату. Возможно ли введение одной кнопки, чтобы изменять показания часов?

  • Благодарю. Обязательно попробую. Жена к этим часикам привыкла уже. Неудобства с переходом на зимнее время и обратно.

  • Благодарю. Работает. Попытался сам ещё добавить D10 , чтобы и минуты можно было выставлять, но что то напутал, скетч не компилируется. В принципе итак неплохо. За почти год работы часы идут точно минута в минуту.

  • Спасибо. Я именно так же и сделал, но программа пишет ошибку компиляции, мол mm не задикларированно. Попробую влить Вашу прошивку, может я чего со знаками напутал.

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Узкополосный приемный тракт на КФ1066ХА2

    КФ1066ХА2 (аналог К174ХА26) — в данной схеме предпочтительно использовать КФ1066ХА2 так как она более приспособлена при работе на ВЧ и потребляет значительно меньший ток и может питаться от 3 до 9 В. В данной статье рассматривается приемный тракт расчитанный на частоту 27,12МГц. Характеристики: Чувствительность при отношении сигн\шум 10дБ не хуже …Подробнее...
  • Дроссель на резисторе МЛТ

    Дроссель на резисторе МЛТ

    Самодельные дроссели основанный на резисторе МЛТ мощность от 0,125 до 2 Вт, является простым и не дорогим способом получить малогабаритный электронный компонент. Витки катушки индуктивности непосредственно наматываются на высокоомный резистор (100 кОм и более). Для расчета необходимого количества витков можно воспользоваться формулой: где: N — необходимое количество витков, L — нужная индуктивность дросселя в …Подробнее...
  • Электронный переключатель реле

    Электронный переключатель реле

    На основе D-триггера 4013 можно сделать простой электронный переключатель реле. Переключение реле происходит при помощи всего одной кнопки, при нажатии на которую включается реле, при повторном нажатии отключается. Источник — https://circuitswiring.com/electronic-toggle-switch/Подробнее...
  • Автомобильный усилитель 20 Вт (моно) на TDA7240А

    Автомобильный усилитель 20 Вт (моно) на TDA7240А

    УМЗЧ на базе TDA7240A является усилителем класса АВ предназначен для автомобильной ауди техники, микросхема имеет защиту от КЗ выходов с корпусом и шиной питания. Усилитель снабжен системой STAND-BY. Усилитель имеет следующие основные характеристики: Напряжение питания 14,4В (напряжение аккумуляторной батареи автомобиля), максимально допустимое напряжение питания до 18В Ток покоя 65мА (14,4В) …Подробнее...
  • LM3670 миниатюрный понижающий DC-DC преобразователь

    LM3670 миниатюрный понижающий DC-DC преобразователь

    LM3670 миниатюрный понижающий DC-DC преобразователь. Преобразователь обеспечивает выходной ток до 350 мА при напряжении питания от 2,5 до 5,5 В. ИМС LM3670 имеет фиксированное выходное напряжение  1.2, 1.5, 1.6, 1.8, 1.875, 2.5, 3.3 В, а так же регулируемое ADJ от 0,7 В. Частота преобразования 1 МГц. КПД 95%. Ток потребления микросхемы не …Подробнее...