Arduino nano rtc ds1302

Подключение RTC часы реального времени DS1302, DS1307, DS3231 к Arduino

Для подключения RTC часов реального времени DS1302, DS1307, DS3231, была разработана универсальная библиотека.

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

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

RTC DS1307 Arduino UNO
GND GND
VCC +5V
SDA A4
SCL A5

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

RTC DS1302 Arduino UNO
GND GND
VCC +5V
RST 10 (Можно изменить на другие в скетче)
CLK 13 (Можно изменить на другие в скетче)
DAT 12 (Можно изменить на другие в скетче)

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

RTC DS3231 Arduino UNO
GND GND
VCC +5V
SDA A4
SCL A5

Программа:

В зависимости от того какой модуль Вы подключаете, необходимо в программе указать

Для DS1307:

Для DS1302 :

Для DS3231 :

Пример установки текущего времени в RTC модуль (DS1307):

Пример считывания текущего времени с RTC модуля (DS1307) и вывод в «Последовательный порт» :

Преимущества библиотеки:

— библиотека имеет внутренние функции аппаратной обработки протоколов передачи данных I2C и SPI, а следовательно не требует подключения дополнительных библиотек, но и не конфликтует с ними, если таковые всё же подключены.

— библиотека имеет внутренние функции программой обработки протокола передачи данных 3-Wire

— для инициализации модуля необходимо вызвать функцию begin с названием модуля.

— подключение модулей осуществляется к аппаратным выводам arduino используемой шины (за исключением 3-Wire)

— простота установки и чтения времени функциями settime и gettime

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

функция gettime работает как функция date в php, возвращая строку со временем, но если её вызвать без параметра, то функция ничего не вернёт, а время можно прочитать из переменных в виде чисел.

— библиотека расширяемая, то есть для того, чтоб она работала с новым модулем, нужно указать параметры этого модуля в уже существующих массивах файла RTC.h (тип шины, частота шины в кГц, режимы работы, адреса регистров и т.д.), как всё это сделать, описано в файле extension.txt

Таким образом добавив новый модуль в библиотеку, мы лишь увеличим область занимаемой динамической памяти на

36 байт, при этом не затронув область памяти программ.

— при вызове функции begin, библиотека читает флаги регистров модуля и при необходимости устанавливает или сбрасывает их так, чтоб модуль мог работать от аккумуляторной батареи, а на программируемом выводе меандра (если таковой у модуля есть) установилась частота 1Гц, тогда этот вывод можно использовать в качестве внешнего посекундного прерывания.

— при работе с модулем DS1302 не нужны никакие резисторы на выводе GND (которые нужны для его работы с другими библиотеками этого модуля), это достигнуто тем, что для шины 3-Wire указана конкретная частота 10кГц, не зависимо от частоты CPU arduino.

— в библиотеке реализована еще одна не обязательная функция period, принимающая в качестве единственного аргумента — количество минут (от 1 до 255)

если в течении указанного времени была вызвана функция gettime несколько раз, то запрос к модулю по шине будет отправлено только в первый раз, а ответом на все остальные запросы будет сумма времени последнего ответа модуля и времени прошедшего с этого ответа.

Функцию period достаточно вызвать один раз.

Источник

DS1302 – схема подключения к Arduino

Многие проекты или задачи требуют точного временного исполнения. Например, в системе автополива могут быть несколько режимов: утренний полив, дневной и вечерний. Значит, для стабильной работы всей этой системы и всего рабочего цикла необходимо, чтобы система, построенная на Arduino, имела возможность точно определять текущее время.

Данная функция в плате не была предусмотрена, поэтому такую проблему поможет решить RTC модуль часов реального времени. Он поможет составить план для Arduino касаемо того, что и в какое время должно включаться в работу или производить иные действия.

Ориентация во времени очень полезна не только в автополиве, но и в других системах: включение света или отопления по расписанию, включение электрочайника по таймеру и пр.

Рассмотрим работу модулей часов реального времени на примере DS1302. К этому семейству также можно отнести и другие модули, например DS1307, DS3231, при этом схема подключения и написание кода у всех идентичны.

Для реализации проекта из этой статьи нам потребуются следующие компоненты:

Краткий обзор датчика

DS1302 представляет собой одноименную микросхему на небольшой плате с необходимой обвязкой, позволяющий среди прочего подключить батарейку на 3-5 В, благодаря чему питание модуля можно осуществлять, как через Ардуино, так и самостоятельно.

На что же способно это устройство?

Данная микросхема позволяет считать время с точностью до секунд. Отличается низким энергопотреблением, поэтому маленькой литиевой батарейки может хватить более чем на месяц.

Схема подключения

Подключение модуля к плате осуществляется с помощью 5-ти контактов:

Источник

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

Автор: Сергей · Опубликовано 24.10.2021 · Обновлено 21.10.2021

В этой статье расскажу как подключить часы реального времени 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 и загружаем скетч в контроллер.

Источник

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

Для подключения RTC часов DS1302 понадобится немного вашего времени и терпения. В результате вы получите отличную хронометрическую систему для отслеживания и вывода цифровой информации.

Подобные датчики уже давно используются в проектах на базе среды Ардуино, что совсем не удивительно! Они легки в исполнении и сборке, надежны, долговечны и достаточно функциональны. Желаете включать ∕ выключать уличное освещение, домашнее отопление, полив любимых садовых растений по таймеру (согласно своим предпочтениям и распорядка дня)? Хотите попробовать сконструировать энергонезависимый будильник своими руками? Что может быть проще?!

Рассматриваемая сегодня микросхема способна помочь вам воплотить свои идеи в самодостаточно-существующие разработки и интереснейшие проекты. Она позволяет вести отчет и мониторить время с точностью до секунды, характеризуется низким энергопотреблением и длительным сроком эксплуатации. Информация о реальной дате и текущем времени представляется в форматах: секунды, минуты, часы, дни, даты, месяцы, годы.

Технические параметры сенсора:

  • напряжение:2-5.5 V;
  • потребляемый ток: менее 300 нА;
  • энергопотребление: до 1 МВт;
  • рабочая частота: 32.768 КГц;
  • 3-проводной интерфейс;
  • температурный режим: -40°C — 85°C;
  • ве: около 7 г.;
  • размеры: 44 × 23 × 11 мм.

Внешний вид и распиновка устройства показаны тут:

Теперь рассмотрим непосредственно само подключение DS1302 Arduino. Схематически оно выглядит следующим образом:

Мы использовали стандартный набор аппаратных компонентов: плату расширения (контроллер) Arduiono Uno, модуль ЧРВ, соединительные провода.
Часы реального времени DS1302 к Ардуино «требуют» так называемой прошивки, для которой потребуется инсталляция специализированной библиотеки: https://drive.google.com/file/d/0B5NidLiWNx39WHI0WE5TR2lnRlE/view

В самой среде IDE идем по пути: Скетч > Подключить библиотеку > Добавить .ZIP. Открываем архив. Второй вариант — прописываем директиву:
Библиотека позволит значительно ускорить процесс написания кодов, кроме того, она дает возможность эффективно и быстро отслеживать параметры времени.

Заливаем скетч:
Желаем удачной компиляции и только хороших проектов!

Источник

Подключение часов реального времени ds1302 к Arduino

Итак, часы реального времени. Эта полезная штучка решает большинство полезных задач, связанных со временем. Допустим управление поливом в 5 часов утра на даче. Или включение и выключение освещения в определённый момент. По дате можно запускать отопление в каком-нибудь доме. Вещь достаточно интересная и полезная. А конкретно? Мы с вами рассмотрим часы реального времени DS1302 для популярной платформы Arduino.

Из этой статьи вы узнаете:

Доброго времени суток, уважаемые читатели блока kip-world! Как ваши дела? Напишите в комментариях, вы увлекаетесь робототехникой? Что значит для вас эта тема?

У меня ни на минуту не покидает мысль об этом. Я сплю и вижу, когда мы наконец — то придём к тому, что каждый сможет позволить себе купить персонального робота — помощника. Не важно, чем он будет заниматься, уборкой мусора, стрижкой газонов, мойкой автомобиля.

Я просто представляю себе, насколько сложные алгоритмы они должны содержать в своих «мозгах».

Ведь мы придём к тому, что мы будем так же прошивать ПО, как на персональных компах. Так же скачивать прикладные программы. Пришивать руки, ноги, менять клешни, манипуляторы.

Посмотрите фильмы «Я-робот», «Искусственный интеллект», «Звёздных воинов».

Японцы уже давно внедряют свои разработки. Чем мы хуже?? У нас очень слабая популярность. Я знаю немногих разработчиков. По пальцам пересчитать. Мы занимаемся другим. Мы перекупщики. Просто покупаем готовые наборчики, роботов — игрушек и всякую дребедень.

Почему не разрабатываем вот это:

Я закончил свои размышления вслух. Давайте мы с вами поговорим о подключении Таймера часов реального времени DS1302 к Arduino.

Часы реального времени DS1302

Контроллер Arduino не имеет своих собственных часов. Поэтому в случае необходимости нужно дополнять специальной микросхемой DS1302.

По питанию эти платы могут использовать свой элемент питания, или запитываться непосредственно с платы Arduino.

VCC Питание (+5V)
GND Земля (GND)
CLK К цифровому пину Arduino ( в примере – пин 6, Arduino UNO)
DAT К цифровому пину Arduino ( в примере – пин 7, Arduino MEGA UNO)
RST К цифровому пину Arduino ( в примере – пин 8, Arduino MEGA UNO)

Схема подключения c Arduino UNO:

Способ программирования Arduino для работы с DS1302

Обязательно нужно скачать действующую библиотеку из надёжных источников.

Библиотека позволяет считывать и записывать параметры реального времени. Небольшое описание я привожу ниже:

#include // Подключаем библиотеку.
iarduino_RTC ОБЪЕКТ ( НАЗВАНИЕ [, ВЫВОД_RST [, ВЫВОД_CLK [, ВЫВОД_DAT ]]] ); // Создаём объект.

Функция begin (); // Инициализация работы RTC модуля.

Функция settime ( СЕК [, МИН [, ЧАС [, ДЕНЬ [, МЕС [, ГОД [, ДН ]]]]]] ); // Установка времени.

Функция gettime ( [ СТРОКА ] ); // Чтение времени.

функция blinktime ( ПАРАМЕТР [ ЧАСТОТА ] ); // Заставляет функцию gettime «мигать» указанным параметром времени.

функция period ( МИНУТЫ ); // Указывает минимальный период обращения к модулю в минутах.

Переменная seconds // Возвращает секунды от 0 до 59.

Переменная minutes // Возвращает минуты от 0 до 59.

Переменная hours // Возвращает часы от 1 до 12.

Переменная Hours // Возвращает часы от 0 до 23.

Переменная midday // Возвращает полдень 0 или 1 (0-am, 1-pm).

Переменная day // Возвращает день месяца от 1 до 31.

Переменная weekday // Возвращает день недели от 0 до 6 (0-воскресенье, 6-суббота).

Переменная month // Возвращает месяц от 1 до 12.

Переменная year // Возвращает год от 0 до 99.

Пишем простенькую программу. Установка текущего времени в RTC модуль (DS1302):

Источник

Adblock
detector