| Ваш IP: 34.204.191.0 | Online(48) - гости: 34, боты: 14 | Загрузка сервера: 0.61 ::::::::::::


Часы реального времени 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);
}

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

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

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

  • Преобразователь напряжения для люминесцентной лампы 12В

    Люминесцентные лампы или трубки лампы имеет хорошую яркость и экономичность. На рисунке показа схема преобразователя напряжения для люминесцентной лампы работающего от батареи 12В. Для запуска (зажигания) лампы необходимо на нее подать высокое ионизирующее напряжение 200 и более вольт. После запуска лампы напряжение на ней падает примерно до 40 вольт. Для …Подробнее...
  • Радиопередатчик с кварцевой стабилизацией частоты диапазона 140…150МГц

    Радиопередатчик работает в диапазоне 140…150МГц Девиация частоты 3 кГц Питание на микрофон поступает с RC — фильтра R1 C1. ЗЧ через С2 поступает на вход УНЧ (VT1 VT2 — КТ315). Далее усиленный сигнал через RС — фильтр R6 R8 C4 поступает на варикап VD1 (КВ109), смещение на варикапе определяется коллекторной …Подробнее...
  • Цифровой термометр

    Основа термометра АЦП типа КР572ПВ5 который предназначен для работы с ЖКИ. Датчик температуры ТСП100П. Погрешность измерений при температуре от -50 до +100°С не более 0,5°С, погрешность при температуре  от -200 до +600ºС не более 5ºС. Напряжение питания термометра +9В. Вместо ТСП100П можно использовать и другие датчики термосопротивлений типа ТСП50П(46Ом) или …Подробнее...
  • Магнитный датчик приближения

    На рисунке показана схема магнитного датчика приближения в качестве датчика которого используется геркон. Эл. схема уст-ва основана на одновибраторе NE555, триггера на CD4013 и реле.   Когда магнит находится в непосредственной близости от геркона на выходе одновибратора образуется одиночный импульс параметры которого определены номиналами R2 и C2, что приводит к переключению триггера и …Подробнее...
  • Автомат управления освещением

    Автомат управления освещением

    Автомат управления освещением (Радио3/98 статья С.Бирюкова) позволяет автоматически управлять освещением в зависимости от времени суток. При достаточной освещенности сопротивление фото резистора R2 мало и напряжение на инвертирующем входе ОУ меньше чем на не инвертирующем. При этом транзистор VT1 закрыт, а ток , протекающей через обмотку К1, открывает транзистор VT2 который …Подробнее...