| Супер-пупер Мега-таймер |
|
|
| Автор 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-файл, содержащий более качественное и подробное описание, который все желающие могут скачать отдельно. Надеюсь, этот проект найдет своих почитателей.
Подробное описание СПМТ Да, чуть не забыл! Фьюзы нужно выставить на 8 МГц встроенный RC-генератор контроллера. Обсудить проект можно на форуме Добавить в любимые (6) | Просмотров: 7634
Только зарегистрированные пользователи могут оставлять коментарии. |
||||||||||||||||
| След. » |
|---|

R785211844650
Z210696637574
E368177590409





Коментарии (12)