Опубликовано: 02.09.2017 21:00
Автор: genaonyx
Приветствую народ. Сегодня хотелось бы поделиться с вами своей библиотекой TimingRelay.
Библиотека TimingRelay превращает обычное реле, подключенное к Arduino, в реле времени. В данной библиотеке вы можете задать как время задержки включения, так и время задержки выключения или и то и другое одновременно. Библиотека использует минимум ресурсов Arduino, работает в асинхронном (не блокирующем (без delay)) режиме и позволяет удобно и просто управлять им.
Как и любую другую библиотеку ее в первую очередь необходимо скачать и установить.
Далее в своем скетче библиотеку необходимо инициализировать прописав в самом начале:
#include "TimingRelay.h"
или перейти по меню "Скетч" - "Подключить библиотеку" - "TimingRelay".
После чего необходимо вызвать ее конструктор:
TimingRelay relay(_pin, _onDelay, _offDelay);
После того как вы создали класс и связали его с одним из портов Arduino, в секции loop вашего скетча необходимо вызвать одноименную функцию библиотеки.
void loop()
{
relay.loop();
}
Для управления реле в библиотеке добавлены четыре простые функции:
В данном примере по нажатию на кнопку загорится светодиод с задержкой в две секунды и будет гореть еще пять секунд после того как вы отпустите кнопку.
// Подключаем библиотеку TimingRelay.
#include "TimingRelay.h"
// Константа, содержащая порт кнопки.
const int buttonPin = 2;
// Константа, содержащая порт реле.
const int relayPin = 13;
// Переменная, содержащая состояние кнопки.
int buttonState = 0;
// Создаем реле времени (Порт, Задержка включения, Задержка выключения).
TimingRelay relay(relayPin, 2000, 5000);
void setup()
{
// Инициализируем порт кнопки как вход.
pinMode(buttonPin, INPUT);
}
void loop()
{
// Считываем статус кнопки.
buttonState = digitalRead(buttonPin);
// Передаем статус реле.
relay.set(buttonState);
// Обрабатываем (обязательно).
relay.loop();
}
Если вы хотите управлять реле по нажатию на кнопку (как в примере выше), нет необходимости заморачиваться с антидребезгом. Для этого просто выставите задержку включения и выключения от 10 и более миллисекунд.
Скачать библиотеку TimingRelay (1.1).
Если у Вас есть опыт в работе с Arduino и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.