Таймер - меньше просто не бывает |
Автор ARV | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21.04.2010 г. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Вниманию глубокоуважаемой публики предлагается очередной проект из цикла "меньше не бывает". На этот раз это таймер, собранный на микроконтроллере attiny2313. Количество деталйе, кроме микроконтроллера, минимально, хотя и слегка больше, чем в уже известном проекте "термостат - еще меньше, чем не бывает". И тем не менее, таймер достаточно "нафарширован" функциями. Назначение.Таймер предназначен для управления бытовыми нагрузками по одному из 3 алгоритмов:
Основные технические характеристики и функции.
На рисунке приведена принципиальная схема таймера. группа из трех светодиодов может быть заменена четвертым разрядом индикатора (далее описание ведется именно в расчете на этот вариант, т.е. дополнительные светодиоды упоминаются, как соответствующие сегменты 4-го разряда). Для достижения настоящей миниатюрности все компоненты, кроме индикатора, следует выбирать в SMD-исполнении. Звукоизлучатель - это не простой динамик, а зуммер со встроенным генератором, т.е. такой, что при подаче 5В начинает пищать. Две кнопки, обозначенные Р и СС, используются доля управления всеми функциями таймера.
|
На дисплее 24 секунды | На дисплее 21 минута, число секунд от 20 до 29 |
На дисплее 421 минута, число секунд неизвестно |
Предполагается, что если до конца заданного интервала еще очень долго, то нет смысла знать остаток времени с точностью до секунды.
Дополнительный индикатор состоит из 3-х светодиодов (в случае применения 4-го разряда индикатора используются сегменты А, G, D), назначение которых показано в таблице.
Индикатор | Сегмент | Назначение |
ВКЛ | A |
Показывает, что на дисплее интервал, в течение которого нагрузка ВКЛЮЧЕНА |
ОТКЛ | G | Показывает, что на дисплее интервал, в течение которого нагрузка ВЫКЛЮЧЕНА |
1РАЗ | D |
Показывает, что включен однократный режим отсчета интервала |
Когда идет отсчет времени, т.е. таймер работает в режиме счета, точка между минутами и секундами на индикаторе мигает. Индикаторы ВКЛ и ОТКЛ могут светиться совместно с индикатором 1РАЗ, означая при этом соответствующий режим выдержки времени и отключения или включения нагрузки. Например, если светятся индикаторы ОТКЛ, 1РАЗ и мигает точка, это означает следующее: нагрузка отключена, идет отсчет интервала, после его окончания нагрузка включится, а таймер остановится.
В режиме цикла индикатор 1РАЗ не светится.
Состояния
Различается три основных состояния в основном режиме работы:
- Ожидание - таймер остановлен, можно изменить настройки интервалов и выбрать алгоритм работы. Далее это состояние обозначается О.
- Счет - таймер отсчитывает выбранный интервал и управляет нагрузкой по выбранному алгоритму. Возможна приостановка или полная остановка от-счета времени, т.е. переход в состояние О. Далее это состояние обозначается С.
- Кроме основных, имеется еще дополнительное состояние изменения интервалов, далее обозначаемое, как состояние И.
Управление состояниями таймера
Управление состояниями осуществляется уже известными кнопками СС и Р.
Когда таймер в состоянии О, кнопка Р переключает алгоритм работы, что соответственно отображается на индикаторе. Можно выделить 4 варианта алгоритма работы:
№ | Описание | Вспомогательные индикаторы |
1 | Цикл, начинающийся с интервала, когда нагрузка отключена | ОТКЛ |
2 | Цикл, начинающийся с интервала, когда нагрузка включена | ВКЛ |
3 | Однократная выдержка при включенной нагрузке с последующим ее отключением | ВКЛ и 1РАЗ |
4 | Однократная выдержка при выключенной нагрузке с последующим ее включением | ОТКЛ и 1РАЗ |
По вспомогательным индикаторам легко определить, какой именно интервал в настоящее время на дисплее. Следует учитывать, что интервал может быть показан не полностью (см. Особенности индикации).
После того, как выбран алгоритм работы, можно нажать кнопку СС, которая запустит обратный отсчет текущего интервала и переведет нагрузку в соответствующее состояние, т.е. включит состояние С таймера. Это состояние, как было сказано ранее, сопровождается миганием точки, разделяющей минуты и секунды интервала.
В первых двух вариантах алгоритма работы после того, как истечет один интервал, произойдет переключение нагрузки в противоположное состояние, и автоматически запустится отсчет другого интервала. То есть нагрузка будет непрерывно коммутироваться через заданные интервалы времени.
В последних двух вариантах алгоритма работы после истечения интервала нагрузка будет, соответственно, включена или отключена, а таймер перейдет в состояние С.
Последние 10 секунд каждого интервала подаёся звуковой сигнал, напоминая о скором завершении интервала - в этом случае нажатие кнопки СС позволяет перезапустить выбранный интервал, т.е. продлить интервал еще на столько же. Если сигнализация скорого завершения интервала не требуется - нужно либо отключать звукоизлучатель при помощи тумблера, либо не устанавливать его вообще.
Кнопка Р в режиме С выполняет функцию "Стоп" - отсчет времени останавливается и таймер переходит в режим О, при этом интервал восстанавливает значение, заданное пользователем, т.е. таймер готов к очередному запуску.
Изменение длительности интервалов
В состоянии О возможно изменить длительность текущего интервала, т.е. того, который отображен на индикаторе. Для этого надо нажать и удерживать кнопку Р до тех пор, пока не включится состояние изменения интервала. От состояния О это состояние отличается тем, что один из разрядов индикатора мигает - именно его значение будет изменяться при нажатии кнопки СС. Изменение происходит по кругу, т.е. 1-2-3-4-5-6-7-8-9-0-1-2-..., но при этом учитывается тот факт, что не может быть задан интервал 0 секунд и 0 минут, а так же число десятков секунд не может превышать 5.
Важное замечание: таймер определяет длительное нажатие кнопки Р уже после того, как отработает ее нажатие краткое, т.е. сначала произойдет переключение режима таймера, а затем включится режим изменения интервала. Эту особенность следует учитывать при работе.
Выбрать разряд для изменения можно нажатием кнопки Р. Так как интервал состоит из 5 разрядов, из которых может быть видимо только 3, по мере продвижения редактируемого разряда слева направо происходит и сдвиг точки, отделяющей минуты от секунд.
Такой поразрядный способ изменения интервала позволяет наиболее быстро ввести любое значение от 0.0 до 999.59 при помощи всего пары кнопок. Дополнительно облегчает ввод автоповтор нажатой кнопки, т.е. если нажать и удерживать кнопку более 1,5 секунд, показания начнут изменяться автоматически в ускоренном темпе.
Нажимая кнопку Р, можно просмотреть все разряды интервала, не меняя их. Завершается ввод значения интервала нажатием и удержанием кнопки Р до тех пор, пока не перестанет мигать разряд на индикаторе.
Возможные применения устройства.
Полив растений, кормление животных (алгоритм «цикл»).
Экспонирование в фотографических и других процессах (алгоритм «выдержка и отключение»).
Кухонный таймер (алгоритм «выдержка и включение» для сигнализации конца интервала или «отложенное выключение» для электроприборов).
Освещение на лестничных клетках (алгоритм «выдержка и выключение», индикатор не требуется).
Так как работа над таймером шла долго и активно обсуждалась на форуме, у некоторых посетителей сайта возникал вопрос: для чего используется звуковое напоминание о скором завершении интервала и возможность продлить текущий интервал? Это предусмотрено на случай использования таймера в качестве "незабудки". Например, вы сели паять, а таймер у вас управляет питанием паяльника. Вы настроили таймер на работу в режиме "включено 1 раз" на 15 минут. Предположим, спустя 10 минут вам позвонили по телефону и вы отложили паяльник. Если вы заболтались - таймер начнет попискивать, напоминая о себе. Если вы не слышите этих сигналов - таймер отключит паяльник, уберегая вас от пожара. Если же вы не спите, не заняты - вы нажимаете кнопку СС и продолжаете работать еще 15 минут до очередного напоминания.
Скачать все файлы проекта (исходники и готовую прошивку), а так же проект протеуса для тестирования виртуально, как обычно, можно из файлового архива.
Обсудить материал на форуме. (388 сообщений)
P.S. Для тех, кто захочет что-то поменять в коде таймера.
В настоящее время прошивка собирается компилятором WinAVR 20100110 и занимает 2016 байта из имеющихся 2048. Но такой объем получен не просто так, а только при определенных усилиях со стороны программиста и компилятора. Makefile для сборки проекта прилагается к исходникам - не стоит изменять его в плане опций компилятора или компоновщика!
Добавить в любимые (9) | Просмотров: 134072
Коментарии (19) |
Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.
« Пред. | След. » |
---|