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





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

 R785211844650
 Z210696637574
 E368177590409

Простые устройстваОтличные товары по превосходным ценамОтличные товары по превосходным ценам
Супер-пупер Мега-таймер Печать E-mail
Рейтинг: / 16
ХудшаяЛучшая 
Автор Administrator   
11.12.2011 г.

Неожиданно для себя сделал реинкарнацию своего древнего проекта многоканальный суточный таймер.

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

Я назвал этот проект скромно: СУПЕР-ПУПЕР-МЕГАТАЙМЕР, сокращенно СПМТ.

Принципиальная схема управляющего модуля приведена на рисунке (по клику откроется в новом окне в крупном размере). Так же можно скачать схему в PDF-формате.

 

Кратко о схеме. DD1 - это термодатчик 1-wire, он может быть любым из семейства DS18x20, программа СПМТ автоматически определить тип и настроится на правильную работу. DD2 - это микросхема часов реального времени с интерфейсом I2C, я ориентировался на DS1307, причем без всяких ограничений можно применять DS1337. Батарейка GB1 обеспечивает безостановочный ход часов даже в том случае, если с разъема XP2 не подается питание VCC (5 вольт).  

DD3 - это главное, т.е. микроконтроллер atmega8 или atmega88 в DIP-корпусе. можно применить и в корпусе TQFP, но только с учетом разной нумерации портов.  Для программирования микроконтроллера используется стандартный 6-контактный разъем XP1 типа "PLD-вилка". 

ЖКИ U1 может быть любым типа 2 строки по 16 знаков, однако нумерация контактов в схеме показана для конкретного индикатора типа FDCC1602E фирмы Fordata. Если применяется иной тип ЖКИ, следует уточнить его распиновку. Кстати, предусмотренная схемой регулировка яркости подсветки (VT1 и связанные с ним компоненты) не поддерживается готовой прошивкой, хотя при определенных условиях (см. далее) может быть реализована. Поэтому, если вы не желаете (или не можете) самостоятельно перекомпилировать исходные тексты, VT1 и R1 можно не устанавливать. И еще: в примененном ЖКИ имеются встроенные токоограничительные резисторы в схеме подсветки, но не факт, что они будут в вашем ЖКИ, поэтому во-первых, уточните по документации этот момент, а во-вторых, если потребуется, установите в цепь коллектора необходимое сопротивление. транзистор VT1 может быть любым, допускающим с запасом ток подсветки ЖКИ, если чуть-чуть проявить фантазию, можно использовать даже MOSFET типа IRLML2402 - в этом случае резистор R1 нужно взять 20 Ом.

Выходных каналов в данной версии СПМТ целых 8, и все они выведены на разъем XP2. С этого же разъема на схему поступает и питание 5 вольт, причем источник питания должен быть рассчитан на ток подсветки ЖКИ, если, конечно, она используется.

Кнопок управления таймером, как и в предыдущем проекте, всего 4, но подключены они к шине данных ЖКИ (с целью экономии выводов МК), поэтому требуются дополнительные диоды VD3-VD6 и резистор R6. Назначение каждой кнопки поясняют подписи на схеме.

Прочие компоненты играют вспомогательную роль и их назначение очевидно.

 

Теперь несколько слов о том, что умеет СПМТ в сравнении с исходным прототипом.

СПМТ отсчитывает и индицирует точное время, а так же дату, включая день недели, чего не было в старом проекте.

СПМТ измеряет и индицирует температуру с десятыми долями. При этом СПМТ содержит встроенные функции термостатирования с четырмя порогами, что позволяет реализовать термостаты на любой вкус.

СПМТ позволяет задать более 80 моментов времени, называемых событиями, в течение суток с точностью до секунды, и при наступлении каждого момента может изменить состояние любого из 8-и каналов и даже нескольких каналов одновременно. Такой подход позволяет в нужный момент включать или выключать сразу несколько каналов, что было невозможно в старой версии.

Кроме термостата и собственно суточного таймера в СПМТ имеется система так называемых циклических событий. Эта система состоит из восьми завадаемых пользователем интервалов времени в секундах (от 1 до 65535 секунд). Каждый интервал представляет собой таймер обратного отсчета. По истечению первого интервала происходит заданное пользователем изменение состояния выходных каналов и запускается отсчет второго интервала, после истечения второго - третьего и так далее всех восьми интервалов, после чего снова запускается первый - и процесс повторяется сначала. То есть имеется 8-фазный генератор состояний выходных каналов, при помощи котрого можно организовать переодически повторяющиеся действия с минимумом усилий. 

Но это еще не все! В СПМТ, как уже понятно, изменения состояния выходных каналов могут происходить по событиям от собственно суточного таймера. термостата или генератора циклических последовательностей, при этом можно задать приоритет каждого источника событий. Этот приоритет означает то, что более приоритетное событие может изменить состояние каналов, заданное менее приоритетным событием. И приоритеты могут изменяться пользователем по своему усмотрению.  

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

Теперь несколько слов об исходных текстах СПМТ. Исходники для WinAVR доступны для скачивания - это еще одно коренное отличие этого проекта от предыдущего. И при этом в исходниках уже заложен ряд возможностей, которые являются достаточно уникальными для проектов такого класса. Например, имеется возможность добавить режим индикации времени цифрами, занимающими ОБЕ СТРОКИ дисплея (при помощи псевдографики), и получить тем самым вполне оригинальные часы. Можно добавить несколько языков интерфейса, совсем как в мобильниках, и переключать их по желанию пользователя. Можно реализовать возможность управления подсветкой... Но, к сожалению, без ложки дегтя не обошлось: все эти возможности не могут существовать одновременно, т.к. объема имеющейся в atmega8 или atmega88 памяти недостаточно для этого. Но с учетом того, что имеется еще и atmega168, полностью совместимая по выводам с базовым МК, можно сгенерировать версию прошивки для этого МК, в которой будут одновременно совмещены все возможности исходника!

Все файлы исходников (а их довольно много) подробно прокомментированы. Часть из них я написал сам (бОльшую часть), а часть взял готовые, поэтому некоторые исходники содержат комментарии на английском - я их не менял. То, что я писал сам, я старался оформлять в едином стиле, чтобы было понятнее всем, но признаюсь, кое в чем я перемудрил, но не умышленно: сначала думал сделать по-одному, но потом из-за экономии объема памяти пришлось делать по-другому... В итоге в некоторых местах есть явные глупости в исходнике, которые, правда, успешно компенсирует оптимизатор компилятора.

В данной статье описаны не все возможности, а те, что описаны - описаны очень кратко. Но есть PDF-файл, содержащий более качественное и подробное описание, который все желающие могут скачать отдельно. Надеюсь, этот проект найдет своих почитателей.

Подробное описание СПМТ
Принципиальная схема СПМТ
Исходники СПМТ и 2 готовые HEX-файла
Проект протеуса для изучения нюансов прошивок

Да, чуть не забыл! Фьюзы нужно выставить на 8 МГц встроенный RC-генератор  контроллера.

Обсудить проект можно на форуме 


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

  Коментарии (12)
 1 Написал(а) Сергей, в 22:33 11.12.2011
Попробуем :)
 2 Написал(а) Сергей, в 23:08 11.12.2011
Не работает в протеусе. 
Чистый экран.
 3 Написал(а) ARV, в 10:45 12.12.2011
работает, работает, запуск не быстрый в протеусе. при смене прошивки обязательно делать "Reset Persistent model data" в меню Debug
 4 Написал(а) Сергей, в 11:52 12.12.2011
У меня протеус быстрый :) 
А вот сброс данных не сделал.... Заработал.
 5 Написал(а) Павел, в 12:19 14.12.2011
Круто! 
Прочитал и сразу захотел себе такой девайс. 
Одна беда - пока не придума обо что его применить. 
З.Ы. Автор - супер!
 6 Написал(а) вадим, в 10:16 20.12.2011
Благодарю 
за новогодний подарок. 
СУПЕР.
 7 Написал(а) Ярослав, в 19:29 21.12.2011
Добрый день. 
Благодарю автора, во первых за предыдущий многоканальный суточный таймер, который был мной собран и благополучно по сегодняшний день управляет работой небольшого аквариума,во вторых за СПМТ, респект.
 8 Написал(а) viktor, в 18:10 28.12.2011
спасибо! может кто повторит отпишется ! ну и естественно печатную платку кто разработает надеюсь выложит.
 9 Написал(а) Seppy, в 17:20 30.12.2011
I can not see the HEX files. Please Help.Thank you
 10 Написал(а) ARV, в 22:16 30.12.2011
third link at the end of the article 
in the archive folder Release, there is a hex
 11 Написал(а) Nikolay, в 17:33 09.02.2012
Таймер - именно то что надо для аквы. Спасибо. Только я не очень понял, как программировать термостат. Что надо сделать на обогрев, и как на охлаждение?  
Спасибо.
 12 Написал(а) ARV, в 10:28 10.02.2012
перечитайте описание проекта еще раз, а если и это не поможет - задавайте вопросы на форуме

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

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