среда, 20 октября 2010 г.

Таймер - меньше просто не бывает

Вниманию глубокоуважаемой публики предлагается очередной проектиз цикла«меньшене бывает».На этотраз это таймер, собранныйна микроконтроллереattiny2313.Количество деталйе, кроме микроконтроллера, минимально, хотяи слегкабольше, чемв ужеизвестном проекте«термостат –еще меньше, чемне бывает».И темне менее,таймер достаточно «нафарширован» функциями.

Назначение.

Таймер предназначен для управления бытовыми нагрузками по одному из3алгоритмов:

  • Цикл:непрерывное включение нагрузкина заданныйинтервал временис последующимотключениемна другойзаданный интервал;
  • Выдержкаи однократноевключение– включение нагрузки по истечению заданного интервала времени;
  • Выдержкаи однократноеотключение– отключение нагрузки по истечению заданного интервала времени.
Основные технические характеристикии функции.

Минимальный отсчитываемый интервал времени 1сек
Максимальный отсчитываемый интервал времени 999мин.59сек. 
Шаг перестройки интервалов временив интервале 1сек. 
Управление Кнопками 
Количество кнопок управления 
Тип индикатора 7-сегментный
светодиодный
3(4)-разрядный 
Сохранение заданных интервалов для каждого режима при отключении питания Предусмотрено 
Продолжение отсчета времени при восстановлении основного питания Предусмотрено 
Резервный источник питания Литиевая
батарейка 3В 
Выходной сигнал Логический,
0–5В,20мА 
Предупреждительный сигнал за10секунддо окончанияинтервала Предусмотрен 
Тип индикатора (общий анод/катод) Не имеет значения 

Схема таймера
Принципиальная схема таймера

На рисунке приведена принципиальная схема таймера. группаиз трехсветодиодов может быть заменена четвертым разрядом индикатора (далее описание ведется именнов расчетена этотвариант,т. е.дополнительные светодиоды упоминаются, как соответствующие сегменты 4-го разряда).Для достижениянастоящей миниатюрности все компоненты, кроме индикатора, следует выбиратьв SMD-исполнении.Звукоизлучатель –этоне простойдинамик,а зуммерсо встроеннымгенератором,т. е.такой, что при подаче 5В начинает пищать.

Две кнопки, обозначенныеРиСС,используются доля управления всеми функциями таймера.


Режимы работы таймера

Предусматривается два режима работытаймера –конфигурированиеи основной.

Конфигурирование

Режим конфигурирования включается при первой подаче питания после программирования микроконтроллера,а так жеможет быть принудительно вызван путем подачи питанияв товремя, как нажатаи удерживаетсяоднаиз кнопок.Учтите, что для входав режимконфигурирования источник резервного питаниятак женеобходимо отключать? то есть питаниес микроконтроллерадолжно сниматься полностью.

В режиме конфигурации кнопкаРслужит для выбора параметра,а кнопкаССизменяет выбранный параметр. Выбранный параметр мигает. Параметров всего два: тип индикатораи поведениетаймера при работеот резервногоисточника питания. Первый параметр отображаетсяв первомразряде индикатора,второй –в третьемразряде.

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

Нажав кнопкуССможно переключитьсяна второйнастраиваемыйпараметр –начнет мигать третий разряд индикатора.В этомразряде отображается либоминус,либо букваG.Минусозначает, что при отсутствии основного питания таймер будет остановлен,и продолжитработу только после восстановления питания. БукваGобозначает режим сохранения «хода» таймераи приотсутствии основного питания.Вы должнывыбрать наиболее удобный режимдля себя.

Завершить режим конфигурации можно нажатиеми удержаниемкнопкиРболее нескольких секунд. После завершения настроек изображениена индикаторестанет характерным для основного режима работы.

Основной режим

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

Особенности индикации

На индикаторе интервала отображается время. Формат отображения можно назвать «минутыс плавающимисекундами». Десятичная точкана индикатореотделяет единицы минутот десятковсекунд. Положение точкине фиксированои зависитот того,какое количество минут следует отображать.Если количествоминут более 99, то весь индикатор целиком занят под показания минут, секунды при этомне отображаются.Если минутменее 100,но более9,тона индикатореможно видеть десятки секунд.Если жеминут менее10, то секунды отображаютсяполностью –и десятки,и единицы.Таким образом,с достаточнойточностью можно видеть оставшееся времядо истечениязаданногоинтерва-ла(см. рисунки).

 Image Image Image
 На дисплее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минутдо очередногонапоминания.

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

Обсудить материална форуме.(128сообщений)

P.S.Для тех, кто захочетчто-топоменятьв кодетаймера.
В настоящее время прошивка собирается компиляторомWinAVR20100110и занимает2016байтаиз имеющихся2048.Но такойобъем полученне простотак,а толькопри определенных усилияхсо стороныпрограммистаи компилятора.Makefileдля сборки проекта прилагаетсяк исходникам –не стоитизменять егов планеопций компилятора или компоновщика!



Источник

Комментариев нет:

Отправить комментарий