Site Loader

Содержание

Real Time Clock (RTC)/Часы реального времени

Статья проплачена кошками — всемирно известными производителями котят.

Если статья вам понравилась, то можете поддержать проект.

Модуль DS1307
Библиотека RTClib

Иногда требуется отслеживать определённое время наступления события. Модуль часов реального времени с литиевой батарей позволяет хранить текущую дату, независимо от наличия питания на самом устройстве. Наиболее распространённые модули RTC: DS1302 (совсем не точные), DS1307 (не очень точные), DS3231 (точные), DS3232 (точные) и др.

Модуль часов представляет собой небольшую плату, которая содержит микросхему (DS1307, DS1302, DS3231), а также сам механизм установки батарейки питания. Часы ведут отсчёт в удобных для человека единицах – минуты, часы, дни недели и другие, в отличие от обычных счётчиков и тактовых генераторов, которые считывают «тики». В Arduino имеется функция millis(), которая умеет считывать различные временные интервалы, но основным недостатком функции является сбрасывание в ноль при включении таймера.

С её помощью можно считать только время, а установить дату или день недели невозможно. Модули часов реального времени позволяют решить эту задачу.

Электронная схема модуля включает в себя микросхему, источник питания, кварцевый резонатор и резисторы. Кварцевый резонатор работает на частоте 32768 Гц, которая является удобной для обычного двоичного счетчика. В схеме DS3231 имеется встроенный кварц и термостабилизация, которые позволяют получить значения высокой точности.

Как правило, все модули работают по протоколу I2C.

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

Модуль DS1307 собран на основе микросхемы DS1307ZN, питание поступает от литиевой батарейки для реализации автономной работы в течение длительного промежутка времени. Батарея на плате крепится на обратной стороне. На модуле имеется микросхема AT24C32 – это энергонезависимая память EEPROM на 32 Кбайт. Обе микросхемы связаны между собой шиной I2C. DS1307 обладает низким энергопотреблением и содержит часы и календарь по 2100 год.

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

  • Питание – 5В
  • Диапазон рабочих температур от -40°С до 85°С
  • 56 байт памяти
  • Литиевая батарейка LIR2032
  • 12-ти и 24-х часовые режимы
  • Поддержка интерфейса I2C

Взаимодействие с другими устройствами и обмен с ними информацией производится с помощью интерфейса I2C с контактов SCL и SDA. В схеме установлены резисторы, которые позволяют обеспечивать необходимый уровень сигнала. Также на плате имеется специальное место для крепления датчика температуры DS18B20.Контакты распределены в 2 группы, шаг 2,54 мм.

В первой группе контактов находятся следующие выводы:

  • DS – вывод для датчика DS18B20
  • SCL – линия тактирования
  • SDA – линия данных
  • VCC – 5В
  • GND — земля

Во второй группе контактов находятся:

  • SQ – 1 МГц
  • DS
  • SCL
  • SDA
  • VCC
  • GND
  • BAT – вход для литиевой батареи

Чтобы подключить модуль к Arduino Uno, используются 4 вывода.

DS1307 | Arduino 
-----------------
   GND | GND 
   VCC | 5V 
   SCL | A5
   SDA | A4
    DS | N/A

Платы Leonardo, MEGA, ADK, DUE используют другие схемы. Ищите в интернете.

Библиотека RTClib

Для работы с модулем реального времени существует множество библиотек. Рассмотрим библиотеку от Adafruit RTClib.

Установите её через менеджер библиотек. После установки запустите один из готовых примеров из библиотеки ds1307. В Serial Monitor установите скорость 57600. Вы увидите дату на сегодняшний день.

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

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

Реклама

DS3231 Высокоточные часы реального времени Real time clock I2C время

> МОДУЛИ>DS3231 Высокоточные часы реального времени Real time clock I2C время ARDUINO Raspberry Pi

Увеличить

Артикул DS3231-PI

Сверхточные RTC со встроенными I2C интерфейсом, TCXO и резонатором DS3231 AT24C32 IIC High Precision Real Time Clock Module For Arduino

совместимо с DS1307

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

комплектация: модуль DS3231  1шт

Подробнее


    « Продолжить покупки

Описание

распиновка модуля

1 + vcc

2

3  NC не используется

4 — gnd

Отличительные особенности:

питание 2. 3-5.5в
Точность ±2 ppm в диапазоне температур от 0°C до +40°C
Точность ±3.5 ppm в диапазоне температур от-40°C до +85°C
Вход для подключения автономного источника питания, позволяющего обеспечить непрерывную работу
Рабочий температурный диапазон

коммерческий: от 0°C до +70°C
индустриальный: -от 40°C до +85°C


Низкое потребление
Часы реального времени, отсчитывающие секунды, минуты, часы, дни недели, дни месяца, месяц и год с коррекцией високосного года вплоть до 2100

Два ежедневных будильника
Выход прямоугольного сигнала с программируемой частотой
Быстродействующие (400 кГц) I2C интерфейс
3.3 В питание
Цифровой температурный датчик с точностью измерения ±3°C
Регистр, содержащий данные о необходимой подстройке
Вход/выход сброса nonRST

Применение:
Серверы
Электронные электросчетчики
Телематическая аппаратура
GPS системы
http://www.gaw.ru/html.cgi/txt/ic/Maxim/timing/rtc/DS3231.htm



30 других товаров в этой категории:

  • Цифровой Lilytech ZL-7801C термостат влажность.
    ..
  • модуль mq-7 датчик угарного газа

  • модуль mq-135 Датчик углекислого газа MQ135

    89,00 грн

  • Цифровой Lilytech ZL-7801D термостат влажность…

  • модуль поворотный потенциометр 10 Ком…

    46,00 грн

  • модуль зуммер buzzer module 3В 5В ROBOTDYN

    25,00 грн

  • Модуль подключения SD + MicroSD Card module…

    40,00 грн

  • кнопка Модуль button Module ROBOTDYN ЧЕРНЫЙ BLACK

    27,10 грн

  • кнопка Модуль button Module ROBOTDYN СИНИЙ

    27,20 грн

  • кнопка Модуль button Module ROBOTDYN ЗЕЛЕНЫЙ.
    ..

    27,30 грн

  • кнопка Модуль button Module ROBOTDYN ЖЕЛТЫЙ…

    27,40 грн

  • Датчик SHr03A Цифровой контроллер Lilytech…

    799,00 грн

  • Таймер цифровой, цифровая индикация времени…

  • 4 в 1 многоцелевые часы температура внутри и…

  • 4 в 1 многоцелевые часы температура внутри и…

  • Индикатор заряда батареи 8-70В 12В 24В 36В 48В…

    336,00 грн -20% 420,00 грн

  • Термостат -55 ~ +120 °C терморегулятор W3230.
    ..
  • Таймер цифровой, цифровая индикация времени…

  • Термостат -55 ~ +120 °C терморегулятор W3230…

  • Цифровой Lilytech ZL-7918A термостат влажность…

    1 999,00 грн

  • таймер недельный CN101a sinotimer 12В 16А реле…

  • таймер недельный CN101S интервал 1 СЕКУНДА…

  • радио передатчик TX118SA-4 433 MГц RF 4 канала…

    75,00 грн

  • программируемый обучаемый RF приемник RX480E-4…

    83,25 грн

  • Термостат -50 ~ +120 °C 12В терморегулятор.
    ..

    353,40 грн -7% 380,00 грн

  • мини программируемый обучаемый RF приемник 433…

    145,00 грн

  • мини программируемый обучаемый RF приемник 433…

    295,30 грн

  • мини программируемый обучаемый RF приемник 433…

    279,00 грн

  • таймер недельный CN101S интервал 1 СЕКУНДА…

  • Термостат -50 ~ +110 °C 220В терморегулятор…

    220,00 грн

Покупатели этого товара так же приобрели:

Ардуино | Датчик расстояния Adafruit VL53L4CX

Ардуино

Сохранить Подписаться

Пожалуйста, войдите, чтобы подписаться на это руководство.

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

Использование VL53L4CX с Arduino включает в себя подключение датчика к Arduino-совместимому микроконтроллеру, установку библиотеки STM32duino VL53L4CX и выполнение предоставленного примера кода.

Обратите внимание, что драйвер Arduino для этого чипа не поддерживает платы с «малой памятью», такие как ATmega328 — вам понадобится чип SAMD21, SAMD51, ESP и т. д. с 50 КБ доступной флэш-памяти!

Проводка

Проводите, как показано на рисунке, для платы 5 В . Если вы используете плату 3V , например Adafruit Feather, подключите контакт 3V платы к VL53L4CX VIN .

Вот устройство Adafruit Metro Express, подключенное к VL53L4CX с помощью разъема STEMMA QT:

  • Плата 5В  к датчику VIN (красный провод)
  • Плата GND  к датчику   GND (черный провод)
  • Плата SCL  – датчик   SCL (желтый провод)
  • Плата SDA  к  датчик   SDA (синий провод)

Вот устройство Adafruit Metro Express, подключенное с использованием беспаечной макетной платы:

  • Плата 5В  к датчику VIN (красный провод)
  • Плата GND  к датчику   GND (черный провод)
  • Плата SCL  – датчик   SCL (желтый провод)
  • Плата SDA  к  датчик   SDA (синий провод)

Установка библиотеки

Вы можете установить VL53L4CX  библиотека для Arduino с помощью диспетчера библиотек в Arduino IDE.

Щелкните пункт меню Управление библиотеками … , найдите VL53L4CX и выберите библиотеку STM32duino VL53L4CX :

Загрузите пример

Откройте файл -> Примеры -> STM32duino VL53L4CX -> VL53L4CX_Sat_HelloWorld  и загрузите его в Arduino, подключенную к датчику.

Загрузите скетч на плату и откройте Serial Monitor ( Tools -> Serial Monitor ) на скорости 115200 бод. Вы должны увидеть распечатываемые значения датчика. Значения, прочитанные в примере:

  • Count — количество показаний, отправленных на последовательный монитор
  • Objs — Количество объектов перед датчиком
  • статус — Диапазон статуса датчика
  • D — Измерение расстояния объекта от датчика в миллиметрах
  • Сигнал — Скорость сигнала от датчика
  • Окружающий — Окружающий шум вокруг датчика

 Распиновка Скачано

Это руководство было впервые опубликовано 04 мая 2022 г. Оно было последним обновлено 04 мая 2022 г.

Эта страница (Arduino) последний раз обновлялась 29 апреля 2022 г.

Текстовый редактор на базе tinymce.

» Заблуждения об Arduino 2: Arduino «медленный»

Опубликовано от Cybergibbons

Во втором посте о неверных представлениях об Arduino существует распространенная идея о том, что Arduino «медленная». Чаще всего я слышу это в контексте реагирования на действия пользователя, работы с несколькими датчиками, использования светодиодных или ЖК-дисплеев или работы в рамках контура управления. Люди советуют более быстрые микроконтроллеры, такие как серия ARM Cortex.

Давайте рассмотрим основы здесь:

  • ATmega328P на платах Arduino работает на частоте 16 МГц — это 16 миллионов циклов в секунду.
  • Инструкции ATmega328P занимают от 1 до 3 тактов (за исключением инструкций, связанных с подпрограммами, которые занимают 4 или 5). Среднее значение находится где-то между 1 и 2 для большинства скомпилированных C-кодов.
  • Тогда мы можем сделать вывод, что ATmega328P может выполнять не менее 8 миллионов инструкций в секунду!
  • Трудно напрямую перевести эти инструкции в строки кода C. То, что выглядит простым в C, может потребовать десятков инструкций, а то, что выглядит сложным, можно сделать за одну.
  • Мы все еще можем сказать, что ATmega328P будет разрывать ваш код со скоростью узлов, намного быстрее, чем думает большинство людей.

Так почему люди говорят, что он медленный? Я бы назвал следующие причины:

  • Это 16 МГц, а ПК и телефоны большинства людей работают в диапазоне 1 ГГц, так что это не так уж много. Однако ATmega328P выполняет совсем другие задачи.
  • Он 8-битный, а большинство современных процессоров 32- или 64-битные. Это не имеет большого значения для проектов, использующих Arduino (но будет связано с моим следующим заблуждением!)
  • Частое использование delay() в коде Arduino. Delay() приводит к тому, что процессор просто перегружается — во время работы он не может делать ничего другого. Итак, если у вас есть 4 кнопки, которые предназначены для включения 4 соответствующих светодиодов на 2 секунды, система перестанет отвечать, если вы используете delay() для 2 секунд.
  • Частое использование Serial.print() в большинстве кодов для отладки или отчетов о состоянии. Arduino до 1.0 использует блокировку при отправке данных через последовательный порт. Это означало вывод строки из 80 символов в 9600 бит/с (по какой-то причине по умолчанию) заняло бы более 80 мс, в течение которых процессор больше ничего не мог делать! Даже теперь, когда он использует прерывания, вывод строк занимает много времени.
  • Slow digitalRead и digitalWrite — эти две функции на несколько порядков (~60 циклов) медленнее прямого доступа к порту (~1 цикл!). В результате тяжелый ввод-вывод может выглядеть медленным или скрытым.
  • Плохой код — Arduino исключительно прост в использовании без понимания какой-либо из основных концепций микроконтроллеров.

alexxlab

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

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