Ds1302

DS1302RTC library

The DS1302 trickle-charge timekeeping chip contains a real-time clock/calendar and 31 bytes of static RAM. It communicates with a microprocessor via a simple serial interface. The real-time clock/calendar provides seconds, minutes, hours, day, date, month, and year information. The end of the month date is automatically adjusted for months with fewer than 31 days, including corrections for leap year. The clock operates in either the 24-hour or 12-hour format with an AM/PM indicator.

Arduino library to support the Maxim Integrated DS1302 Real-Time Clocks. This library is intended for use with the Arduino Time.h library, http://www.arduino.cc/playground/Code/Time.

The DS1302RTC library is a drop-in replacement for the DS1307RTC .h library by Michael Margolis that is supplied with the Arduino Time library above. To change from using a DS1307 RTC to a DS1302 RTC, it is only necessary to change the #include statement to include DS1302RTC .h instead of DS1307RTC .h.

This library also implements functions to support the additional features of the DS1302 :

Whether used with the DS1302 , the user is responsible for ensuring reads and writes do not exceed the device’s address space (0x80-0x90 for DS1302 clock data and 0xC0-0xFC RAM data); no bounds checking is done by this library.

The DS1302 uses a 3-wire interface:

It is not I2C , not OneWire , and not SPI. So the standard libraries can not be used.

The «Chip Enable» pin was called «/Reset» before.

The chip has internal pull-down registers. This keeps the chip disabled, even if the pins of the Arduino are floating.

In burst mode, all the clock data is read at once. This is to prevent a rollover of a digit during reading. The read data is from an internal buffer.

The DS1302 has 31 of ram, which can be used to store data. The contents will be lost if the Arduino is off, and the backup battery gets empty. It is better to store data in the EEPROM of the Arduino.

The DS1302 has a build-in trickle charger. That can be used for example with a rechargeble battery or a supercap.

Install the module, so that all contacts occurred in digital inputs.

// A quick demo of how to use DS1302-library to make a quick

// clock using a DS1302 and a 16×2 LCD.

// I assume you know how to connect the DS1302 and LCD.

// DS1302: CE pin -> Arduino Digital 27

// I/O pin -> Arduino Digital 29

// SCLK pin -> Arduino Digital 31

// VCC pin -> Arduino Digital 33

// GND pin -> Arduino Digital 35

// LCD: DB7 -> Arduino Digital 7

// DB6 -> Arduino Digital 6

// DB5 -> Arduino Digital 5

// DB4 -> Arduino Digital 4

// E -> Arduino Digital 9

// RS -> Arduino Digital 8

// Set pins: CE, IO,CLK

DS1302RTC RTC ( 27 , 29 , 31 ) ;

#define DS1302_GND_PIN 33

#define DS1302_VCC_PIN 35

// initialize the library with the numbers of the interface pins

// lcd(RS, E, d4, d5, d6, d7)

LiquidCrystal lcd ( 8 , 9 , 4 , 5 , 6 , 7 ) ;

// Setup LCD to 16×2 characters

digitalWrite ( DS1302_GND_PIN , LOW ) ;

pinMode ( DS1302_GND_PIN , OUTPUT ) ;

pinMode ( DS1302_VCC_PIN , OUTPUT ) ;

setSyncProvider ( RTC. get ) ; // the function to get the time from the RTC

DS1302 Real Time Clock

Легкое подключение, программирование и использование часов реального времени DS1302. Использование DS1302 на платах Arduino.

Микроконтроллер Arduino не имеет встроенных часов реального времени.

Со временем в этой плате обычно работает функция millis().

Если функционала millis() недостаточно, необходимо использовать отдельную плату часов реального времени.

Например, плату на основе микросхемы DS1302.

DS1302 Real Time Clock

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

Подключение (в данном примере – подключение RTC на основе DS 1302 к Arduino Mega 2560) :

CLK – К цифровому пину Arduino ( в примере – пин 47, Arduino MEGA 2560)

DAT – К цифровому пину Arduino ( в примере – пин 46, Arduino MEGA 2560)

RST – К цифровому пину Arduino ( в примере – пин 45, Arduino MEGA 2560)

Используем библиотеку DS1302 RTC library for Arduino, автор – msparks.

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

  • time.yr – текущий год
  • time.hr – часы
  • time.min – минуты
  • time.sec – секунды
  • time.mon – порядковый номер месяца
  • time.date – число
  • time.day – порядковый номер дня недели

Простая программа для считывания времени с DS1302

В этом примере мы выводим значения времени в последовательный порт.

Можно использовать для вывода времени семисегментные индикаторы.

[…] Например, можно использовать плату DS1302 Real Time Clock. […]

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

Через какой промежуток времени вы хотите считывать данные?

Если часто, можно просто поставить delay ( ) на промежуток между считыванием, а потом записывать на карту памяти данные датчиков и времени.

[…] Часы реального времени для Arduino ( для точного подсчета времени и учета для полива дня и ночи) […]

[…] Например, можно использовать плату DS1302 Real Time Clock. […]

Моя записная книжка

Библиотека DS1302

Определенные литералы:

Считать текущие данные из DS1302.

Пример: t = rtc.getTime(); // Считать текущую дату и время.

Пример: rtc.setTime(23, 59, 59); // Установка времени 23:59:59

Примечание: Установка времени сбрасывает флаг CH (Clock Halt).

Пример: rtc.setDate(6, 8, 2015); // Установка даты 6 августа 2015г.

Примечание: Защиты от ввода неправильной даты нет. Т.е., возможно ввести 31 февраля, но результат будет не предсказуем

Установка дня недели.

Пример: rtc.setDOW(FRIDAY); // Установить день недели — Пятница

Примечание: Устанавливаются от понедельника (1) до воскресенья (7).

Считать текущее время в виде строковой переменной.

format: <необязательный параметр>

FORMAT_LONG «ЧЧ:ММ:СС» (По умолчанию)

Пример: Serial.print(rtc.getTimeStr()); // Отправить текущее время через последовательный порт

Считать текущую дату в виде строковой переменной.

slformat: <необязательный параметр>

FORMAT_LONG Год из 4х цифр (ГГГГ) (По умолчанию)

FORMAT_SHORT Год из 2х цифр (ГГ)

eformat: <необязательный параметр>

FORMAT_LITTLEENDIAN «ДД.ММ.ГГГГ» (По умолчанию)

divider: <необязательный параметр>

Символ для разделения. По умолчанию ‘.’

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

Считать текущий день недели в виде строковой переменной.

format: <необязательный параметр>

FORMAT_LONG День недели на английском языке (По умолчанию)

FORMAT_SHORT Сокращенное название дня недели на английском языке (3 символа)

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

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

format: <необязательный параметр>

FORMAT_LONG название месяца на английском языке (По умолчанию)

FORMAT_SHORT Сокращенное название месяца на английском языке (3 символа)

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

Управление флагом СН (запуск-останов часов).

true: Установить флаг CH

false: очистить флаг CH

Пример: rtc.halt (истина); // Установить флаг CH

Примечания: Когда флаг установлен, тактовый генератор

останавливается и DS1302 находится в режиме ожидания с низким энергопотреблением с током менее 100nA. Если флаг сбрасывается, часы начинают отсчет времени.

Установка или сброс WP-бита.

true: Установить WP-бит

false: Сбросить WP бит

Пример: rtc.writeProtect(false); // Сбросить WP-бит

Примечание: WP: (Write-Protect) бит. Блокирует запись информации в DS1302

Установка режима trickle charge (заряд малым током).

value: определенные литералы, обозначающие количество диодов и сопротивлений для зарядки.

Пример: rtc.setTCR(TCR_D1R4K); // Задан режим trickle charge 1 диод и резистор сопротивлением 4кОм.

Примечание: Литералы имеют вид TCR_DxRyK где х число диодов (1 или 2), а у — используемое сопротивление (2, 4 или 8 кОм). TCR_OFF отключает фунцию подзарядки.

Запись информации в ОЗУ DS1302.

buffer: DS1302_RAM буфер

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

Чтение информации из ОЗУ DS1302.

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

Запись одного байта в ОЗУ DS1302.

address: адрес для записи (0-30)

value : число для записи по адресу

(0-255)

DS1302RTC library
DS1302RTC library The DS1302 trickle-charge timekeeping chip contains a real-time clock/calendar and 31 bytes of static RAM. It communicates with a microprocessor via a simple serial interface.
http://playground.arduino.cc/Main/DS1302RTC
DS1302 Real Time Clock
DS1302 Real Time Clock Легкое подключение, программирование и использование часов реального времени DS1302. Использование DS1302 на платах Arduino. Микроконтроллер Arduino не имеет встроенных
http://robotday.ru/2015/04/09/ds1302-real-time-clock/
Моя записная книжка
Моя записная книжка Библиотека DS1302 Определенные литералы: Считать текущие данные из DS1302. Пример: t = rtc.getTime(); // Считать текущую дату и время.
http://mynobook.blogspot.ru/2015/02/ds1302.html

COMMENTS