Программирование часов реального времени ds1302

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

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

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

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

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

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

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

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

Читайте также:  Примеры систем программирования является

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

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

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

Геты

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

Парфюмерия оптом по материалам духиоптом.рф.

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

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

Таймер 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

Способ программирования 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):

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Вывод VCC и Gnd отвечают соответственно за питание (подача пяти вольт на DS1302 и заземление);
  • Контакт CLK подключают к цифровому пину на плате, например, к пину 6;
  • Контакт DAT подключают к цифровому пину на плате, например, к пину 7;
  • Контакт RESX подключают к цифровому пину на плате, например, к пину 8.

Подключение в Arduino IDE

Сначала рекомендуем установить специальную библиотеку для модулей семейства DS.

Скачать ее вы можете по ссылке:

Подключение библиотеки осуществляется стандартно для всех библиотек, с помощью директивы include:

Источник

DS1302 Real Time Clock Module In Arduino

DS1302 Real Time Clock Module in Arduino with Code and Wiring

In this article, you will learn how to use a DS1302 real time clock module in Arduino. Real Time Clock modules are used in many devices like computers, televisions, and many others. These modules have their own batteries as secondary source of power to keep the time updated.

This article will guide you in connecting the DS1302 real time clock module to the Arduino and display the time on a LCD screen.

DS1302 Real Time Clock Module: Code and Wiring Diagram: Steps in Creating the Device

Here are the steps in creating RFID Door Lock Arduino Project with Data Logging in Python.

Connect the components to the Arduino Uno. Please refer to the wiring diagram below.

DS1302 Real Time Clock Module: Detailed Explanation

Step 1. Gathering the components

To understand the steps above, here is the detailed explanation of the project.

Arduino UNO

You will be using Arduino Uno for this project. It is an easy to use microprocessor board. Arduino Uno is suitable for any projects and is the cheapest and widely used microprocessor board in the Arduino family. This is great for all kinds of IoT projects.

DS1302 Real Time Clock

DS1302 Real Time Clock Module

This is a DS1302 RTC module. It has 5 pins – VCC GND, CLK, DAT, and RST. To power the module, it is advised to connect it to the 5V power supply. Also, you need to add a coin-type battery. This will keep the time updated even if you turn off the device.

16×2 Liquid Crystal Display with I2C

This is where we will display our readings. The LCD that we are using has 16 columns and 2 rows. Also, it comes with an I2C interface. This means we will only need 4 connections for the power and display. This type of LCD is great if you are planning to connect more modules to the Arduino.

Step 2. Connecting the Components

Now you are ready to connect the components to the Arduino Uno. All components are connected to the 5V pin of the Arduino. The CLK, DAT, and RST pins are connected to the digital pins 2, 3, and 4. The SDA and SCL pins of the LCD are connected to Analog Pins 4 and 5.

DS1302 RTC Module Wiring Diagram

DS1302 RTC Module Wiring Diagram

Step 3. The Arduino Code

First thing is to download the library for the RTC module. There are many out there but the RTC Virtuabotix Library is used for this project. Other updated libraries have more functions for more advanced projects. For now, this library will suffice our needs.

Copy the code below to a new sketch in the Arduino IDE. Once done, you can upload it to the Arduino Uno.

#include "virtuabotixRTC.h"//Library used #include LiquidCrystal_I2C lcd(0x27, 16, 2); virtuabotixRTC myRTC(2, 3, 4); //The order here is DAT,CLK,RST. You can change this depending on the wiring char timeChar[8]; //number of digits for the format void setup() < lcd.init(); lcd.backlight(); // Set the current date, and time in the following format: // seconds, minutes, hours, day of the week, day of the month, month, year myRTC.setDS1302Time(15, 22, 21, 7, 11, 6, 2021); //Here you write your actual time/date as shown above //but remember to "comment/remove" this function once you're done //The setup is done only one time and the module will continue counting it automatically >void loop() < myRTC.updateTime(); // Start printing elements as individuals lcd.setCursor(0,0); lcd.print("Date: "); lcd.print(myRTC.dayofmonth); //You can switch between day and month if you're using American system lcd.print("/"); lcd.print(myRTC.month); lcd.print("/"); lcd.print(myRTC.year); lcd.setCursor(0,1); sprintf(timeChar, "Time: %02d:%02d:%02d",myRTC.hours, myRTC.minutes, myRTC.seconds); lcd.print(timeChar); delay(1000); >

A problem I encountered is the formatting of the seconds. As the RTC seconds reach double digits, the last digit retains as it cycles back to 0. Therefore instead of displaying “0” , it displays “09, 19, 29, 39 …” and so on.

To fix that, I used the sprintf( ) to give a double digit format.

Step 4. Upload the sketch

Now the device can operate on its own.

DS1302 RTC device displaying time on LCD

DS1302 RTC device displaying time on LCD

Источник

Оцените статью