
В этой статье расскажу как подключить часы реального времени DS1302 к Arduino UNO. В прошлых статьях рассказывал о похожих модулях DS1307 и DS3231, которые работают таким же образом, что и DS1302, но основное различие между ними, это используемая линия связи с Arduino. Модули DS1307 и DS3231 используют линию I2C, а DS1302 использует трех проводную линию.
Технические параметры HX711:
► Микросхема: DS1302;
► Номинальное напряжение: 2-5.5 В;
► Потребляемый ток: менее 300 нА;
► Рабочая частота: 32.768 кГц;
► ОЗУ: 31 байт;
► Габариты: 44 × 23 × 11 мм;
► Вес: 7 грамм.
Краткий обзор модуля DS1307
Основная и единственная микросхема на модуле, это DS1302, как еще называют «Real Time Clock» (Часы Реального Времени), сокращенно RTC. Данная микросхема поддерживает секунды, минуты, часы, день недели, дата, месяц и год информацию, а так же следит за количеством дней в месяце и делает поправку на високосный год. Микросхема работает в 24-часовом или 12-часовом формате с индикатором AM/PM.

На плате, кроме микросхемы DS1302, установлен кварц на 32,768 кГц и бокс для батарейки тика CR2032. Для связи и подачи питания, предусмотрен пяти контактный разъем, шагом 2,54 мм.
Назначение контактов:
► Vcc и GND — Питание модуля, 2 — 5.5 В;
► CLK — Вход тактовой частоты последовательных данных.
► DAT — Ввод/вывод последовательных данных
► RST — Включение логике RTC

Подключение DS3231 к Arduino
Необходимые детали:
► Arduino UNO R3 x 1 шт.
► Часы реального времени на DS1302, RTC x 1 шт.
► Провод DuPont, 2,54 мм, 20 см, F-M (Female — Male) x 1 шт.
► Кабель USB 2.0 A-B x 1 шт.
Описание:
В примере покажу как подключить модуль DS1302 к Arduino UNO. В скетче установим текущие время и затем прочитаем его, полученные данные отправим в последовательный порт.
Подключение:
Схема не сложная, необходимо пять проводов, сначала подключаем шину Vcc и GND от модуля DS1302 к выводам Arduino 5 В и GND (можно и запитать и от 3.3 В), затем подключим CLK, DAT, RST от модуля DS1302 к выводам Arduino 6, 7, 8 (при необходимости, выводы можно поменять). Схема собрана, для удобства приведу принципиальную схему подключения.

Установка библиотек:
Для работы с модулем необходимо установить библиотеку «RTC by Makuna», для этого, перейдите в Скетч —> Подключить библиотеку —> Управление библиотеками.

В строке поиска введите «1302», найдите библиотеку « RTC by Makuna » и установите данную библиотеку.

Программа:
Теперь запускаем среду разработку Arduino IDE и загружаем скетч в контроллер.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
#include <ThreeWire.h> // Подключаем библиотеку ThreeWire #include <RtcDS1302.h> // Подключаем библиотеку RtcDS1302 ThreeWire myWire(7,6,8); // Указываем вывода IO, SCLK, CE RtcDS1302<ThreeWire> Rtc(myWire); void setup () { Serial.begin(9600); // Установка последовательной связи на скорости 9600 Serial.print("Data: "); // Отправка данных на последовательный порт Serial.println(__DATE__); // Получение даты и времени с ПК Serial.print("Time: "); // Отправка данных на последовательный порт Serial.println(__TIME__); // Получение даты и времени с ПК Rtc.Begin(); // Инициализация RTC RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__); // Копирование даты и времени в compiled Rtc.SetDateTime(compiled); // Установка времени Serial.println(); // Отправка данных на последовательный порт } void loop () { Rtc.GetDateTime(); RtcDateTime now = Rtc.GetDateTime(); Serial.print("DATA RTC "); // Отправка данных на последовательный порт Serial.print(now.Month()); // Отправка месяца Serial.print("."); // Отправка данных на последовательный порт Serial.print(now.Day()); // Отправка дня Serial.print("."); // Отправка данных на последовательный порт Serial.print(now.Year()); // Отправка года Serial.print(" TIME RTC "); // Отправка данных на последовательный порт Serial.print(now.Hour()); // Отправка часа Serial.print(":"); // Отправка данных на последовательный порт Serial.print(now.Minute()); // Отправка минут Serial.print(":"); // Отправка данных на последовательный порт Serial.println(now.Second()); // Отправка секунд delay(2000); // Пауза 2 с } |
Загрузите скетч и откройте «Последовательный монитор» из Arduino IDE.

Вот и все, если будут вопросы пишите.

Ссылки Библиотека RtcDS1302
Документация на DS1302
Купить на Aliexpress Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Комплект проводов DuPont, 2,54 мм, 20 см
Часы реального времени на DS1302
Купить в Самаре и области Контроллер Arduino UNO R3 на CH340G
Контроллер Arduino UNO R3 на Atmega16U2
Провода DuPont, 2,54 мм, 20 см
Часы реального времени на DS1302, RTC
А как установить время 0 часов 0 минут 0 часов? А ещё я хотел спросить, как сделать милисекунды?