Модуль реального времени на DS1307

10038

Модуль для подсчета времени (секунды, минуты, часы), даты (год, месяц, число), дня недели.

Подробнее

Рейтинг 
								
							
Цена по прайсу: 715 тг

650 тг


Караганда:
       
Алматы:
       
Нур-Султан (Астана):
       

Характеристики

Тип продукцииМодуль времени
Объем памяти56 байт (энергонезависимая)
Рабочее напряжение, В5 В
Режим работыот LIR2032 (автоматическое определение источника питания)
ИнтерфейсI2C
Рабочая температура, °Cот -40°C до +85°C
Габариты28х25х8 мм

Подробнее

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

Внимание!

Батарейка в комплект не входит.

На плате расположено две группы контактов, шагом 2.54 мм, для удобного подключения к макетной плате, буду использовать штырьевые разъемы, их необходимо впаять.

Первая группа контактов:

  • DS: вывод DS18B20  (1-wire);
  • SCL: линия тактирования (Serial CLock);
  • SDA: линия данных (Serial Dфta);
  • VCC: «+» питание модуля;
  • GND: «-» питание модуля.

Вторая группа контактов:

  • SQ: вход 1 МГц;
  • DS: вывод DS18B20  (1-wire);
  • SCL: линия тактирования (Serial CLock);
  • SDA: линия данных (Serial Dфta);
  • VCC: «+» питание модуля;
  • GND: «-» питание модуля.

Подключение к Arduino:

Принципиальная схема:


Комплект поставки и внешний вид данного товара могут отличаться от указанных на фотографиях в каталоге интернет-магазина.

Инструкция по подключению

Подключение:

Для подключения часы реального времени DS1307, необходимо впаять впаять штыревые разъемы в первую группу контактов. Далее, подключаем провода SCL (DS1307) к выводу 4 (Arduino UNO) и SDA (DS1307) к выводу 5 (Arduino UNO), осталось подключить питания VCC к +5V и GND к GND. Кстати, в различных платах Arduino вывода интерфейса I2C отличаются, назначение каждого можно посмотреть ниже.

Установка времени DS1307:
Первым делом, необходимо скачать и установить библиотеку «DS1307RTC» и «TimeLib» в среду разработки IDE Arduino, далее необходимо настроить время, открываем пример из библиотеки DS1307RTC «Файл» —> «Примеры» —> «DS1307RTC» —> «SetTime» или копируем код снизу.

Код:

/*
Тестирование производилось на Arduino IDE 1.6.12
Дата тестирования 23.11.2016г.
*/

#include <Wire.h> // Подключаем библиотеку Wire
#include <TimeLib.h> // Подключаем библиотеку TimeLib
#include <DS1307RTC.h> // Подключаем библиотеку DS1307RTC

const char *monthName[12] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};

tmElements_t tm;

void setup() {
bool parse=false;
bool config=false;

// get the date and time the compiler was run
if (getDate(__DATE__) && getTime(__TIME__)) {
parse = true;
// and configure the RTC with this info
if (RTC.write(tm)) {
config = true;
}
}

Serial.begin(9600);
while (!Serial) ; // wait for Arduino Serial Monitor
delay(200);
if (parse && config) {
Serial.print("DS1307 configured Time=");
Serial.print(__TIME__);
Serial.print(", Date=");
Serial.println(__DATE__);
} else if (parse) {
Serial.println("DS1307 Communication Error :-{");
Serial.println("Please check your circuitry");
} else {
Serial.print("Could not parse info from the compiler, Time="");
Serial.print(__TIME__);
Serial.print("", Date="");
Serial.print(__DATE__);
Serial.println(""");
}
}

void loop() {
}

bool getTime(const char *str)
{
int Hour, Min, Sec;

if (sscanf(str, "%d:%d:%d", &Hour, &Min, &Sec) != 3) return false;
tm.Hour = Hour;
tm.Minute = Min;
tm.Second = Sec;
return true;
}

bool getDate(const char *str)
{
char Month[12];
int Day, Year;
uint8_t monthIndex;

if (sscanf(str, "%s %d %d", Month, &Day, &Year) != 3) return false;
for (monthIndex = 0; monthIndex < 12; monthIndex++) {
if (strcmp(Month, monthName[monthIndex]) == 0) break;
}
if (monthIndex >= 12) return false;
tm.Day = Day;
tm.Month = monthIndex + 1;
tm.Year = CalendarYrToTm(Year);
return true;
}

Файлы для загрузки

Отзывы

Оценка 
Сарсен М 20.04.2020

нужно отметить, что использовать можно только аккумулятор LIR, для использования батарейки CR модуль нужно перепоять

    Напишите свой отзыв

    Модуль реального времени на DS1307

    Модуль реального времени на DS1307

    Модуль для подсчета времени (секунды, минуты, часы), даты (год, месяц, число), дня недели.

    Напишите свой отзыв