НЕХ-файл модуля цифровых вводов
Выводы RA0-RA2 используются в «макетном варианте» для индикации!
:10000000830100308А00042820308400403016200С :1000100083010330C200FF30C10040308400413012 :100020001A2083019E2A04068001840A0406031D07 :1000300013280034F00026208000840A040870068B :10004000031900341B2883120313C100C21B31287В
10005000421B392842088A004108C10A0319C20A12 1000600082008313421883174108C10A84000008E4 02007000080086
1004860083018C1E432A1A08080083013408533A54 10049600031D0800FC2A8301BF00831203130C1EF0 1004A600502A3F0899000800F401F5010310F30CE7 1004B600F20C031C652A7008F40771080318710A08 1004C600F5070310F00DF10D7208730403190034DB 1004D600592AF8308301850007309F00F8308316CB 1004E6008500FE3086009030831298000630831611 1004F60098006830990083120610051408008301DD 10050600AD01AE013008A4003108A500D030A40723 10051600A5070A30F200F3012408F000F101572282 1005260025087407AD0075080318750AAEOOF100BA 100536002D08F00008006C22AB01AC01AB2A2B0899 100546002F3E8400831320308000ABOA0319ACOAC7 100556002C08803AF00080307002063003192B0216 10056600031CA22A4430AF000608A700A8010430E5 10057600F000280DA80CA70CF00BBC2AEA2AAB0148 10058600AB0AAC012C08803AF000803070020630CD 1005960003192B020318DB2A4322A6002B082F3E41 ЮО5А6ОО84ОО831326О88ОО0АВОА0319АСОАС52АО7 1005B60082227008A9007108AA002806031DE52AF0 1005C60027082906031DEA2A2430B20048221816F5 1005D6000508F839F83A0319F32A0508C005851401 1005E6008C1EF72A4322A6002608443A0319C22A7B 1005F600EA2A83014008B900BA016430F200F30127 100606003A08F1003908F000B0237408BB007508F9 10061600BC003B08303EA0006430F200F3013C0809 10062600F1003B08F00057223A08F1003908F000C3 100636007408F002031CF1037508F1020A30F20097 100646000030F301B0237408B7007508B800370806 10065600303EA1000A30F200F3013808F1003708F5 10066600F00057227408BD007508BE006430F20021 10067600F3013C08F1003B08F00057223A08F1006C 100686003908F0007408F002031CF1037508F10242 100696003D08F002031CF1033E08F1027008B500A4 1006A6007108B6003508303EA2004430AF00240879 1006B600303EB0002508303EB1002008B2002108C7 1006C600B3002208B4001812061483169816831273 1006D600AB01AC01772B2B082F3E84008313000857 1006E6004E22AB0A0319AC0A2C08803AF00080307F 1006F6007002063003192B02031C6E2BAB01AC01F2
:100706002C08803AF00083307002E83003192B027F
:Ю0716000318912ВАВОА0319АСОА832ВАВ01АС016Е
:100726002C08803AF00080307002063003192B0244
:100736000318A72B2B082F3E84008313203080003C
:Ю074600АВОА0319АСОА932В061083169812831270
:1007560018168510F830C0000800F601F11FBA2BF4
:100766OOFOO9FOOAO319FlO3FlO97617F61773O871
:100776008039F606F31FC62BF209F20A0319F303B2
:10078600F309C62BF601F401F50172087304031D83
:10079600CF2BF001F10100341F30F6040310F60AE6
:1007A600F20DF30D031CD22BF30CF20C730871023D
:1007B600031DDF2B72087002031CE72B7208F00280
:1007C6007308031C730AF102F40DF50DF60BF61A05
:1007D600D72BF61FF32BF409F40A0319F503F509D1
:1007E6007408F2007508F300761F0034F009FOOA69
:0A07F6000319F103F1090034F8348F
:00000001FF
Пришло время поговорить о датчиках, с которыми можно провести эксперименты, используя модуль цифровых вводов.
Я уже говорил, что наиболее интересными датчиками будут датчики движения, противопожарные датчики, датчики температуры (пороговые измерители температуры), датчики положения (в частности, герконовые).
Рассмотрим их по порядку, начиная с простейшего - герконового датчика.
Іерконовьій датчик (название происходит от сокращения «герметизированные контакты») представляет собой пару: магниточувствительные контакты в стеклянной колбе и постоянный магнит. Реальный датчик, конечно, имеет пластмассовые корпуса и для контактов, и для магнита. Когда контакты попадают в поле постоянного магнита, они замыкаются (или переключаются для варианта с контактами на переключение). Естественно, соединив один вывод контактов с выводом модуля цифровых вводов, а другой - с общим проводом модуля, мы получаем сигнал о взаимном положении контактов и магнита. Если контакты укрепить на дверной короб, а магнит - на дверь, при закрытой двери контакты замкнутся, а при открытой разомкнутся. Этот сигнал Можно использовать в основной программе, чтобы инициировать любые события.
Положим, мы установили герконовый датчик на входную дверь. Теперь вполне можно реализовать программу «Возвращаюсь я с работы...», о которой я говорил в предисловии. Напомню: «Возвращаюсь я с работы. Система встречает меня - зажигает свет в прихожей, кипятит воду для кофе (конечно, чайник я наполняю утром). А когда я перехожу в гостиную с чашкой кофе, она включает телевизор на моей любимой программе новостей, чтобы я, усевшись в любимое кресло, посмотрел, что произошло в мире за день. Свет на кухне и в прихожей, который я, конечно, забыл выключить, она выключит сама».
Для реализации подобной программы все, собственно, есть.
Можно установить герконовые датчики на дверь туалета, а основную программу построить так, чтобы при первом открывании двери свет в туалете включался, а при втором открывании выключался. Естественно, в систему необходимо добавить релейный модуль для управления светом или модуль с триаком, о котором речь пойдет ниже.
Герконовые датчики, несмотря на всю свою простоту, могут найти множество применений в экспериментах с системой «Умный дом».
Рассмотрим, как можно сделать датчик температуры. В качестве датчика температуры можно использовать терморезистор. Сделав делитель из терморезистора и обычного резистора, подключив напряжение к делителю, можно снимать сигнал напряжения на терморезисторе при изменении температуры. Теперь осталось подключить компаратор и реле, чтобы при достижении некоторого значения напряжения реле включалось (с модулем цифровых вводов можно использовать вместо реле транзистор с открытым коллектором). Используя в качестве обычного резистора пару из переменного и постоянного резистора, можно изменять заданное напряжение срабатывания. Подобных схем великое множество, при необходимости вы можете использовать любую. Можно построить и свою схему, в основе которой может лежать чувствительность к температуре не только терморезистора, но транзистора и т. д.
Как в системе можно использовать подобный датчик? Например, можно настроить датчик на срабатывание при температуре ниже -15° и поместить термочувствительный элемент за окном. В качестве индикатора «похолодания» можно использовать свет в прихожей. Действия программы будут следующими: температура за окном упала ниже -15°. Когда открывается входная дверь, снабженная герконовым датчиком, свет в прихожей выключается и включается вновь - не забудьте теплое пальто!
Я уже говорил, что, управляя бытовой аппаратурой с помощью ИК-кодов, сталкиваешься с проблемой определения ее текущего состояния - включен телевизор или выключен? Здесь тоже можно использовать датчик температуры для безусловного выключения телевизора в заданное время, поскольку включенный телевизор греется, а выключенный нет.
Датчики движения. Насколько я понимаю, они появились как датчики в составе охранных систем. Есть несколько разновидностей подобных датчиков. С моей точки зрения, наиболее интересны пирометрические датчики движения. Но они достаточно дороги. Более дешевыми могут оказаться микроволновые датчики.
Есть еще один вид датчиков, которые могут найти практическое применение даже при самостоятельном изготовлении. Это датчики протечек. Датчики, реагирующие на появление воды там, где ее не должно быть. Установив подобные датчики возле батарей отопления, в местах ввода горячей и холодной воды, возле стоков раковин, можно избежать серьезных неприятностей при появлении протечек воды. Сигнализируя об аварии, система выручит вас на этапе, когда еще не поздно перекрыть вентили или перестать пользоваться раковиной и вызвать специалиста для устранения неисправности. Хотя надежнее, я думаю, будут все-таки готовые датчики.
Есть еще одно применение модуля цифровых вводов, о котором я упоминал раньше, - системное устройство управления.
Само системное устройство управления - это клавишный пульт. Контакты при нажатии клавиши замыкают один из входов модуля на общий провод. Восемь входов модуля позволяют сделать простой пульт с восьмью клавишами, что позволяет подать восемь команд. Достаточно ли этого? Достаточно для управления всеми светильниками в комнате. Или всеми основными светильниками в квартире. Этого хватит для управления одним аудио - или видеоустройством, например видеомагнитофоном. Но управлять телевизором будет неудобно, поскольку трудно будет ввести номер канала. Для ввода номера канала обычные пульты имеют цифровую клавиатуру с цифрами от 0 до 9. Чтобы увеличить количество клавиш управления, достаточно добавить кнопки не с одним контактом на замыкание, а с двумя. Если первые восемь кнопок будут менять состояние одного бита, то остальные - состояние двух бит одновременно. Для случая использования модуля с клавиатурой в программу контроллера следует добавить задержку на 10-50 мс перед определением состояния входов:
If ((PORTA&OxFF) != OxFF)
{
For (i=0; i<1000; i++);
DINSTAT = DINSTAT&PORTA;
}
Необходимость в задержке связана с «дребезгом» контактов и неодновременным замыканием контактов у двухконтактных кнопок.
Применение кнопок с двумя замыкающими контактами, то есть замыкающими первый вход и второй, первый и третий и т. д. одновременно, позволит добавить на пульт еще семь клавиш управления. Одновременное замыкание второго и третьего, второго и четвертого и т. д. - добавит еще шесть клавиш. Даже 21 клавиши управления для пульта, мне кажется, более чем достаточно для любых применений этого решения к построению клавишного пульта управления.
Позже мы обсудим вопрос о том, что можно сделать в экспериментах, если в квартире не заложено достаточно большого количества проводов, а менять проводку нет возможности. Я имею в виду использование радиоканала. Это же решение можно применить и к пульту управления, построенному на основе модуля цифровых вводов, для превращения его в переносной пульт управления.
Резюме. Мы расширили возможности системы за счет нового устройства - модуля цифровых вводов. Рассмотрели и несколько применений этого модуля. И, как мне кажется, с появлением нового модуля система приобрела новое качество.