Почти универсальный таймер на Ардуино

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

Для его конструкции использовал:

  • Arduino Uno
  • LCD KeyPad shield
  • 2 Relay module (хватило бы модуля и с одним реле, но такого под рукой не было)

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

Выглядит все это вот так:

Минимум проводов, максимум удобства 🙂  при возможных ресурсах.

Под катом детали по работе таймера и мои мысли, куда его можно применить.

Так как цифровых кнопок для ввода времени у нас нет, а нажимать одну кнопку ОЧЕНЬ много раз, чтобы выставить например 10 минут 30 секунд, желания не было, был придуман следующий алгоритм, в режиме установки времени:

— на экране данный режим обозначается надписью — УСТАНОВКА

— кнопками ВЛЕВО — ВПРАВО ( LEFT — RIGHT ) перемещаем курсор по нашему 4-х значному значению времени (при необходимости можно сделать большее количество разрядов)

— кнопками ВВЕРХ — ВНИЗ ( UP — DOWN )  увеличиваем или уменьшаем цифру в текущем знакоместе

— кнопкой ВЫБОР ( SELECT ) запускаем таймер на обратный отсчет

Время, в течении которого будет замыкаться управляющий элемент, устанавливается в секундах. Т.е. 5 минут = 300 секунд, 1 час = 3600 секунд.

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

— на экране данный режим обозначается надписью — ОТСЧЕТ

— кнопкой ВЫБОР ( SELECT ) переводим таймер в режим ПАУЗА, с отключением исполнительного реле

— кнопкой СБРОС ( RST ) перезапускаем программу таймера на начало, что приводит так-же к отключению исполнительного реле

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

— на экране данный режим обозначается надписью — ПАУЗА

— кнопкой ВЫБОР ( SELECT ) переводим таймер опять в режим обратного отсчета, с подачей сигнала на включение исполнительного реле

— кнопкой СБРОС ( RST ) перезапускаем программу таймера на начало, что приводит так-же к отключению исполнительного реле

.

При минимуме управляющих элементов, надеюсь получился логичный и информативный интерфейс.

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

Использовать такой таймер можно например при фотопечати или засветке ультрафиолетом. Область применения ограничена только мощностью примененного Вами управляющего реле.

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

Заинтересовавшимся, исходный код скетча, можно скачать вот по этой ссылке — TIMER.INO

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

Для тех, кто все таки не смог самостоятельно найти библиотеку для шилда , или кому совсем лень, то идем за библиотекой СЮДА.