Подключение 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; Краткий обзор модуля DS1307Основная и единственная микросхема на модуле, это DS1302, как еще называют «Real Time Clock» (Часы Реального Времени), сокращенно RTC. Данная микросхема поддерживает секунды, минуты, часы, день недели, дата, месяц и год информацию, а так же следит за количеством дней в месяце и делает поправку на високосный год. Микросхема работает в 24-часовом или 12-часовом формате с индикатором AM/PM. На плате, кроме микросхемы DS1302, установлен кварц на 32,768 кГц и бокс для батарейки тика CR2032. Для связи и подачи питания, предусмотрен пяти контактный разъем, шагом 2,54 мм. Назначение контактов: Подключение DS3231 к ArduinoНеобходимые детали: Описание: Подключение: Установка библиотек: В строке поиска введите «1302», найдите библиотеку « RTC by Makuna » и установите данную библиотеку. Программа: Подключение DS1302 к ArduinoДля подключения RTC часов DS1302 понадобится немного вашего времени и терпения. В результате вы получите отличную хронометрическую систему для отслеживания и вывода цифровой информации. Подобные датчики уже давно используются в проектах на базе среды Ардуино, что совсем не удивительно! Они легки в исполнении и сборке, надежны, долговечны и достаточно функциональны. Желаете включать ∕ выключать уличное освещение, домашнее отопление, полив любимых садовых растений по таймеру (согласно своим предпочтениям и распорядка дня)? Хотите попробовать сконструировать энергонезависимый будильник своими руками? Что может быть проще?! Рассматриваемая сегодня микросхема способна помочь вам воплотить свои идеи в самодостаточно-существующие разработки и интереснейшие проекты. Она позволяет вести отчет и мониторить время с точностью до секунды, характеризуется низким энергопотреблением и длительным сроком эксплуатации. Информация о реальной дате и текущем времени представляется в форматах: секунды, минуты, часы, дни, даты, месяцы, годы. Технические параметры сенсора:
Внешний вид и распиновка устройства показаны тут: Мы использовали стандартный набор аппаратных компонентов: плату расширения (контроллер) Arduiono Uno, модуль ЧРВ, соединительные провода. В самой среде IDE идем по пути: Скетч > Подключить библиотеку > Добавить .ZIP. Открываем архив. Второй вариант — прописываем директиву: Заливаем скетч: Подключение часов реального времени ds1302 к ArduinoИтак, часы реального времени. Эта полезная штучка решает большинство полезных задач, связанных со временем. Допустим управление поливом в 5 часов утра на даче. Или включение и выключение освещения в определённый момент. По дате можно запускать отопление в каком-нибудь доме. Вещь достаточно интересная и полезная. А конкретно? Мы с вами рассмотрим часы реального времени DS1302 для популярной платформы Arduino. Из этой статьи вы узнаете: Доброго времени суток, уважаемые читатели блока kip-world! Как ваши дела? Напишите в комментариях, вы увлекаетесь робототехникой? Что значит для вас эта тема? У меня ни на минуту не покидает мысль об этом. Я сплю и вижу, когда мы наконец — то придём к тому, что каждый сможет позволить себе купить персонального робота — помощника. Не важно, чем он будет заниматься, уборкой мусора, стрижкой газонов, мойкой автомобиля. Я просто представляю себе, насколько сложные алгоритмы они должны содержать в своих «мозгах». Ведь мы придём к тому, что мы будем так же прошивать ПО, как на персональных компах. Так же скачивать прикладные программы. Пришивать руки, ноги, менять клешни, манипуляторы. Посмотрите фильмы «Я-робот», «Искусственный интеллект», «Звёздных воинов». Японцы уже давно внедряют свои разработки. Чем мы хуже?? У нас очень слабая популярность. Я знаю немногих разработчиков. По пальцам пересчитать. Мы занимаемся другим. Мы перекупщики. Просто покупаем готовые наборчики, роботов — игрушек и всякую дребедень. Почему не разрабатываем вот это: Я закончил свои размышления вслух. Давайте мы с вами поговорим о подключении Таймера часов реального времени DS1302 к Arduino. Часы реального времени DS1302Контроллер Arduino не имеет своих собственных часов. Поэтому в случае необходимости нужно дополнять специальной микросхемой DS1302. По питанию эти платы могут использовать свой элемент питания, или запитываться непосредственно с платы Arduino.
Схема подключения c Arduino UNO: Способ программирования Arduino для работы с DS1302Обязательно нужно скачать действующую библиотеку из надёжных источников. Библиотека позволяет считывать и записывать параметры реального времени. Небольшое описание я привожу ниже: #include // Подключаем библиотеку. Функция 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): Adblockdetector |