Главная arrow Проекты arrow По группам arrow Микроконтроллеры arrow Таймер - меньше просто не бывает  
14.10.2024 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Таймер - меньше просто не бывает Печать E-mail
Рейтинг: / 64
ХудшаяЛучшая 
Автор ARV   
21.04.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 минут до очередного напоминания.

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

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

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

 


Добавить в любимые (9) | Просмотров: 134072

  Коментарии (19)
 1 Написал(а) Валерий, в 22:08 19.06.2010
Ну вот и поздравляю. Очень оригинальный таймер получился. Особенно порадовало:"Нажав кнопку СС можно переключиться на второй настраиваемый параметр – начнет мигать третий разряд индикатора. В этом разряде отображается либо минус, либо буква G. Минус означает, что при отсутствии основного питания таймер будет остановлен, и продолжит работу только после восстановления питания. Буква G обозначает режим сохранения «хода» таймера и при отсутствии основного питания. Вы должны выбрать наиболее удобный режим для себя." 
В "моём" таймере это выбирается джампером.
 2 Написал(а) ARV, в 18:46 20.06.2010
джампер - это еще один вывод... сброс как-то не хочется использовать, т.к. очень многие после этого навсегда потеряют возможность использовать МК для чего-то еще... а что там за "ваш" таймер - никому неведомо :)
 3 Написал(а) Konstantin, в 20:38 30.06.2010
Добрый вечер. 
Как подключить реле, для управления вентелятором
 4 Написал(а) Unmasker, в 18:49 15.11.2010
Собрал таймер всё работает. Интересный прибор с минимум деталей. Если что не получается пишите мне: Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
 5 Написал(а) Unmasker, в 16:35 19.11.2010
Я новое применение прибора придумал 8)  
Что бы перфоратор не перегорел, подключать его через таймер 15 минут работает, 5 минут отдыхает :grin
 6 Написал(а) krysun, в 21:48 25.03.2011
:grin Unmasker жжешь!!!
 7 Написал(а) Виктор, в 21:24 16.10.2011
Замечательный таймер! Спасибо!Нельзя ли сделать его пятиканальным?
 8 Написал(а) ARV, в 17:03 17.10.2011
нельзя
 9 Написал(а) Константин, в 00:55 25.10.2011
А можно увеличить интервал до суток, убрав секунды ?
 10 Написал(а) Иван, в 08:32 11.10.2012
Здравствуйте! Собрал таймер. В режим программирования входит, можно выбрать тип индикатора, но после ввода в память гаснут все сегменты. После передергивания питания тоже тишина, но в режим программирования опять же можно войти. Буду благодарен за советы!
 11 Написал(а) Геннадий, в 17:46 04.11.2012
Собрал этот девайс. Не работает останов или счет при откл основного питания с этой прошивкой. 4 прошитые мс ведут себя по разному- 2 спешат на 1мин в час, 1-20сек. 1-2мин. Вопрос- это прошивка дэмо или фуфел?
 12 Написал(а) ARV, в 19:03 05.11.2012
Прочитайте внимательно: таймер и не был рассчитан на высокую точность, встроенный RC-генератор не обладает нужной стабильностью.
 13 Написал(а) Геннадий, в 21:34 06.11.2012
Точность отсчета зависит от программы, а стабильность (кварц или внутренний RC генератор). В программе нет зависимости от калибровочного коэф. Но почему не работает останов или продолжение счета после отключения основного питания?
 14 Написал(а) Геннадий, в 11:38 11.11.2012
Останов или продолжение счета работает, если не устанавливать BODLEVEL. В среднем таймер уходит вперед на 1мин. в час.
 15 Написал(а) Асхат Муратов, в 18:51 26.03.2013
Вопрос по таймеру, Если не использовать доп батарейку резервного питания, то после подачи основного, будет ли таймер включаться сам, если выбран циклический режим, или надо нажимать на кнопку старта?
 16 Написал(а) олег, в 09:38 29.04.2015
как перейти на циклический режим?
 17 Написал(а) Владимир, в 12:45 19.03.2016
скомпилируется ли с микроконтроллером 90s2313
 18 Написал(а) Владимир, в 22:33 15.05.2016
при компиляции ругается на  
key = get_key(); 
компилирую в WinAVR
 19 Написал(а) Владимир, в 11:56 22.04.2018
Собрал Ваш таймер всё сразу заработало планирую использовать его при изготовлении плат с помощью фоторезиста (управление УФ лампой). Хочу сказать Вам спасибо за разработку данного прибора.

Только зарегистрированные пользователи могут оставлять коментарии.
Пожалуйста зарегистрируйтесь или войдите в ваш аккаунт.

 
« Пред.   След. »
Полезные материалы по сходным темам
BannerFans.com