====== Часы реального времени (Troyka-модуль) ======
[[amp>product/troyka-rtc?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki|Часы реального времени RTC ]] (Real Time Clock) — модуль на базе чипа DS1307 с автономным питанием от батарейки-таблетки. Используйте его для получения текущей секунды, минуты, часа, дня недели месяца и года.
{{ :продукты:troyka-rtc:rtc_overvew.jpg?nolink |}}
===== Видеообзор =====
{{youtube>feecmABi4-s?large}}
===== Подключение и настройка =====
Часы реального времени общаются с управляющей электроникой по протоколу [[Видеоуроки:7-i2c-и-processing|I²C / TWI]]. Для подключения используется два [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki|3-проводных шлейфа]]. При подключении модуля к Arduino удобно использовать [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki|Troyka Shield]].{{ :продукты:troyka-rtc:troyka-rtc_scheme_troykashield.png |}}
Если хотите оставить минимум проводов —
воспользуйтесь [[amp>product/arduino-troyka-slot-shield?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki|Troyka Slot Shield]].{{ :продукты:troyka-rtc:troyka-rtc_scheme_troykaslotshield.png |}}
==== Пример работы с Arduino ====
В качестве примера выведем в Serial порт текущее время, дату и день недели. Для запуска примера понадобится библиотека [[https://github.com/amperka/TroykaRTC|TroykaRTC]].
// библиотека для работы I²C
#include
// библиотека для работы с часами реального времени
#include "TroykaRTC.h"
// размер массива для времени
#define LEN_TIME 12
// размер массива для даты
#define LEN_DATE 12
// размер массива для дня недели
#define LEN_DOW 12
// создаём объект для работы с часами реального времени
RTC clock;
// массив для хранения текущего времени
char time[LEN_TIME];
// массив для хранения текущей даты
char date[LEN_DATE];
// массив для хранения текущего дня недели
char weekDay[LEN_DOW];
void setup()
{
// открываем последовательный порт
Serial.begin(9600);
// инициализация часов
clock.begin();
// метод установки времени и даты в модуль вручную
// clock.set(10,25,45,27,07,2005,THURSDAY);
// метод установки времени и даты автоматически при компиляции
clock.set(__TIMESTAMP__);
// что бы время менялось при прошивки или сбросе питания
// закоментируйте оба метода clock.set();
}
void loop()
{
// запрашиваем данные с часов
clock.read();
// сохраняем текущее время, дату и день недели в переменные
clock.getTimeStamp(time, date, weekDay);
// выводим в serial порт текущее время, дату и день недели
Serial.print(time);
Serial.print("\t");
Serial.print(date);
Serial.print("\t");
Serial.println(weekDay);
// ждём одну секунду
delay(1000);
}
==== Пример работы с Iskra JS ====
В качестве примера выведем в «поле консоли» текущее время, дату и день недели. Для запуска примера понадобится [[js:rtc|библиотека для Iskra JS.]] Она обеспечивает простую работу с модулем и прячет в себе все тонкости протокола обмена данными между часами реального времени и управляющей платой.
// Настраиваем шину I2C
PrimaryI2C.setup({sda: SDA, scl: SCL, bitrate: 100000});
// Создаем новый объект Rtc
var rtc = require('@amperka/rtc').connect(PrimaryI2C);
// Устанавливаем на часах текущее время контроллера
rtc.setTime();
// Результат в виде строки ISO: 2016-21-1T12:1:14
print(rtc.getTime('iso'));
===== Элементы платы =====
{{ :продукты:troyka-rtc:rtc_annotation.png?nolink |}}
==== Микросхема DS1307 ====
Микросхема, занимающаяся подсчетом времени. Связь с микросхемой происходит по протоколу I2C. Её I2C-адрес 0b1101000.
==== Кварцевый резонатор ====
Для точной работы часов используется кварцевый резонатор на частоте 32768 Гц. Та же частота используется в кварцевых часах. Такая частота обеспечивает 215 циклов в секунду, что очень удобно для простых двоичных счётчиков
==== Гнездо для батарейки ====
Батарейка CR1225 обеспечивает работу часов реального времени при выключенном питании. Без батарейки модуль не может работать, даже если подключено внешнее питание.
==== Контакты подключения 3-проводных шлейфов ====
//Контакты питания://
* Земля (G) — чёрный провод. Соедините с пином ''GND'' Arduino.
* Питание (V) — красный провод. Соедините с пином ''5V'' Arduino.
* Не используется.
//Контакты шины I²C://
* Сигнальный (D) — Подключите к ''SDA'' пину Arduino.
* Сигнальный (С) — Подключите к ''SCL'' пину Arduino.
* Не используется.
===== Принципиальная и монтажная схемы =====
{{:продукты:troyka-rtc:rtc_schematic.png?direct&350 |}}
{{ :продукты:troyka-rtc:rtc_layout.png?direct&300|}}
===== Характеристики =====
* Напряжение внешнего питания: 4,5–5,5 В
* Напряжение питания батарейки: 2–3,5 В
* Потребляемый ток: 500 нА (≈6 месяцев на батарейке)
* Выходной интерфейс: I²C
* Габариты: 25,4×25,4 мм
===== Ресурсы =====
* [[https://github.com/amperka/TroykaRTC|Библиотека для работы с Arduino]]
* [[http://files.amperka.ru/datasheets/DS1307.pdf|Datasheet на микросхему DS1307]] (pdf)
* [[/js:rtc|Библиотека для Iskra JS]]
* [[amp>product/troyka-rtc?utm_source=man&utm_campaign=troyka-rtc&utm_medium=wiki|Часы реального времени RTC ]] в магазине.