PCF8563: Подключение часов реального времени к Arduino по I2C интерфейсу

Как подключить PCF8563 к Arduino. Как настроить часы реального времени PCF8563. Как считывать время и дату с PCF8563. Как использовать будильник PCF8563. Какие преимущества у PCF8563 перед другими RTC.

Обзор микросхемы часов реального времени PCF8563

PCF8563 — это недорогая и широко распространенная микросхема часов реального времени (RTC) от компании NXP Semiconductors. Она позволяет точно отслеживать время и дату даже при отключении основного питания устройства.

Основные характеристики PCF8563:

  • Низкое энергопотребление — менее 250 нА в режиме ожидания
  • Широкий диапазон напряжения питания: от 1.0В до 5.5В
  • Возможность работы от батарейки
  • Интерфейс I2C для подключения к микроконтроллеру
  • 32.768 кГц кварцевый генератор
  • Календарь до 2099 года
  • Программируемый выход прерывания
  • Функция будильника

Благодаря этим особенностям PCF8563 отлично подходит для использования в различных встраиваемых системах, где требуется отслеживание реального времени при минимальном энергопотреблении.


Подключение PCF8563 к Arduino по I2C интерфейсу

Для подключения PCF8563 к Arduino используется интерфейс I2C. Это позволяет легко интегрировать микросхему часов в проект и обмениваться данными с ней. Схема подключения выглядит следующим образом:

  • VCC PCF8563 подключается к 3.3В или 5В Arduino
  • GND PCF8563 подключается к GND Arduino
  • SCL PCF8563 подключается к пину SCL Arduino (A5 на большинстве плат)
  • SDA PCF8563 подключается к пину SDA Arduino (A4 на большинстве плат)

Дополнительно можно подключить пин INT PCF8563 к любому цифровому пину Arduino для обработки прерываний от часов. Также не забудьте подключить подтягивающие резисторы 4.7 кОм к линиям SDA и SCL.

Инициализация и настройка PCF8563 в скетче Arduino

Для работы с PCF8563 в Arduino IDE удобно использовать готовые библиотеки. Одна из популярных — PCF8563 от Adafruit. Установите ее через менеджер библиотек Arduino IDE.

Базовый код для инициализации часов будет выглядеть так:


#include <Wire.h>
#include <Adafruit_PCF8563.h>

Adafruit_PCF8563 rtc;

void setup() {
  Serial.begin(9600);
  
  if (!rtc.begin()) {
    Serial.println("Не удалось найти PCF8563");
    while (1);
  }

  // Установка времени при первом запуске  
  rtc.adjust(DateTime(2023, 9, 20, 12, 0, 0));
}

void loop() {
  DateTime now = rtc.now();
  
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.print(now.day(), DEC);
  Serial.print(" ");
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.print(now.second(), DEC);
  Serial.println();
  
  delay(1000);
}

Этот код инициализирует PCF8563, устанавливает начальное время и затем выводит текущее время в серийный порт каждую секунду.


Чтение времени и даты с PCF8563

Для считывания текущего времени с PCF8563 используется метод now(), который возвращает объект DateTime. У этого объекта есть методы для получения отдельных компонентов даты и времени:

  • year() — получение года
  • month() — получение месяца
  • day() — получение дня
  • hour() — получение часа
  • minute() — получение минут
  • second() — получение секунд

Пример использования:


DateTime now = rtc.now();

int year = now.year();
int month = now.month();
int day = now.day();
int hour = now.hour();
int minute = now.minute();
int second = now.second();

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

Установка будильника на PCF8563

PCF8563 имеет встроенную функцию будильника, которую можно использовать для генерации прерываний в заданное время. Для настройки будильника используется метод setAlarm():


// Установка будильника на 8:30 каждый день
rtc.setAlarm(8, 30);

// Включение прерывания по будильнику
rtc.enableAlarm(PCF8563_ALARM_ENABLE);

Чтобы обрабатывать прерывания от будильника, нужно подключить пин INT микросхемы к цифровому пину Arduino и настроить прерывание:



const int alarmPin = 2;

void setup() {
  // ...
  pinMode(alarmPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(alarmPin), alarmFunction, FALLING);
}

void alarmFunction() {
  Serial.println("Сработал будильник!");
}

Теперь при наступлении заданного времени будет вызываться функция alarmFunction().

Преимущества PCF8563 перед другими микросхемами RTC

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

  • Низкое энергопотребление — PCF8563 потребляет всего 250 нА в режиме ожидания, что делает ее идеальной для устройств с батарейным питанием.
  • Широкий диапазон напряжения питания — от 1.0В до 5.5В, что обеспечивает совместимость с различными микроконтроллерами.
  • Встроенный температурно-компенсированный кварцевый генератор обеспечивает высокую точность хода часов.
  • Функция калибровки позволяет настроить точность хода для компенсации погрешностей кварцевого резонатора.
  • Программируемый выход с открытым стоком для генерации прямоугольных импульсов различной частоты.
  • Компактный корпус и небольшое количество внешних компонентов упрощают интеграцию в проект.

Эти особенности делают PCF8563 отличным выбором для многих применений, от простых часов до сложных систем сбора данных с временными метками.


Использование PCF8563 в проектах Arduino

PCF8563 можно эффективно применять в различных проектах на базе Arduino. Вот несколько идей:

  • Цифровые часы с LED или LCD дисплеем
  • Метеостанция с логированием данных и временными метками
  • Система автоматического полива растений по расписанию
  • Таймер для фотографирования в технике time-lapse
  • Будильник с возможностью установки нескольких времен срабатывания
  • Система контроля доступа с записью времени прихода/ухода

В каждом из этих проектов PCF8563 обеспечивает точное отслеживание времени и возможность программирования действий по расписанию.

Калибровка PCF8563 для повышения точности хода

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


// Установка значения калибровки
// Диапазон от -64 до +63, где -64 замедляет ход на 10.7 ppm, а +63 ускоряет на 10.7 ppm
rtc.calibrate(10);

Чтобы определить необходимое значение калибровки, нужно измерить отклонение хода часов за длительный период (например, неделю) и рассчитать требуемую коррекцию. Это позволит добиться высокой точности хода PCF8563 в вашем конкретном устройстве.



Серия pcf8563 (NXP)

NXP

Общие характеристики

РазделЧасы реального времени
Интерфейс подключения
Напряжение питания
Рабочая температура

Документация на серию pcf8563

  • найти pcf8563.pdf

    Товары серии pcf8563

    НаименованиеiУпаковкаОсобенностиКорпус
    PCF8563BS/4 (NXP)

     

     

    Real Time Clock, Volatile, 1 Timer(s), CMOS, PDSO10
    PCF8563BS/4.118 (NXP)

     

     

    1 шт DFN10
    PCF8563P (NXP)

     

    Real Time Clock, Volatile, 1 Timer(s), CMOS, PDIP8
    PCF8563P/F4 (NXP)

     

    Real Time Clock, Volatile, 1 Timer(s), CMOS, PDIP8
    PCF8563P/F4. 112 (NXP)

     

     

    DIP8300
    PCF8563T (NXP)

     

    1 штReal Time Clock, Volatile, 1 Timer(s), CMOS, PDSO8 SO-8 SOIC8
    PCF8563T/5 (NXP)

     

    1 штReal Time Clock, 1 Timer(s), CMOS, PDSO8 SO-8 SOIC8
    PCF8563T/5.518 (NXP)

     

    в ленте 2500 шт SO-8 SOIC8
    PCF8563T/F4 (NXP)

     

    1 штReal Time Clock, Volatile, 1 Timer(s), CMOS, PDSO8
    PCF8563T/F4. 112 (NXP)

     

    в линейках 100 шт SO-8 SOIC8
    PCF8563T/F4.118 (NXP)

     

    в ленте 2500 шт
    SO-8 SOIC8
    PCF8563TD (NXP)

     

    Real Time Clock, Volatile, 0 Timer(s), CMOS, PDSO8 SO-8 SOIC8
    PCF8563TS (NXP)

     

    1 штReal Time Clock, Volatile, 1 Timer(s), CMOS, PDSO8
    PCF8563TS/4 (NXP)

     

    1 штReal Time Clock, Volatile, 1 Timer(s), CMOS, PDSO8 TSSOP-8
    PCF8563TS/4. 118 (NXP)

     

    в ленте 2500 шт TSSOP-8
    PCF8563TS/5 (NXP)

     

    1 штReal Time Clock, 1 Timer(s), CMOS, PDSO8 SO-8 SOIC8
    PCF8563TS/5.118 (NXP)

     

     

    1 шт TSSOP-8
    PCF8563TS/F4.118 (NXP)

     

    TSSOP-8

    3707 от 700 рублей Модуль: RTC; PCF8563; I2C; 3,3ВDC; штыревой; 5г; Размер: CR1220 производства WAVESHARE WSH-3707

    нет в наличии

    по запросу

    Запросить

    Вы можете запросить у нас любое количество 3707, просто отправьте нам запрос на поставку.
    Мы работаем с частными и юридическими лицами.

    WSH-3707 описание и характеристики

    Модуль: RTC; PCF8563; I2C; 3,3ВDC; штыревой; 5г; Размер: CR1220

    Бесплатная доставка
    заказов от 5000 ₽

    Доставим прямо в руки или в ближайший пункт выдачи


    Похожие товары

    DFR0151

    Модуль: RTC; DS1307; I2C; 5ВDC; 22×27мм; 6г; Размер: CR1220; винтами

    от 1 037 ₽

    +467 баллов

    Подробнее

    OKY3391

    Модуль: RTC; DS1302; serial; 3,3÷5ВDC; батареи RTC,штыревой

    от 321 ₽

    +144 балла

    Подробнее

    OKY3392

    Модуль: RTC; DS1307; I2C; 3,3ВDC; батареи RTC,штыревой; 29×26мм

    от 399 ₽

    +180 баллов

    Подробнее

    Ваша заявка отправлена. В ближайшее время мы свяжемся с Вами по указанным контактам.

    20800078

    Enclosure, Accessory, Coding Pegs Срок поставки 3-4 недели

    Поздравляем! Вы получили бесплатную доставку на ваш заказ!

    Оформить заказ

    Заказанное количество не является кратным. Правильное количество должно быть кратным .

    Введите номер вашего мобильного телефона

    Нажимая на кнопку «Получить СМС с кодом для регистрации», Вы принимаете условия пользовательского соглашения.

    Введите номер вашего мобильного телефона

    Нажимая на кнопку «Получить СМС с кодом доступа», Вы принимаете условия пользовательского соглашения.

    Введите номер вашего мобильного телефона

    Нажимая на кнопку «Получить СМС с кодом доступа», Вы принимаете условия пользовательского соглашения.

    Введите номер вашего мобильного телефона

    Нажимая на кнопку «Получить СМС с кодом доступа», Вы принимаете условия пользовательского соглашения.

    Сохранение профиля

    Данные сохранены!

    Отменить удаление будет невозможно

    Введите название Запись начинается на строке

    12

    Предварительный просмотр вашего файла отображается ниже. Ваши столбцы были сопоставлены на основе содержания вашего файла. Пожалуйста, просмотрите выбранные варианты и используйте выпадающие списки над каждым столбцом, чтобы внести какие-либо изменения, а также сопоставить столбцы, которые мы не смогли отобразить автоматически. Требуется столбец как для номера детали, так и для количества.

    ПКФ8563 | NXP Semiconductors

    Фильтр по

    1-5 из 15 документы

    Сортировать поРелевантностиНовости/ДатаОт А до ЯОт Я до А

    • Техническая спецификация

      PDF Ред. 11.0 23 июня 2017 г. 495.5 KPCF8563Английский, №

    • Примечание по применению

      PDFRev 1.014 марта 2013 г.763.2 KBAN10853Английский

    • Примечание по применению

      PDF Ред. 1.0 5 ноября 2007 г. 288.0 KBAN10652Английский

    • Гид пользователя

      PDFRev 7.01 октября 2021751.0 KBUM10204Английский, 日本語

      Требуется авторизация

    • Гид пользователя

      PDFRev 2. 124 июля 2015 г.961.0 KBUM10301Английский

    • Брошюра

      PDF Ред. 1.0 8 апреля 2018 г. 1.1 MB75016543Английский

    • Информация о пакете

      PDFRev 1. 013 июля 2017 г. 218.9 KBSOT650-1Английский

    • Информация о пакете

      PDFRev 1.19 января 2017 г.175.4 KBSOT96-1Английский

    • Информация об упаковке

      PDFRev 1. 02 июня 2014 г.131.2 KBSOT96-1_518Английский

    • Информация об упаковке

      PDF Ред. 2.0 19 апреля 2013 г. 237.4 KBSOT96-1_118Английский

    • Информация об упаковке

      PDF Ред. 2.0 18 апреля 2013 г. 277.1 KBSOT650-1_118Английский

    • Информация об упаковке

      PDF Ред. 1.0 15 апреля 2013 г. 218.8 KBSOT505-1_118Английский

    • Руководство по выбору

      PDFRev 4 20 июля 2020 г. 21.1 MBRTCSelectorGuideA4English

    • Вспомогательная информация

      PDFRev 3.01 июля 2016 г. 206.3 KBWAVE_SOLDERING_PROFILEАнглийский

    • Вспомогательная информация

      PDFRev 1.08 октября 20098.8 KBSO-SOJ-REFLOWАнглийский

    Показать все

    Подождите, пока загружаются защищенные файлы.

    Знакомство с библиотекой Adafruit PCF8563 Real Time Clock (RTC) — документация Adafruit PCF8563 RTC Library 1.0

    Это отличные часы реального времени (RTC) с батарейным питанием, которые позволяют проект микроконтроллера для отслеживания времени, даже если он перепрограммирован, или если мощность потеряна. Идеально подходит для регистрации данных, построения часов, времени штамповки, таймеры и будильники и др.

    PCF8563 является простым и недорогим, но не высокоточным устройством. Он может потерять или выиграть несколько секунд в день. Для высокой точности, альтернатива с температурной компенсацией, пожалуйста, ознакомьтесь с Точные часы реального времени DS3231. Если вам нужен DS1307 из соображений совместимости, ознакомьтесь с нашими Прорыв DS1307 RTC.

    Этот драйвер зависит от регистра и шинное устройство библиотеки. Убедитесь, что они также доступны в файловой системе CircuitPython. Это легко сделать, загрузив пакет библиотеки и драйвера.

    В поддерживаемых системах GNU/Linux, таких как Raspberry Pi, вы можете установить драйвер локально из ПиПИ. Установить для текущего пользователя:

     pip3 установить adafruit-circuitpython-pcf8563
     

    Для общесистемной установки (это может потребоваться в некоторых случаях):

     sudo pip3 установить adafruit-circuitpython-pcf8563
     

    Для установки в виртуальной среде в текущем проекте:

     mkdir имя-проекта && cd имя-проекта
    python3 -m venv .venv
    источник .venv/bin/активировать
    pip3 установить adafruit-схемуpython-pcf8563
     

    Основы

    Конечно, вы должны импортировать библиотеку, чтобы использовать ее:

     импортный бизнес
    импортировать adafruit_pcf8563
    время импорта
     

    Все библиотеки Adafruit RTC принимают созданный и активный объект I2C. (с busio ) в качестве аргумента их конструктора. Путь к создание объекта I2C зависит от используемой платы. Для плат с маркировкой Контакты SCL и SDA, можно:

     из платы импортной *
     

    Теперь для инициализации шины I2C:

     i2c_bus = доска. I2C()
     

    После того, как вы создали объект интерфейса I2C, вы можете использовать его для создания экземпляра объект RTC:

     rtc = adafruit_pcf8563.PCF8563(i2c_bus)
     

    Дата и время

    Чтобы установить время, вам нужно установить datetime на объект time.struct_time :

     rtc.datetime = time.struct_time((2017,1,9,15,6,0,0,9,-1))
     

    После того, как RTC установлен, вы получаете время, читая datetime атрибут и получить доступ к стандартным атрибутам struct_time, таким как tm_year , tm_hour и tm_min .

     т = rtc.datetime
    печать (т)
    печать (t.tm_hour, t.tm_min)
     

    Аварийный сигнал

    Чтобы установить время, вам нужно установить будильник в кортеж с time.struct_time объект и строка, представляющая частоту, например «ежечасно»:

     rtc.alarm = (time.struct_time((2017,1,9,15,6,0,0,9,-1)), "ежедневно")
     

    После того, как RTC установлен, вы получаете статус тревоги, читая атрибут alarm_status . После того, как True, установите его обратно в False для сброса.

    , если rtc.alarm_status:
        Печать("Просыпайся!")
        rtc.alarm_status = Ложь
     
    Документацию по API

    для этой библиотеки можно найти в разделе Read the Docs.

    Для получения информации о документации по сборке библиотеки ознакомьтесь с этим руководством.

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

    Примеры

    • Демо

    Справочник по API

    • adafruit_pcf8563 — Модуль часов реального времени PCF8563
      • Замечания по реализации
    • PCF8563
      • PCF8563.сигнал тревоги
      • PCF8563.alarm_interrupt
      • PCF8563.alarm_status
      • PCF8563.datetime
      • PCF8563.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *