Таймер на ардуино с часами реального времени: Урок 39. Реле времени: управление устройствами по таймеру
|Содержание
Таймер на Ардуино с настройкой включения и выключения
Всем привет! Собрав таймер на Ардуино из этой инструкции, вы сможете контролировать включение и выключение ваших устройств в нужное вам время. Это могут быть ночные фонари, система орошения сада и т.д. Мы воспользуемся Ардуино, дисплеем и RTC 1307, отображающим и управляющим временем. Вы можете задать часы «ВКЛ» и «ВЫКЛ» при помощи 4 кнопок, что позволит вам изменять настройки микросхемы таймера.
Также вы научитесь создавать часы, базирующиеся на Ардуино. Я приложил схему из fritzing и видео, так что вы без проблем соберёте данное устройство.
Сначала посмотрите видео, чтобы понять, о чем идет речь, используйте его как руководство.
Шаг 1: Материалы
- Arduino Uno
- Модуль RTC 1307
- Дисплей 16X2
- Модуль реле 5V
- Подстроечный потенциометр 10K
- Резистор 1K
- Резисторы 10K x 4 штуки
- Кнопки x 4 штуки
- Макетная плата, джамперы.
Шаг 2: Устанавливаем часы
Следуйте схеме из Fritzing.
Соедините 5V и GND с Ардуино с соответствующими контактами (Красный – 5V, синий – земля)
Дисплей к Ардуино:
- VSS к GND
- VDD к 5V
- VO к центру потенциометра
- RS к пину 2
- RW к GND
- EN или E к пину 3
- D0 NC
- D1 NC
- D2 NC
- D3 NC
- D4 к пину 4
- D5 к пину 5
- D6 к пину 6
- D7 к пину 7
- A к 5V
- K к GND через резистор 1K
- Остальные контакты потенциометра на 5V и GND
RTC к Arduino:
- SDA к пину 4
- SCL у пину 5
- GND и 5V
Шаг 3: Устанавливаем время
Пришло время настроить часы. Запустите код «Set time RTC». Этот скетч возьмёт данные о дате и времени из вашего компьютера прямо во время компиляции кода и использует их для программирования RTC. Если у вас на компьютере неправильные установки, то поправьте их перед запуском программы. Затем нажмите кнопку Upload, чтобы немедленно загрузить откомпилированный код.
Внимание: Если вы скомпилируете код, а загрузите его позже, то данные о времени устареют.
Далее откройте окно Serial Monitor, чтобы увидеть, что время было установлено.
Файлы
- Set_Time_RTC.ino
Шаг 4: Часы
После того, как установите время, откройте и загрузите скетч «Clock with RTC LCD». Потенциометр в схеме нужен для настройки контрастности дисплея, покрутите его, чтобы чётко видеть символы.
Файлы
- Clock_with_RTC_LCD.ino
Шаг 5: Устанавливаем таймер
Теперь мы добавим кнопки и реле. Опять же, следуйте схеме Fritzing.
Пины 8,9, 10 и 11 соединены с GND через резисторы 10K. Когда вы нажмете на кнопку, то на контакты пойдёт напряжение 5V.
Реле соединяется с пином 12. С помощью него можно управлять вашими устройствами, но будьте осторожны с максимальной нагрузкой на реле!
Шаг 6: Таймер
Откройте и загрузите код «Timer with on off set point». Нажимайте кнопки, чтобы сместить время назад или вперёд. Если электронный таймер будет в пределах настроенного интервала, то он начнет работать сразу же. Если же он не попадает в нужный интервал, то будет ждать час «ВКЛ».
Этот код имеет интересные функции, которые можно использовать в других проектах. Я постарался отделить каждую функцию, чтобы всё было максимально понятным.
Файлы
- Timer_with_on_off_set_point.ino
- Set_Time_RTC.ino
- RTClib-master.zip
Весь код написан мной, кроме настройки времени на RTC и дата-логгера Adafruit. Надеюсь, эта инструкция как собрать простой таймер своими руками была для вас полезна!
Оглавление
- Шаг 1: Материалы
- Шаг 2: Устанавливаем часы
- Шаг 3: Устанавливаем время
- Шаг 4: Часы
- Шаг 5: Устанавливаем таймер
- Шаг 6: Таймер
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. Данный объект позволяет узнать год, месяц, день, час, минуту и секунду.
Реклама
AceTime | Классы даты, времени, часового пояса для Arduino, поддерживающие полную базу данных IANA TZ для преобразования секунд эпохи в компоненты даты и времени в разных часовых поясах. |
Ацетаймклокк | Классы часов для Arduino, которые обеспечивают автоматически увеличивающийся счетчик секунд с известной эпохи, которые можно синхронизировать из внешних источников, таких как сервер NTP, микросхема RTC DS3231 или микросхема RTC STM32. |
Библиотека Adafruit Si5351 | Драйвер для Adafruit Si5351 Clockgen Breakout |
AnalogRTCLib | Библиотека для часов реального времени Analog Devices. |
Инструменты анимации | Упрощает создание поведения для сервоприводов и светодиодов |
Датчики Arduino | Библиотека библиотек датчиков |
Ардуинопоток | Простой способ запуска потоков на Arduino |
ArduinoThreadRunOnce | Запустите ArduinoThread только один раз |
ардуино-таймер | Библиотека таймеров для задержки вызовов функций |
Arduino-таймер-API | Простой кроссплатформенный API для многозадачности обработчиков прерываний по таймеру |
Артрон DS1338 | Библиотека Arduino RTC DS1338. |
Асинхронная задержка | Простая библиотека абстракций, реализующая задержки и тайм-ауты. |
Асинхронный таймер | JavaScript-подобные асинхронные функции синхронизации (setTimeout, setInterval). |
Асинхронные операции | Библиотека для точного отслеживания длинных задач без блокировки основного потока |
Аудиочастотомер | Получить основной тон звукового сигнала |
avdweb_SAMDtimer | Библиотека таймеров для SAMD21 и Arduino Zero |
avdweb_VirtualDelay | Позволяет использовать (несколько) задержек без блокировки выполнения кода. Ардуино Уно и Зеро. |
Стандартная библиотека времени AVR C | Функции реального времени для Goldilocks ATmega1284p и ATmega2560 |
авртос | RTOS для микроконтроллеров AVR Arduino (Uno Mega) |
ОСРВ Azure ThreadX | Библиотека Azure RTOS ThreadX для Arduino |
БлокНе | BlockNot дает вам простые неблокирующие таймеры. |
bluemicro_engine | Движок для реализации цикла, чтобы отделить ход времени от пользовательского ввода и скорости процессора. |
время сборки | Библиотека поможет вам получить время компиляции |
CallMyFunction | Библиотека Arduino для вызова функции с ограничениями по времени |
CallbackHelper | Инструмент для создания std::function, таких как API-интерфейсы обратного вызова, без огромного объема памяти, необходимого std::function |
Хроно | Библиотека хронометра/секундомера, которая подсчитывает время, прошедшее с момента запуска. |
Чистая ОСРВ | Делает использование FreeRTOS на ESP32 намного проще и безопаснее. |
CMMC Easy | CMMC Easy — библиотека для управления временем без функции задержки |
Совместная задача | Портативная библиотека C++ для совместной многозадачности, такая как Arduino Scheduler на ESP8266/ESP32, AVR, Linux, Windows |
Кооптредс | Облегченная, независимая от платформы, многофункциональная библиотека совместных потоков |
CronAlarms | Запланируйте появление сигналов тревоги в определенное время с помощью синтаксиса crontab. |
ДВремя | Дата плюс служба обхода времени |
DCF77 | Считайте и расшифруйте атомное время, передаваемое радиостанцией DCF77. |
dcf77_xtal | DCF77 с отличной помехоустойчивостью. |
Разоблачитель | Библиотека Debounce для Arduino |
ЗадержкаExec | Библиотека для отсрочки исполнения |
DFRobot_DS1307 | Определить инфраструктуру класса DFRobot_DS1307 (SKU: DFR0151). |
DFRobot_DS323X | Библиотека драйверов DS323X. |
DMOscillator | Библиотека, упрощающая управление включением/выключением вывода с фиксированной или динамической скоростью. |
DMTimer | Библиотека, упрощающая неблокирующие рекуррентные вызовы. |
Эмулятор DS1307 | Эмулятор DS1307, который превращает Arduino в чип RTC, фактически не имея физического RTC. |
ДС1307РТК | Использование микросхемы часов реального времени DS1307 с библиотекой времени |
DS1307newAlarms | Добавление сигналов тревоги по дням недели к функциям RTC DS1307 |
ДС3231 | Библиотека Arduino для часов реального времени (RTC) DS3231 |
DS3231_RTC | Библиотека Arduino для часов реального времени (RTC) DS3231 |
DS3232RTC | Библиотека Arduino для интегрированных часов реального времени Maxim DS3232 и DS3231. |
летнее время реального времени | Библиотека Arduino для автоматической настройки времени RTC для перехода на летнее время (DST) |
Таймер | полностью реализована для Arduino DUE |
EasyNTPClient | Библиотека для чтения времени с серверов Network Time Protocol (NTP). |
EasyTask | Легкая, но мощная реализация диспетчера задач. |
истек Миллис | Упрощает кодирование адаптивных скетчей. |
ESPPerfectTime | SNTP, обеспечивающая более точное время для ESP8266/ESP32. |
Время ESP32 | Установка и получение внутреннего времени RTC на платах ESP32. |
Каждые | Неблокирующие замены для delay(). |
Каждый таймер | Библиотека, обеспечивающая возможность вызова функции через определенные промежутки времени. |
каждый раз | Простая в использовании библиотека для периодического выполнения кода. |
Исполнительный | Выполнение подпрограмм по указанному расписанию |
ezTime | ezTime — произносится как «Easy Time» — очень простая в использовании библиотека времени и даты Arduino, которая обеспечивает поиск времени в сети NTP, расширенную поддержку часовых поясов, форматированные строки времени и даты, пользовательские события, миллисекундную точность и многое другое. |
FaBo 215 RTC PCF2129 | Библиотека для FaBo RTC I2C Brick |
FC0005748911 | Firechip — библиотека Micro Crystal RV-8263 Arduino, модуль часов реального времени с шиной I2C |
Пятнадцатый шаг | Библиотека MIDI-секвенсора общего назначения для Arduino. |
Пожарный таймер | Простая и неблокирующая библиотека для определения времени выполнения процессов |
flex_DST | Библиотека для наблюдения за летним временем в соответствии с заданными пользователем параметрами. |
FreeRTOS | Операционная система реального времени FreeRTOS для AVR (Uno, Nano, Leonardo, Mega). |
Счетчик периодов | Интеллектуальная библиотека с обширными функциями для подсчета (несколько) частот. Для Ардуино Уно и Зеро. |
Частотный таймер2 | Генерировать частоту с помощью Timer2 |
Легкая и простая в использовании оболочка для библиотеки Arduino_FreeRTOS_Library. | |
Geekble_LieDetector | Библиотека для Geekble LieDetector |
Geekble_Oscillator | Генерация импульсов от 31,25 кГц до 8 МГц |
Роща — RTC DS1307 | Библиотека Arduino для управления Grove — RTC DS1307. |
ГиверНТП | Библиотека для асинхронного получения точного времени с сервера NTP |
GyverOS | Простой диспетчер задач для Arduino |
ГиверТаймер | Простой таймер с режимами периода/тайм-аута на миллисекундах |
Гивертаймеры | Библиотека для управления аппаратными таймерами на ATmega328p и ATmega2560 |
HaCTimers | Таймер Arduino, управляемый событиями. |
HeliOS | Проект встроенной операционной системы с открытым исходным кодом, созданный сообществом. |
IntervalTimerEx | IntervalTimerEx является подклассом Teensy IntervalTimer, чтобы разрешить различные вызываемые объекты в качестве обратных вызовов таймера. |
JC_Sunrise | Arduino для расчета времени восхода и захода солнца. |
jm_Scheduler | Совместная библиотека планировщика для Arduino. |
Джоббер | имитация многопоточности для Arduino & Co. |
леОС | Простой планировщик, выполняющий небольшие задачи в IRS |
леОС2 | Простой планировщик на основе сторожевого таймера, выполняющий небольшие задачи в IRS |
ЛедТаск | Библиотека Arduino демонстрирует мощь невытесняющей многозадачности. |
петлитель | Прото-планировщик, основанный на использовании millis() |
M5_RTC_Module | Библиотека для использования модуля RTC от iotec для стека M5. |
Макс31328РТК | Библиотека для часов реального времени Max31328. |
MCP79412RTC | для часов/календаря реального времени Microchip MCP79411/12. |
МикроБьют | Стандартная библиотека MicroBeaut для Arduino. |
MicroNMEA | Компактная библиотека Arduino для разбора предложений NMEA. |
МиллиСтоппер | Удобная и легкая пробка |
Миллистаймер | Библиотека таймеров для работы с millis(). |
MillisTimerLib | Библиотека для использования функции Миллиса в качестве планировщика задач. |
msTask | Использовать аппаратный таймер 1 для запуска задач в установленное время |
Мстаймер2 | Запуск функции прерывания с использованием Timer2 |
мультитаймер | для простого использования задержек включения/выключения и таймеров циклов с неблокирующими функциями. |
Мой будильник | Библиотека, которая управляет задачами на основе тревог и таймеров. |
Моя задержка | , которая предоставляет неблокирующий повторяющийся таймер с функцией обратного вызова. |
NТимер | Библиотека Narwhalsss360 NTimer для синхронизированных событий и таймер производительности. |
Неотимер | «Мощный неблокирующий таймер» |
Библиотека NGLedFlasher | Библиотека Arduino для мигания более одного светодиода |
Без задержки | Arduino для использования функции Millis для неблокирующих задержек. |
NodeRedTime | Получить временную метку эпохи Unix из потока Node-Red. |
Время NTP | NTPtime, UNIXtime и TimeFunc дают вам полный контроль и больше возможностей для управления временем. |
НТП | Библиотека NTP |
НТПКлиент | NTPClient для подключения к серверу времени |
NTPClientLib | Клиентская библиотека NTP |
Простой таймер Nusabot | Простая библиотека для запуска действий по времени. |
PagonGameDev GameLoop | «Библиотека для создания игр с GameLoop» |
PCF8523 | Библиотека Arduino для часов реального времени PCF8523 |
Таймер опроса | Библиотека Arduino для гибкого управления синхронизацией и событиями с помощью опроса |
точный_sntp | Эта библиотека является реализацией простого протокола сетевого времени (SNTPv4) для платформы arduino, обеспечивающей точность до доли секунды. |
Планировщик процессов | Многозадачная библиотека ООП |
ptScheduler | Библиотека синхронизации Arduino для написания неблокирующих периодических задач без использования процедур задержки или миллисекунд. |
PWMFreak | Настраивает частоту ШИМ на контакте |
RBD_Таймер | Управление многими событиями по времени. |
Таймер рифов | Неблокирующий планировщик, основанный на millis(). |
Ракетный крик RTCAVRZero | Минималистичная реализация RTC (счетчик реального времени) для MCU MegaAVR серии 0. |
RP2040_RTC | Эта библиотека позволяет использовать RTC с плат на базе RP2040, таких как Nano_RP2040_Connect, RASPBERRY_PI_PICO |
RTClib | Вилка фантастической библиотеки RTC от Jeelab |
Время реального времени | Библиотека, совместимая со «Standard C Runtime», для взаимодействия с модулями часов реального времени DS1307 и DS3231. |
РТКх | Библиотека для доступа к часам реального времени DS1307, DS1337/8, MCP7941x и PCF85263. |
RT-резьба | Портирование операционной системы реального времени для плат Arduino SAM и SAMD |
Часы реального времени | Библиотека для RTC на базе I2C (DS1307, DS3231, PCF8563). |
RTCCounter | Обеспечивает использование периферийного устройства RTC в режиме 32-битного счетчика. Только для плат Arduino SAMD21. |
RTCDue | Используйте для RTC внутри SAM3X8E от Arduino DUE |
RTC RV-3028-C7 Библиотека Arduino | Библиотека для управления чрезвычайно точными часами реального времени RV-3028-C7 с чрезвычайно низким энергопотреблением |
RTTimer | Библиотека Arduino для простого выполнения запланированных задач. |
RTCZero | Позволяет использовать функции RTC. Только для Arduino Zero, MKRZero и MKR1000. |
Rtc_Pcf8563 | Библиотека, которая взаимодействует с микросхемой часов реального времени Phillips PCF8563. |
RTC_RX8025T | Библиотека Arduino для часов реального времени RX8025T (RTC) |
RTCDS1307 | Библиотека для rtc 1307 |
RTL8720_RTC | Эта библиотека позволяет использовать RTC с плат на базе RTL8720, таких как RTL8720DN, RTL8722DM, RTL8722CSM. |
РВ-1805-С3 | Библиотека для модуля Micro Crystal RV-1805-C3 с чрезвычайно низким энергопотреблением RTC. |
РВ-3028-C7 | Библиотека для модуля Micro Crystal RV-3028-C7 с чрезвычайно низким энергопотреблением RTC. |
РВ3028 | Базовая библиотека для RV-3028-C7 RTC |
RV8803Tiny | Библиотека для управления чрезвычайно точными часами реального времени с чрезвычайно низким энергопотреблением RV8803 из новой серии ATTINY, работающих на MegaTinyCore. |
RX8025 | Чип управления RX8025 или солнечный календарь с лунным календарем. |
Песочный таймер | Простой в использовании и легкий таймер |
Диспетчер сцен | кооперативный многосценовый менеджер для Arduino |
Таблица расписания | Эта библиотека позволяет планировать несколько действий во времени. |
ПланировщикESP8266 | Библиотека для создания временных расписаний. |
Таймер сек | Простой счетчик секунд |
Seeed Arduino RTC | Библиотека RTC для SAMD21 и SAMD51. |
SeqTimer | Небольшой фрагмент последовательного класса Timer (не изменяет аппаратные таймеры) |
простая настройка DST | Функция автоматической настройки летнего времени для Arduino/ESP8266 |
SimpleTicker | Библиотека для создания тикеров, которые будут уведомлять пользователя об истечении заданного периода. Заменяет задержку() и позволяет пользователям писать неблокирующий код. |
Простой таймаут | Минимальная, готовая к производству библиотека времени ожидания для Arduino. |
Простой таймер | Простой таймер Arduino. |
Простой таймер | это простой класс, который вы можете использовать для управления временем и задачами |
ПростоАтомик | Библиотека для создания переносимых атомарных блоков в вашей программе |
слабый_Fade | исчезновение временного значения. |
Smart_Duty_Cycling | Автоматическая генерация рабочего цикла для вашей программы Arduino. |
Мягкий таймер | SoftTimer — это легкое псевдомногозадачное решение для Arduino. |
Программные таймеры | Библиотека SoftTimers для Arduino представляет собой набор программных таймеров. Библиотека нацелена на значительное упрощение многозадачности. |
Часы SparkFun 5P49V60 Библиотека Arduino | Библиотека, обеспечивающая все функции тактового генератора SparkFun 5P49V60. |
Библиотека SparkFun Qwiic RTC RV1805 Arduino | Библиотека для управления чрезвычайно точными часами реального времени RV-1805 с чрезвычайно низким энергопотреблением |
таймер отжима | Универсальный таймер с разрешением 1 миллисекунда, поддерживающий принципы ООП. |
SSVLongTime | Класс Singleton для возврата времени безотказной работы в секундах. |
ССВтаймер | Еще один неблокирующий класс таймера, основанный на функции millis(). |
SSVNTPCoreClass | Класс Singleton для получения реального времени по NTP. На основе основной функции esp8266 configTime(). Поддерживает автоматическое летнее время для каждого часового пояса. |
STM32F1_RTC | Позволяет использовать функции RTC плат на базе STM32F1xx с использованием внешнего низкоскоростного генератора. |
STM32duino FreeRTOS | Операционная система реального времени реализована для STM32 |
STM32duino РТК | Позволяет использовать функции RTC плат на базе STM32. |
Секундомер_RT | Библиотека Arduino, реализующая секундомер. |
Стробер | Простой в использовании и легкий плеер со светодиодной подсветкой |
Switch3_lib | Клон библиотеки Switch_lib (O.Goma) для переключения цифровых выводов с таймерами, добавление миллисекунд |
Switch_lib | Библиотека для переключения цифровых выводов с таймерами, temporization и периодами |
TCone | Библиотека MicroBeaut-TCone с таймером и счетчиком One. |
Задача Макуны | Библиотека, упрощающая создание сложных многозадачных проектов. |
Таск-жокей | Простой и легкий совместный диспетчер задач для Arduino, ESP32, STM32 и подобных систем |
Диспетчер задач | кооперативный многозадачный менеджер для Arduino |
Планировщик задач | Совместная многозадачность для Arduino, ESPx, STM32 и других микроконтроллеров. |
Таскер | Избавьтесь от вызовов delay(), вместо этого запланируйте задачи/функции. |
Таскраннер | Позволяет Arduino запускать планировщик, который может запускать функции с определенной частотой |
TeensyTimerTool | Общий интерфейс для таймеров Teensy |
ThreadedTimer | Потоковая библиотека синхронизации для mbed Arduinos |
ТикТво | Библиотека для создания тикеров, которые могут вызывать повторяющиеся функции. Заменяет delay() неблокирующими функциями. Рекомендуется для плат ESP и Arduino с mbed сзади. |
Тикер | Библиотека для создания тикеров, которые могут вызывать повторяющиеся функции. Заменяет delay() неблокирующими функциями. |
Время | Функции хронометража для Arduino |
Сигналы времени | Выполнять задачи в определенное время или через определенные промежутки времени. |
Прерывание времени | Разрешает прерывания таймера на различных платформах. |
Время ожидания | Библиотека Arduino, которая создает обратные вызовы таймера. |
TimeProfiler | Профилировщик времени для Arduino |
TimedState | Библиотека Arduino, предоставляющая утилиты для управления состоянием программы во времени без задержки(). |
Таймер | Библиотека для создания старт/стоп таймеров |
TimerEvent | TimerEvent — это неблокирующая альтернатива функции delay(). |
Таймер Fa | Программный таймер |
ТаймерПять | Использовать аппаратный таймер 5 для более точного управления ШИМ и/или запуска функции периодического прерывания |
Таймер четыре | Использовать аппаратный таймер 4 для более точного управления ШИМ и/или запуска функции периодического прерывания |
TimerFour32u4 | Разрешить использование 10-битного аппаратного высокоскоростного таймера 4 на ATMega16u4 и ATMega32u4. |
ТаймерMs | Расширенный программный таймер (на основе миллисекунд()) |
TimerOne | Использовать аппаратный таймер 1 для более точного управления ШИМ и/или запуска функции периодического прерывания |
Таймер Три | Использовать аппаратный таймер 3 для более точного управления ШИМ и/или запуска функции периодического прерывания |
Таймеры | Библиотека облегченных таймеров |
ТаймерыOneForAll | В полной мере используйте все аппаратные таймеры на плате Arduino. 充分利用你开发板上所有的硬件计时器 |
Таймерсапи | Библиотека для таймеров, обратного отсчета и счетчиков. |
Часовой пояс | Arduino для облегчения преобразования часовых поясов и автоматической настройки летнего (летнего) времени. |
TinyRTCLib | Миниатюрная версия RTCLib для использования с TinyWireM |
крошечныйTimeR | Легко реализовать прерывания таймера. |
Твикли | Причудливая библиотека, знакомая с Wiring и мощными процессами в реальном времени, расширенными функциями выводов и бесплатным отказом. |
УИКАЛ | Библиотека для анализа формата файла iCalendar. |
uTimerLib | Миниатюрная и совместимая с разными устройствами библиотека таймеров |
uUnixDate | Крошечная и упрощенная библиотека для преобразования в метки времени UNIX и обратно |
Универсальный таймер | Простой в использовании, многофункциональный и неблокирующий таймер. |
UnixTime | Отметка времени Unix для преобразования времени даты и наоборот |
Время работы | Получить время безотказной работы устройства в годах, месяцах, днях, часах, минутах, секундах, миллисекундах, общем количестве дней и общем количестве секунд. |
Библиотека времени безотказной работы | Библиотека Uptime для плат Arduino и совместимых систем |
VariableTimedAction | Библиотека для создания синхронизированных событий/действий. |
вн_лунар | Библиотека Arduino для преобразования григорианского календаря во вьетнамский лунный. |
Сторожевая собака | Функции сторожевого таймера |
Еженедельный будильник | Таймер рабочего дня (термостат как планировщик) |
электропроводка-таймер | с разрешением 1 миллисекунда, основанный на времени безотказной работы системы (например, Arduino: функция millis() или STM32: функция HAL_GetTick()), поддерживающий принципы ООП. |
Еще одна библиотека отладки Arduino | Асинхронная библиотека Arduino для устранения дребезга |
ZeroTC45 | Позволяет использовать счетчики TC4 и TC5 ARM Cortex-M0 для периодических прерываний. |
ТАЙМЕР С ИСПОЛЬЗОВАНИЕМ ARDUINO И RTC (ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ)
ПОСТАНОВКА ЗАДАЧИ:
Лаборатория тканевых культур ашрама Вигьян выращивает табак. Для правильного роста растения ему необходимо 8 часов полной темноты и 16 часов света.
ЦЕЛЬ:
- Таймер, который ВКЛ/ВЫКЛ на необходимое время.
- Для уменьшения ненужных потерь энергии.
БЛОК-СХЕМА:
блок-схема
ВВЕДЕНИЕ:
RTC (ЧАСЫ РЕАЛЬНОГО ВРЕМЕНИ):
модуль RTC
Arduino Un o:
модуль RTC
Arduino UNO — это плата микроконтроллера, основанная на ATmega328P . Он имеет 14 цифровых входных/выходных контактов (из которых 6 могут использоваться как выходы ШИМ), 6 аналоговых входов, керамический резонатор 16 МГц, USB-соединение, разъем питания, разъем ICSP и кнопку сброса. Он содержит все необходимое для поддержки микроконтроллера; просто подключите его к компьютеру с помощью USB-кабеля или включите адаптер переменного тока в постоянный или аккумулятор, чтобы начать работу. Вы можете возиться со своим UNO, не слишком беспокоясь о том, что сделаете что-то не так, в худшем случае вы можете заменить чип за несколько долларов и начать заново
- Таймер включения/выключения устройства на базе RTC. Он включает и выключает устройство в требуемое время.
- выключит устройство в выбранное время и снова в заданное время включит устройство.
- Модуль RTC имеет четырехпроводной интерфейс VCC, GND, SDA и SCL. VCC и GND подключены к плате Arduino 5 вольт и земле соответственно.
- Контакты SCL и SDA подключены к контактам Arduino SCL и SDA. Arduino связывается с модулем RTC.
- 12-вольтовое реле подключено к цифровому контакту Arduino № 11.
ЭКСПЛУАТАЦИЯ:
когда питание подается в цепь через адаптер, первоначально реле и устройство выключены. первое установленное время включения и выключения устройства.
Arduino считывает текущее время с модулей RTC.
постоянно проверяет, совпадают ли текущее и установленное время. когда они совпадают, он выключает реле и, следовательно, устройство, посылая низкий логический уровень на цифровой контакт (11). затем свет выключается
, когда текущее время и установленное время не совпадают. когда они не совпадают, он включает реле и посылает высокий уровень логики на цифровой контакт (11).