? подключение ds1302 к ардуино по i2c / spi

Arduino Real Time Clock with DS1302 Module

In this Arduino Project video, we are going to build a Real Time clock using the DS1302 RTC module and my favorite Arduino display, the Nokia 5110 LCD display. The project is super easy to build so it is ideal for beginners in Arduino. It won’t take you more than five minutes to build. Let’s get started!

For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Privacy Policy.
I Accept

Intro to the Arduino Real Time Clock project

All we need is a DS1302 real-time clock module which costs around 2 euros. We need a Nokia 5110 LCD display which costs around 2.5 euros and of course an Arduino of your choice. That costs from 2 to 15 euros. We are going to use an Arduino Mega today. So you can build this project for as low as 7 Euros. But let’s start. First, let’s take a look at the DS1302 real time clock module. It is a very simple and low-cost module which consists of the DS1302 chip, a crystal and of course a battery in order to keep time. This module can keep time for years with this battery.

1. DS1302: https://educ8s.tv/part/DS1302

2. Nokia 5110 LCD: https://educ8s.tv/part/NOKIA5110

3. Arduino Uno: https://educ8s.tv/part/ArduinoUno

4. Small Breadboard: https://educ8s.tv/part/SmallBreadboard

5. Wires: https://educ8s.tv/part/Wires

Full disclosure: All of the links above are affiliate links. I get a small percentage of each sale they generate. Thank you for your support!

We have to connect 5 pins in order to make it work. The first pin of the module is named Vcc. VCC goes Arduino 5 Volts. The second pin is Ground. Ground goes to Arduino Ground. The third pin is Clock and we connect it to digital pin 7 of the Arduino. The fourth pin is named DAT from Data and we connect it to digital pin 6 of the Arduino. The fifth pin is named RST. We connect RST at digital pin 5 of Arduino. Of course, you can attach those pins at any digital pin you like but then you will have to change them in the code as well. In order to see how to connect the Nokia 5110 LCD display check out the tutorial that we have prepared for that.

 DS1302 Library: https://github.com/msparks/arduino-ds1302

Nokia 5110 Library: http://www.rinkydinkelectronics.com/library.php?id=47

Now let’s go to the computer and see how to program this real-time clock. In order to use the DS1302 real-time clock module we first have to download the appropriate library. it is the msparks library from GitHub. You can find the link for this library in the description of the video. Then we have to unzip the library to Arduino -> Libraries folder. We unzip it in Arduino -> Libraries folder and we rename it to something more easy like DS1302. That’s it. Now we can use it in our project. I have loaded today’s project that consists of two files. The code and the data for the clock icon that appears in the display when the program is first loaded. we have made another tutorial about loading graphics in the Nokia 5110 LCD display so check it out first.

The Code of the Arduino Real Time Clock Project

The first time that you run this program you have to set time to the module. You have to go to the setTime function and change this line here to reflect current date and time. The first argument is the year, the second is the month the third is the day, the fourth is time, the fifth is minutes and the sixth is seconds. Then you have to enter the day of the week kThursday is for Thursday kMonday and so on for the other days of the week. Be careful though in this example the time is 13:09 but we don’t enter 09 here because it won’t work we enter 9. As it is for the month as well. We don’t enter 02, we enter only 2 for months. It is the same for hours. If it was 9 in the morning we don’t enter 09 we just enter 9. So the time now will be like this. Now we compile and run the program only once. When the program will run in the Arduino it will set the time. Next, we have to comment this line here because we don’t want to set time, each time the program is loaded but only the first time. So we comment this line and we run the program again. Now we are ready to use the code and make any changes that we like. The program prints time every second. It’s very easy and straightforward. You can download it from the link below. That’s how easy it is to build a real-time clock. I hope this video will be helpful. If you have any comments or questions post them in the comments below.

Пример проекта с i2C модулем часов и дисплеем

Проект представляет собой обычные часы, на индикатор будет выведено точное время, а двоеточие между цифрами будет мигать с интервалом раз в одну секунду. Для реализации проекта потребуются плата Arduino Uno, цифровой индикатор, часы реального времени (в данном случае вышеописанный модуль ds1307), шилд для подключения (в данном случае используется Troyka Shield), батарейка для часов и провода.

В проекте используется простой четырехразрядный индикатор на микросхеме TM1637. Устройство обладает двухпроводным интерфейсом и обеспечивает 8 уровней яркости монитора. Используется только для показа времени в формате часы:минуты. Индикатор прост в использовании и легко подключается. Его выгодно применять для проектов, когда не требуется поминутная или почасовая проверка данных. Для получения более полной информации о времени и дате используются жидкокристаллические мониторы.

Модуль часов подключается к контактам SCL/SDA, которые относятся к шине I2C. Также нужно подключить землю и питание. К Ардуино подключается так же, как описан выше: SDA – A4, SCL – A5, земля с модуля к земле с Ардуино, VCC -5V.

Индикатор подключается просто – выводы с него CLK и DIO подключаются к любым цифровым пинам на плате.

Скетч. Для написания кода используется функция setup, которая позволяет инициализировать часы и индикатор, записать время компиляции. Вывод времени на экран будет выполнен с помощью loop.


#include <Wire.h>

#include "TM1637.h"

#include "DS1307.h" //нужно включить все необходимые библиотеки для работы с часами и дисплеем.

char compileTime[] = __TIME__; //время компиляции.

#define DISPLAY_CLK_PIN 10

#define DISPLAY_DIO_PIN 11 //номера с выходов Ардуино, к которым присоединяется экран;

void setup()

{

display.set();

display.init(); //подключение и настройка экрана.

clock.begin(); //включение часов.

byte hour = getInt(compileTime, 0);

byte minute = getInt(compileTime, 2);

byte second = getInt(compileTime, 4); //получение времени.

clock.fillByHMS(hour, minute, second); //подготовка для записывания в модуль времени.

clock.setTime(); //происходит запись полученной информации во внутреннюю память, начало считывания времени.

}

void loop()

{

int8_t timeDisp; //отображение на каждом из четырех разрядов.

clock.getTime();//запрос на получение времени.

timeDisp = clock.hour / 10;

timeDisp = clock.hour % 10;

timeDisp = clock.minute / 10;

timeDisp = clock.minute % 10; //различные операции для получения десятков, единиц часов, минут и так далее.

display.display(timeDisp); //вывод времени на индикатор

display.point(clock.second % 2 ? POINT_ON : POINT_OFF);//включение и выключение двоеточия через секунду.

}

char getInt(const char* string, int startIndex) {

return int(string - '0') * 10 + int(string) - '0'; //действия для корректной записи времени в двухзначное целое число. В ином случае на экране будет отображена просто пара символов.

}

После этого скетч нужно загрузить и на мониторе будет показано время.

Программу можно немного модернизировать. При отключении питания выше написанный скетч приведет к тому, что после включения на дисплее будет указано время, которое было установлено при компиляции. В функции setup каждый раз будет рассчитываться время, которое прошло с 00:00:00 до начала компиляции. Этот хэш будет сравниваться с тем, что хранятся в EEPROM, которые сохраняются при отключении питания.

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

Можно усовершенствовать проект. Если использовать жидкокристаллический монитор, можно сделать проект, который будет отображать дату и время на экране. Подключение всех элементов показано на рисунке.

В результате в коде нужно будет указать новую библиотеку (для жидкокристаллических экранов это LiquidCrystal), и добавить в функцию loop() строки для получения даты.

Алгоритм работы следующий:

  • Подключение всех компонентов;
  • Загрузка скетча;
  • Проверка – на экране монитора должны меняться ежесекундно время и дата. Если на экране указано неправильное время, нужно добавить в скетч функцию RTC.write (tmElements_t tm). Проблемы с неправильно указанным временем связаны с тем, что модуль часов сбрасывает дату и время на 00:00:00 01/01/2000 при выключении.
  • Функция write позволяет получить дату и время с компьютера, после чего на экране будут указаны верные параметры.

Описание

Модуль часов реального времени с независимым питанием.
Контроллеры Arduino/Genuino не имеют встроенных часов реального времени. Для работы со временем есть функция millis(). Однако, для проектов где требуется время и дата, возможностей данной функции недостаточно и на помощь приходят часы реального времени.

Модуль часов выполнен на основе чипа ds-1302. Часы позволяют считать секунды, минуты, часы, день недели, день месяца, месяц, год с учетом високосных лет до 2100 года. Есть возможность вести 12 или 24 часовой учет времени. Подсоединение осуществляется посредством стандартных проводов «папа-мама».

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

Для питания модуля используется батарейка CR2032, 3В.

Технические характеристики

Напряжение внешнего питания: 5 — 5,5 В

Напряжение питания батареи: 2,0 — 3,5 В

Тип батарейки: CR2032

Потребляемый ток: 300 нА

Недорогое решение для получения времени и даты

Просты в работе

Минусы использования

Не работают от внешнего питания (только от батареи)

При подключении требуется резистор, что затрудняет легкое подключение к модулю

The Code of the Arduino Real Time Clock Project

The first time that you run this program you have to set time to the module. You have to go to the setTime function and change this line here to reflect current date and time. The first argument is the year, the second is the month the third is the day, the fourth is time, the fifth is minutes and the sixth is seconds. Then you have to enter the day of the week kThursday is for Thursday kMonday and so on for the other days of the week. Be careful though in this example the time is 13:09 but we don’t enter 09 here because it won’t work we enter 9. As it is for the month as well. We don’t enter 02, we enter only 2 for months. It is the same for hours. If it was 9 in the morning we don’t enter 09 we just enter 9. So the time now will be like this. Now we compile and run the program only once. When the program will run in the Arduino it will set the time. Next, we have to comment this line here because we don’t want to set time, each time the program is loaded but only the first time. So we comment this line and we run the program again. Now we are ready to use the code and make any changes that we like. The program prints time every second. It’s very easy and straightforward. You can download it from the link below. That’s how easy it is to build a real-time clock. I hope this video will be helpful. If you have any comments or questions post them in the comments below.

Примеры подключения и использования

Пример 1:
В примере иллюстрируется подключение модуля часов к контроллеру, и установка времени на часах. (Примеры тестировались на контроллере Smart UNO)

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

Скетч для загрузки:

Установку времени для часов достаточно запустить один раз

#include //создание объекта часы
//снять защиту от записи
//установка дня недели (только на английском)
//установка времени (часы, минуты, секунды)
//Дата цифрами. «0» перед одиночной цифрой можно не ставить

Пример 2:
В примере иллюстрируется подключение модуля часов к контроллеру, определение текущих значений времени и даты. Значения времени и даты выводятся в монитор Serial — порта. (Примеры тестировались на контроллере Smart UNO)

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

Скетч для загрузки:

#include //подключение библиотеки для работы с часами
//создание объекта часы
//инициализация Serial-порта
//получить день недели
//вывести день недели
//вывести текущую дату
//задержка на 1 секунду

setTime(hour, min, sec);

Установка времени.
Параметры:
hour:
Часы (0-23)min:
Минуты (0-59)sec:
Секунды (0-59)Пример:
rtc.setTime(23, 59, 59); // Установка времени 23:59:59
Примечание:
Установка времени сбрасывает флаг CH (Clock Halt).

setDate(date, mon, year);

Установка даты.
Параметры:
date:
День (1-31)mon:
Месяц (1-12)year
: Год (2000-2099)Пример:
rtc.setDate(6, 8, 2015); // Установка даты 6 августа 2015г.
Примечание:
Защиты от ввода неправильной даты нет. Т.е., возможно ввести 31 февраля, но результат будет не предсказуем

setDOW(dow);

Установка дня недели.
Параметры:
dow:
День недели (1-7)Пример:
rtc.setDOW(FRIDAY); // Установить день недели — Пятница
Примечание:
Устанавливаются от понедельника (1) до воскресенья (7).

getTimeStr();

Считать текущее время в виде строковой переменной.
Параметры
:format:
FORMAT_LONG
«ЧЧ:ММ:СС» (По умолчанию)FORMAT_SHORT
«ЧЧ:ММ»Пример:
Serial.print(rtc.getTimeStr()); // Отправить текущее время через последовательный порт

getDateStr(]]);

Считать текущую дату в виде строковой переменной.
Параметры:
slformat:
FORMAT_LONG
Год из 4х цифр (ГГГГ) (По умолчанию)FORMAT_SHORT
Год из 2х цифр (ГГ)eformat:
FORMAT_LITTLEENDIAN
«ДД.ММ.ГГГГ» (По умолчанию)FORMAT_BIGENDIAN
«ГГГГ.ММ.ДД»FORMAT_MIDDLEENDIAN
«ММ.ДД.ГГГГ»divider:

Символ для разделения. По умолчанию «.»Пример:
Serial.print(rtc.getDateStr()); // Отправить текущую дату через последовательный порт (В формате «ДД.ММ.ГГГГ»)

getDOWStr();

Считать текущий день недели в виде строковой переменной.
Параметры:
format:
FORMAT_LONG
День недели на английском языке (По умолчанию)FORMAT_SHORT
Сокращенное название дня недели на английском языке (3 символа)Пример:
Serial.print(rtc.getDOWStr(FORMAT_SHORT)); // Отправить сокращенное название текущего дня недели через последовательный порт

getMonthStr();

Считать текущий месяц в виде строковой переменной.
Параметры:
format:
FORMAT_LONG
название месяца на английском языке (По умолчанию)FORMAT_SHORT
Сокращенное название месяца на английском языке (3 символа)Пример:
Serial.print(rtc.getMonthStr()); // Отправить название текущего месяца через последовательный порт

halt(value);

Управление флагом СН (запуск-останов часов).
Параметры:
value:
true:
Установить флаг CHfalse:
очистить флаг CHПример:
rtc.halt (истина); // Установить флаг CH
Примечания:
Когда флаг установлен, тактовый генератор
останавливается и DS1302 находится в режиме ожидания с низким энергопотреблением с током менее 100nA. Если флаг сбрасывается, часы начинают отсчет времени.

writeProtect(enable);

Установка или сброс WP-бита.
Параметры:
enable:
true:
Установить WP-битfalse:
Сбросить WP битПример:
rtc.writeProtect(false); // Сбросить WP-бит
Примечание:
WP: (Write-Protect) бит. Блокирует запись информации в DS1302

setTCR(value);

Установка режима trickle charge (заряд малым током).
Параметры:
value:
определенные литералы, обозначающие количество диодов и сопротивлений для зарядки.Пример:
rtc.setTCR(TCR_D1R4K); // Задан режим trickle charge 1 диод и резистор сопротивлением 4кОм.
Примечание:
Литералы имеют вид TCR_DxRyK где х число диодов (1 или 2), а у — используемое сопротивление (2, 4 или 8 кОм). TCR_OFF отключает фунцию подзарядки.

writeBuffer(buffer);

Запись информации в ОЗУ DS1302.
Параметры:
buffer:
DS1302_RAM буферПример:
rtc.writebuffer(ramBuffer); // Записать 31 байт из переменной ramBuffer в ОЗУ DS1302

readBuffer();

Чтение информации из ОЗУ DS1302.
Параметры:
НетПример:
ramBuffer=rtc.readBuffer(); // Прочитать все 31 байт из ОЗУ DS1302 в переменную ramBuffer

poke(address, value);

Запись одного байта в ОЗУ DS1302.
Параметры:
address:
адрес для записи (0-30)value:
число для записи по адресу

Подключение и настройка

Часы реального времени общаются с управляющей электроникой по протоколу I²C / TWI. Для подключения используется два 3-проводных шлейфа. При подключении модуля к Arduino удобно использовать Troyka Shield.

Если хотите оставить минимум проводов —
воспользуйтесь Troyka Slot Shield.

Пример работы с Arduino

testClock.ino
// библиотека для работы I²C
#include <Wire.h>
// библиотека для работы с часами реального времени
#include "TroykaRTC.h"
 
// размер массива для времени
#define LEN_TIME 12
// размер массива для даты
#define LEN_DATE 12
// размер массива для дня недели
#define LEN_DOW 12
 
// создаём объект для работы с часами реального времени
RTC clock;
 
// массив для хранения текущего времени
char timeLEN_TIME;
// массив для хранения текущей даты
char dateLEN_DATE;
// массив для хранения текущего дня недели
char weekDayLEN_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

В качестве примера выведем в «поле консоли» текущее время, дату и день недели. Для запуска примера понадобится библиотека для Iskra JS. Она обеспечивает простую работу с модулем и прячет в себе все тонкости протокола обмена данными между часами реального времени и управляющей платой.

rtc.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'));

Setting the date and time of day

If you dig into the software, you will find the lines that sets the RTC to initial date and time values. They start…

  // Example for April 15, 2013, 10:08, Monday is 2nd day of Week.
  // Set your own time and date in these variables.
  seconds    = 40;
  minutes    = 16;
  hours      = 21;
  dayofweek  = 1;  // Day of week, any day can be first, counts 1...7
  dayofmonth = 17; // Day of month, 1...31
  month      = 8;  // month 1...12
  year       = 2015;

Revise the values on those lines to some moment in time about a minute from when you expect to run to program. Compile. Upload. Then just before the moment the settings were made for, press the Arduino’s reset button, to start the program again at the programmed moment.

Once you’ve done that, as long as you have the battery in the module, to provide a standby voltage to get it through the times it isn’t powered from the Arduino’s Vcc, you don’t WANT the «set starting time» part of the program to run. You arrange that by remming out the…

#define SET_DATE_TIME_JUST_ONCE

… which is just a few lines before the lines we tweaked a moment ago.

Сравнение популярных модулей RTC DS1302, DS1307, DS3231

В этой таблице мы привели список наиболее популярных модулей и их основные характеристики.

Название Частота Точность Поддерживаемые протоколы
DS1307 1 Гц, 4.096 кГц, 8.192 кГц, 32.768 кГц Зависит от кварца – обычно значение достигает 2,5 секунды в сутки, добиться точности выше 1 секунды в сутки невозможно. Также точность зависит от температуры. I2C
DS1302 32.768 кГц 5 секунд в сутки I2C, SPI
DS3231 Два выхода – первый на 32.768 кГц, второй – программируемый от 1 Гц до 8.192 кГц ±2 ppm при температурах от 0С до 40С.

±3,5 ppm при температурах от -40С до 85С.

Точность измерения температуры – ±3С

I2C

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

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

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

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

Функция 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

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

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

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

Не важно, чем он будет заниматься, уборкой мусора, стрижкой газонов, мойкой автомобиля

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

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

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

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

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

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

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

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

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

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

Функция 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):

Arduino

#include iarduino_RTC time(RTC_DS1302,6,7,8); void setup() { delay(300); Serial.begin(9600); time.begin(); time.settime(0,51,21,27,10,15,2); // 0 сек, 51 мин, 21 час, 27, октября, 2015 года, вторник } void loop(){ if(millis()%1000==0){ // если прошла 1 секунда Serial.println(time.gettime(«d-m-Y, H:i:s, D»)); // выводим время delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс } }

#include

iarduino
_
RTCtime
(RTC_DS1302
,
6
,
7
,
8
)
;

void
setup
()
{

delay
(300
)
;

Serial
.
begin
(9600
)
;

time
.
begin
()
;

time
.
settime
(0
,
51
,
21
,
27
,
10
,
15
,
2
)
;
// 0 сек, 51 мин, 21 час, 27, октября, 2015 года, вторник

void
loop
()
{

if
(millis
()
%
1000
==
0
)
{
// если прошла 1 секунда

Serial
.
println
(time
.
gettime
(«d-m-Y, H:i:s, D»
)
)
;
// выводим время

delay
(1
)
;
// приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс

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

#include iarduino_RTC time(RTC_DS1302,6,7,8); void setup() { delay(300); Serial.begin(9600); time.begin(); } void loop(){ if(millis()%1000==0){ // если прошла 1 секунда Serial.println(time.gettime(«d-m-Y, H:i:s, D»)); // выводим время delay(1); // приостанавливаем на 1 мс, чтоб не выводить время несколько раз за 1мс } }