| Ваш IP: 3.238.107.166 | Online(32) - гости: 24, боты: 8 | Загрузка сервера: 0.36 ::::::::::::


Часы реального времени DS1307

Модуль часов реального времени  DS1307 собранный на базе микросхемы DS1307ZN с питание от литиевой батарейки (LIR2032), что позволяет работать автономно в течение длительного времени. Также на модуле, установлена энергонезависимая память EEPROM объемом 32 Кбайт (AT24C32).

Отличительные особенности:

  • Подсчет реального времени в секундах, минутах, часах, датах месяца, месяцах, днях недели и годах с учетом высокосности текущего года вплоть до 2100 г.
  • 56 байт энергонезависимого ОЗУ для хранения данных
  • 2 проводной последовательный интерфейс
  • Программируемый генератор прямоугольных импульсов
  • Автоматическое определение отключения основного источника питания и подключение резервного
  • Потребление не более 500 нA при питании от резервной батареи питания при температуре 25°C
  • Возможность поставки в промышленном диапазоне температур: от -40°C до+85°C

Библиотека iarduino_RTC поддерживает все функциональные возможности часов реального времени, проста в применении.

Плата Arduino Nano и часы реального времени DS1307 обмениваются данными на шине I2C по линиям SDA (data — данные) и SCL (clock — синхронизация).

Плата Пин SDA Пин SCL
Arduino Uno, Nano, Pro и Pro Mini A4 A5
#include <Wire.h>
#include <iarduino_RTC.h> // iarduino_RTC.zip
iarduino_RTC time(RTC_DS1307);
 
void setup() {
    delay(300);
    Serial.begin(9600);
    time.begin();
  // УСТАНОВКА ВРЕМЕНИ
  //  time.settime(0,5,11,30,1,20,4);  // 0  сек, 5 мин, 11 час, 30, января, 2020 года, четверг
  //  time.settime(-1, -1, -1, 30, 1, 20); // Установить дату 30.01.2020, а время и день недели оставить без изменений
}
void loop(){
      // time.gettime(); // опрос времени - использовать если не применяете time.gettime("d-m-Y, H:i:s, D")
 
      Serial.println(time.gettime("d-m-Y, H:i:s, D")); // выводим время
      Serial.println(time.gettime("d-M-Y, H:i:s, D")); // выводим время
      // часы: h (01-12) / H (01-24)
      // день недели: D (Mon Tue Wed Thu Fri Sat Sun) / w (0-воскресенье, 6-суббота)
      // месяц: m (1-12) / M (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)
      // год: Y (2020) / y (20)
      // полдень: a (am pm) / A (AM PM)
 
      Serial.println(); 
      // int & byte
      Serial.print("часы ");Serial.println(time.Hours);      // часы 0-24 // hours 0-12
      Serial.print("минуты ");Serial.println(time.minutes);    // минуты
      Serial.print("секунды ");Serial.println(time.seconds);  // секунды
      Serial.print("день ");Serial.println(time.day);        // день 0-31
      Serial.print("месяц ");Serial.println(time.month);      // месяц 1-12
      Serial.print("год ");Serial.println(time.year);       // год 
      Serial.print("день недели ");Serial.println(time.weekday);  // 0-воскресенье, 1-понедельник, ... , 6-суббота
 
      Serial.println();
 
    delay(1000);
}

Используя дисплей LCD1602(I2C) (на базе контроллера HD44780) можно сделать простые часы, которые будут показывать текущее время и дату.

#include <Wire.h>
#include <iarduino_RTC.h> // iarduino_RTC,zip
#include <LiquidCrystal_I2C.h>// http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
  iarduino_RTC time(RTC_DS1307);
 
void setup() {
     Serial.begin(9600);
     time.begin();
     lcd.init();                     
     lcd.backlight();// Включаем подсветку дисплея
  //  time.settime(0,5,11,30,1,20,4);  // 0  сек, 5 мин, 11 час, 30, января, 2020 года, четверг
}
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(1000);
}

Комментарии

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

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

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

  • Триггеры, счетчики, регистры, мультиплексоры, шифраторы, дешифраторы

    Триггеры, счетчики, регистры, мультиплексоры, шифраторы, дешифраторы

    Триггер — это уст-во с двумя устойчивыми состояниями равновесия, предназначенные для записи и хранения информации. Триггер способен хранить 1 бит данных. Условное обозначение триггера имеет вид прямоугольника, внутри которого пишется буква Т. Слева к изображению прямоугольника подводятся входные сигналы. Обозначения входов сигнала пишутся на дополнительном поле в левой части прямоугольника. …Подробнее...
  • Расчет числа витков катушки на тороидальном ферритовом сердечнике

    Расчет числа витков катушки на тороидальном ферритовом сердечнике

    Маркировка размеров кольцевых сердечников Сначала цифрами указывается величина начальной магнитной проницаемости, затем марка используемого материала, и потом размер кольца в миллиметрах: 2000НН D x d x h Где — 2000 величина начальной магнитной проницаемости, НН – марка материала, D – внешний диаметр, d – внутренний диаметр, h – толщина кольца, …Подробнее...
  • Фазоуказатель

    Фазоуказатель

    Подключение некоторых устройств, работающих от трехфазной сети переменного тока напряжением 380 В, например электродвигателей, должно соответствовать правильной последовательности чередования фаз. Для определения последовательности чередования фаз можно собрать индикатор, схема которого показана на рисунке. Прибор имеет простую схему, высокую надежность и не требует автономного источника питания. Принцип работы прибора основан на …Подробнее...
  • Стерео усилитель 2*11Вт на LM4755

    Стерео усилитель 2*11Вт на LM4755

    На рисунке показана схема простого усилителя выполненного на ИМС LM4755 производства компании National Semiconductor. Выходная мощность усилителя 11Вт (напряжение питания 24В) на канал при сопротивлении нагрузки 4 Ом или 7Вт при сопротивлении нагрузки 8 Ом. Ток потребления в режиме покоя составляет не более 7мА. Основные характеристики усилителя: Сопротивление нагрузки 4…8 Ом …Подробнее...
  • Регулируемый стабилизатор напряжения с защитой по току (Arduino)

    Регулируемый стабилизатор напряжения с защитой по току (Arduino)

    За основу регуляруемого стабилизатора свята схема со траницы https://rcl-radio.ru/?p=57426 , схема достаточно простая и содержит минимальный набор элементов. Выходное напряжение регулируемого стабилизатора можно регулировать от 0 до 25 В при максимальном токе 3 А. Используя Arduino можно заметно расширить функционал стабилизатора, сделать индикацию и защиту по току и КЗ, добавив …Подробнее...