| Ваш IP: 3.230.119.106 | Online(11) - гости: 6, боты: 5 | Загрузка сервера: 0.83 ::::::::::::

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

Комментарии

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

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

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

  • Простое зарядное уст-во с регулируемым током зарядки

    Простое зарядное уст-во с регулируемым током зарядки

    На рисунке показана схема простого зарядного уст-ва автомобильных аккумуляторов с регулируемым током зарядки. Зарядное уст-во основано на стабилизаторе L200 регулятора. Основные параметры стабилизатора L200CV: Максимальное входное напряжение 40В Максимальная разница напряжений «вход-выход» 32В Выходное напряжение 2,8..36В Выходной ток до 2А Минимальное падение напряжения «вход-выход» (dropout) <2,5В Ток потребления (по выводу …Подробнее...
  • УНЧ на TDA1558Q

    УНЧ на TDA1558Q

    Напряжение питания 6…18В Максимальный ток нагрузки 4А Выходная мощность при Uп=14,4В и Rн=4Ом: КНИ=0,5% — 5Вт КНИ=10% — 6Вт Ток покоя 80мАПодробнее...
  • Недорогой узкополосный FM-приемник на 68…88МГц

    На рисунке показана схема простого приемника FM-диапазона, настройка на станцию осуществляется потенциометром Р2. Полевой транзистор Т1 обеспечивает усиление входного радиосигнала на 18дБ, запитывая входную цепь TDA7000 через разделительный конденсатор С5. Ряд конденсаторов вокруг микросхемы предназначен для формирования полосы пропускания около 70 кГц. Перестраиваемый генератор строится на базе варикапа D1. Напряжение …Подробнее...
  • Полицейская сирена на LM324

    Полицейская сирена на LM324

    Данная схема издает звук напоминающий полицейскую сирену. Схема основана на ОУ LM324 представляющий собой генератор ЗЧ. При нажатии на кнопку SA1 начнет быстро заряжаться С1, сирена начнет издавать звук. При размыкании контактов SA1  сирена будет работать до тех пор пока не разрядится через R2 конденсатор С1. Источник — http://www.eleccircuit.com/police-bicycle-siren-circuits/Подробнее...
  • Простой тестер проверки радиоэлементов

    При регулировке и настройке электронной аппаратуры применяют вспомогательные устройства: индикаторы состояний, «прозвоночные” приборы и тестеры, с помощью которых выполняют различные операции: от простейшей – по проверке целостности цепей до сложной – по измерению параметров радиоэлементов. Сложные тестеры необходимы, когда выполнена проверка работоспособности радиоэлемента и необходимо уточнить значения его параметров. Оценку …Подробнее...