РадиоКот >Схемы >Цифровые устройства >Автоматика >

Теги статьи:

Бытовой контроллер «Помошник лентяя»

Автор: KT315B
Опубликовано 01.01.1970

Дорогой Кот! Хочу от всей души поздравить тебя со вторым днем рождения и подарить одно устройство, которое надеюсь, тебе понравится! Это устройство призвано помочь тебе заниматься такими важными делами, как постинг на форуме, общение с друзьями в аське и разглядывание голых кошечек на компе. Нет-нет! Конечно же данный девайс делать это все за тебя не будет, однако поможет отдаться этим всем прекрасным занятиям, не отвлекаясь на всякие мелочи, подобно включению/выключению света, музыки, вентилятора, если вдруг стало жарко… К тому же с этим девайсом ты всегда будешь знать, какая температура у тебя за окном, в комнате – да хоть в кружке с пивом, где твоя душа пожелает.

Итак, приборчик наш будет называться «Помощник лентяя». Построен он на МК ATMEGA8535, и умеет общаться с компом по протоколу RS-232, благодаря микросхеме MAX232, которая достаточно широко распространена и имеет целые мириады аналогов - например микросхема ADM232AAN, которая и была использована мной при построении данного устройства. Так же, к МК подключен дисплей отечественной фирмы MELT MT-16S2D, который можно заменить любым другим, построенном на контроллере HD44780. Из дополнительной обвязки у нас – цифровые датчики температуры DS1820, которых может быть до 4-х, а может вообще и не быть – в прошивке МК предусмотрены все случаи. Ну и, наконец – четыре реле с напряжением срабатывания 5В, включенные через транзисторы КТ605БМ, работающие по схеме эмиттерного повторителя – такой «финт ушами» предусмотрен для того, чтобы не перегрузить порт МК по току.

Взглянем на схему.

Схема

В принципе, ничего сверхъестественного в ней нет и любой человек, которых хоть раз имел дело с МК с легкостью ее повторит. Работает все предельно просто: программа, запущенная на компе посылает команды устройству, на что последнее реагирует либо действием (включить/выключить нагрузку), либо ответом (при запросе температуры). Система команд используется простейшая, поэтому любой кто захочет, сможет написать ПО для компа, чтобы общаться с этим устройством. «Язык» команд таков:

Команда Параметр Действие
A [A..D] Инвертирует состояние нагрузки, то есть включает выключенное и выключает включенное. Параметр А – первая нагрузка, D – последняя соответственно.
B [A..D] Запрос температуры с термометра. Номер термометра задается вторым параметром, по аналогии с командой «А». Нумерация термометров – автоматическая и последовательная, то есть если подключено 2 термометра, то они будут пронумерованы как 1 и 2, если же работают 3 термометра – то 1,2 и 3. При запросе температуры «несуществующего» термометра – МК Возвращает компу ответ “N/A”.
B Z Запрос количества термометров – возвращает целое натуральное число.



Команды передаются БЕЗ традиционной завершающей последовательности <CR><LF> - этот момент важно учесть при написании собственного ПО для компа под это устройство.

Теперь поговорим о детальках. Отдельного внимания заслуживает обвязка MAX232. Микросхема имеет, как уже было сказано, много модификаций и аналогов, поэтому настоятельно рекомендую заглянуть в даташит по конкретной модели, которую собираетесь применить, на предмет емкости обвязочных конденсаторов. Последняя может варьироваться от 100нФ до 1.0 мкФ. Встречаются отдельные экземпляры, требующие конденсаторов емкость. 4.7 мкФ, но это скорее исключение, чем правило. Список деталей:

№ п/п Позиция Наименование
1. U1 Atmega8535-16PU
2. U2 MAX232
3. TH1-TH4 DS1820 (можно DS18S20)
4. LCD1 MT-16S2D (любой на HD44780)
5. C1,C2 22пФ, керамика
6. C3-C6 Зависит от U2
7. R1 4.7КОм, 0.25Вт
8. Q1-Q4 КТ605БМ
9. RL1-RL2 833H-1C-2C 5VDC (любое с катушкой на 5В)
10. X1 Кварц на 8 МГц
11. Прочее Клеммники, панельки для микросхем и плоский кабель для LCD.


Собранное устройство должно выглядеть примерно так:
Фото

Фото

Маленькой примечание: на фотке видны четыре резистора, которых на схеме и печатке нет. Все правильно – с резисторами реле не срабатывали и поэтому пришлось их исключить.

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

Прошивка микроконтроллера написана на Си, в популярной и, на мой взгляд, очень удобной среде CodeVision AVR. Простая программа для компьютера, которая управляет этой железякой, написана в среде Borland C++ Builder 6.0 с использованием компонента SlyDiman для работы с последовательным портом компа. При первом запуске программа запросит номер используемого порта, а так же автоматически настроит порт для работы с устройством. Номер порта сохраняется в реестре, так что при последующих запусках вводить его не придется, за исключением того случая, если ключ реестра будет стерт по там или иным причинам. Для нормальной работы программы необходимы правда администратора на машине, на которой она запускается.

Ну вроде бы все рассказал. Надеюсь что тебе, Кот Великий и Всемогучий, такой приборчик придется по душе, ибо он способствует приятному проведению времени на любимом сайте РадиоКот, духом которого ты и являешься. За сим разреши откланяться – пойду хлебну еще пив… пардон, валерьянки, конечно, и продолжу читать любимый форум!

PS: хочу выразить благодарность одному замечательному человеку, который написал русификатор для LCD-дисплея =)

Вопросы, как обычно, складываем тут.

Файлы:
Плата в формате SL5
Прошивка для МК
Софт для ПК