Например TDA7294

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

Электронный привод «Элверт» для дверного замка

Автор: Баталов Алексей
Опубликовано 03.09.2012.
Создано при помощи КотоРед.

Сперва небольшое поздравление с семилетием нашего радиокота маленьким стишком (не моим).

Коты все разные такие,

Но все они нам дороги,

Коты хорошие такие,

Для них отдали, что смогли.

     Данное устройство является накладным электронным приводом для врезного дверного  замка с цилиндровым механизмом секретности (евроцилиндр), имеющий вертушок с внутренней стороны. Идея создания данного устройства меня посетила, когда я наткнулся в интернете на подобное изделие рук немецких мастеров. Название является аббревиатурой от слов «Электронный вертушок», так как с внутренней стороны двери механическая вертушка замка заменена (точнее сказать дополнена) данным приводом, который открывает/закрывает замок с помощью ключа-таблетки типа DS1990, или другой подобной, имеющей индивидуальный 64 битный номер и работающей по протоколу 1Wire. Так же замок можно открыть снаружи обычным ключом (впрочем эту возможность можно убрать), а изнутри штатной вертушкой, но которая уже подсоединена к приводу. Достоинство данного конструктивного подхода мне видится в том, что для автоматического процесса открывания-закрывания не нужно ставить новый замок, а можно использовать уже имеющийся. Или допустим металлическая дверь заводского изготовления,  замки в ней были установлены там, и кромсать её для установки нового замка не хочется. Привод имеет автономное питание и не зависит от электросети. В качестве бонуса устройство имеет часы с автоматической коррекцией текущего времени и календарь с вычислением дня недели по дате для текущего столетия. Ниже фото устройства, установленное на входную дверь.

                                                    

 

   Вначале рассмотрим принципиальную схему устройства.

                                     

Электронная часть построена на микроконтроллере ATmega88, имеет автономное питание от трех элементов типа “AA” и работает в двух режимах: активный и ждущий. Для вывода информации используется распространенный символьный ЖКИ на 2 строки по 16 знаков на контроллере HD44780 (KS066).

В активном режиме МК тактируется от внутреннего RC осциллятора на 4МГц (8МГц с делением на 2). Этот режим используется при всех операциях управления приводом.

В остальное время привод находится в ждущем режиме. Микроконтроллер всё это время спит, работает только таймер ТС2 в асинхронном режиме от часового кварца на 32768 Гц. (индикатор для экономии энергии элементов питания при этом выключен), просыпаясь примерно на 4 мсек. 1 раз в секунду для осуществления хода часов и снова засыпает. Так же МК просыпается и переходит в активный режим при обнаружении ключа на считывателе или при нажатии кнопок управления.

 

Микроконтроллер имеет типичную обвязку цепей сброса, опорного напряжения, низкочастотного кварцевого резонатора, питания АЦП. Подстроечный резистор R2 служит для настройки  правильности измерения напряжения батареи питания, а R7 для установки контрастности ЖКИ.

Для местного управления служат 4 кнопки, которые подсоединены на вход АЦП через делители на резисторах R10-R13. Соответственно нажатая кнопка определяется при помощи АЦП по величине напряжения на делителе.

Подробнее коснусь питания ЖКИ. Пересмотрев несколько даташитов индикаторов на данном контроллере, выяснил, что они имеют довольно узкий диапазон питающего напряжения (4,5B….5,5B), а поскольку устройство имеет автономное питание и напряжение со временем при разряде элементов будет понижаться и станет ниже допустимого для питания ЖКИ. Поэтому требуется повышающий маломощный (индикатор потребляет скромно, до 1мА.) преобразователь-стабилизатор, на выходе которого будет напряжение около 5В при входном 3В….4,5В. Он собран на элементах R6, C3, VD4, C4, VD5. Принцип основан на удвоении напряжения при импульсном сигнале (в данном случае ШИМ, скважность опять же для экономии энергии зависит от напряжения питания, используется канал A таймера T0) на входе, выходное напряжение стабилизируется на VD5.

В примененном мною ЖКИ имеется подсветка, но она потребляет ток почти 0,5А, что многовато для устройства с автономным питанием, может потому что индикатор старый (ему около 10 лет, более современные вроде потребляют меньше) Но все же я развел на плате для питания подсветки повышающий преобразователь на NCP1450ASN50 по рекомендуемой в даташите схеме, но его не установил.

   В электроприводе применен двигатель постоянного тока. Его управление осуществляется при помощи Н-моста на полевых транзисторах VT1-VT4. С4, L2, L3 – элементы для снижения помех от двигателя. R18 предназначен для контроля тока потребления двигателя. Двухступенчатая RC цепочка R17, C9, R16, C8. служит для подавления помех на входе АЦП при измерении тока потребления двигателя. Элементы R4, R5, VD1-VD3 служат для сопряжения и защиты входа МК при считывании ключей-таблеток. 

      Электронная часть привода собрано на двух односторонних печатных платах, на одной из которых размещены только кнопки с резисторами делителя R11….R13. На основной плате все остальные детали. Индикатор подсоединяется к ней при помощи углового разъема с одной стороны (через него идет питание и данные) и двух штырей с другой, которые входят в соответствующие гнезда-цанги (это предусмотрено для подсветки). Таким образом индикатор составляет с  основной платой как бы бутерброд и сделан съемным, что необходимо при установке привода на дверь. Батарея, двигатель, пьезоизлучатель, кнопки, считыватель 1Wire подключаются к основной плате с помощью разъемов, так что её можно снять не демонтируя всего устройства. Платы выполнены методом ЛУТ. Рисунки печатных плат и расположение деталей формата Sprint-layout 5 находятся в архиве в конце статьи.

    Микроконтроллер ATmega88PA-AU можно заменить на ATmega88P-AU, ATmega88V-10AU,  ATmega88-20AU. ЖКИ любой двухстрочный по 16 символов в строке. Все используемые элементы для поверхностного монтажа, кроме подстроечных резисторов. Разъемы расположены с обратной стороны, кроме тех, что для индикатора. LS1 – обычная пьезоэлектрическая пищалка. Кварцевый резонатор взят со старой материнской платы. На основной плате имеются две перемычки.

                             

                         

   

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

                                       

Это дало возможность сделать редуктор, который позволяет открыть замок как обычным ключом снаружи (благодаря проворачивающемуся валу под усилием) так и с внутренней стороны за счет расцепления шестерни с валом при его осевом смещении путем нажатия и поворота штатного вертушка, одетого на вал. В итоге получился двухступенчатый редуктор. Первая ступень – зубчатая передача с редукцией 1/4,5. Вторая червячная с редукцией 1/33. 
Пересмотрев все имеющиеся у меня двигатели постоянного тока (другой тип я не рассматривал), я выбрал шестивольтовый от старого магнитофона, предварительно сняв с него стабилизатор. Теперь он мог крутиться в обе стороны. Этот двигатель среди всех мною протестированных имел самый низкий ток потребления на холостом ходу (всего 40mA при 3,3В и адекватный крутящий момент). Его я и применил. В качестве каркаса редуктора я использовал листовой металл от корпуса  древнего десктопного системного блока  из тех мест, где он был согнут под прямым углом. Его толщина 1,2 мм. Элементы каркаса и двигатель соединяются вместе при помощи винтов. Получился вот такой редуктор.

      

      

 

        Рассмотрим общую конструкцию замка.  Корпус взят от электрического дверного звонка. В нем прорезаны отверстия для индикатора, кнопок и штатной вертушки, насаживающейся на вал.  Днище оказалось каким то полиэтиленовым, поэтому я его дополнил алюминиевой пластиной толщиной 2 мм., а из родного вырезал середину,  чтобы редуктор устанавливался непосредственно на алюминиевую пластину.  На днище по бокам расположены 2 металлических уголка. На них при помощи мощных магнитов держится корпус, который специально сделан легкосъёмным для быстрой замены элементов питания. Корпус обернут самоклеящейся пленкой в тон двери,  чтобы как то гармонировать с ней. На пленке предварительно были пропечатаны контуры  кнопок и надписи в них.  Толкатели для кнопок расположены прямо под пленкой.         


Днище, с установленными кнопками, элементы питания.     

Корпус, вид на внутренность

      Днище и редуктор крепятся при помощи двух винтов к основанию (изготовлено из материала типа эбонита толщиной 8 мм.),  которое в свою очередь крепится на дверь вместо штатной накладки с внутренней стороны. Для этого в них сделаны отверстия под цилиндровый механизм.  В выступающей части этого механизма, в том месте, где ставилась штатная вертушка, сделана прорезь. В неё входит винт, перпендикулярно вкрученный через проделанное отверстие на конце вала и застопорен с двух сторон гайками, как видно на фото редуктора. Таким образом при вращении вала вращается винт в прорези и язычок цилиндрового механизма секретности, который в свою очередь перемещает ригель замка.  Под цилиндром проходят провода к гнезду для считывания ключей, для них сделан небольшой продольный пропил.

     

                               Днище и основание                                                          Установленное на дверь основание

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

   

            Вид сбоку (справа)                                                                               Вид спереди с редуктором без LCD

Гнездо для считывания устанавливается с наружной стороны. Оно может быть покупным или самодельным. Я взял выпуклую накладку от замка с дисковым секретом, доработав её.

                                                

 

Фото привода со снятым корпусом

                 

     Рассмотрим работу устройства. При подаче напряжения оно определяет его величину включает ЖКИ, переходит в активный режим и по умолчанию определяет замок как открытый, поэтому установку/смену батареи питания нужно производить в таком же положении замка. В  активном режиме измерение напряжение батареи производится один раз в секунду. В устройстве имеется 4 кнопки управления:

1. Режим

2. Выбор

3. Открыть замок/увеличить

4. Закрыть замок/уменьшить

Существует два способа нажатия на кнопки, быстрое – менее 0,5 сек, длительное - более 0,5сек.

Активный режим работы делится ещё на четыре: основной, режим ключей, режим настроек, и часов-календаря.

 

     В основном режиме можно открыть/закрыть замок с помощью быстрого нажатия соответствующих кнопок. Длительное нажатие «закрыть замок» используется при выходе из квартиры. Замок при этом закроется после отсчета таймера, который можно установить от 1 до 9 секунд в режиме настроек, чтобы выйти и захлопнуть дверь. При этом отпадает необходимость использования ключа-таблетки для закрытия замка, хотя эта возможность тоже имеется.  На индикаторе выводится информация о состоянии замка или выполняемом действии, различные сообщения, текущее время и день недели, как видно ниже.

   

Когда все параметры в норме, то показывается состояние замка, текущее время и день недели.                                                                                                                                                                            



 

Если у батареи пониженное напряжение (контрольное значение  задается в настройках), то во второй строке имеем данное сообщение                                                                                                                                                                               


 Если у батареи очень низкое напряжение (контрольное значение задается в настройках) данное сообщение во второй строке сменяется на сообщение “замените батарею ” с частотой  1 раз в 2 секунды.

 

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

Сбросить флаг можно длительным нажатием кнопки “выбор”.  При этом появится сообщение и прозвучит 1 звуковой сигнал 1 сек. Так же сбрасываются и другие флаги ошибок.


 


При нажатии соответствующей кнопки запускается процесс закрытия/открытия замка выводится одно из сообщений слева. После закрытия замка  прозвучит один звуковой сигнал длительностью 1 сек., а после открытия 2 сигнала  по 0,5 сек. Если напряжение батареи низкое, то помимо особого сообщения во второй строке после открытия замка прозвучит 3 сигнала по 0, 4 сек., а если напряжение очень низкое, то 4 сигнала по 0,3 сек. Процесс закрывания/открывания замка можно остановить, нажав повторно соответствующую кнопку.



При выходе из квартиры  для закрывания замка можно воспользоваться соответствующим таймером.  При этом отпадает надобность в использовании ключа. Для этого производится длительное нажатие кнопки “закрыть замок” По окончании отсчета замок закроется. Значение таймера устанавливается в режиме настроек. При повторном быстром нажатии той же кнопки произойдет отмена отсчета таймера.



 

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



 

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

 

При попытке закрыть замок с дохлыми элементами питания появится следующее сообщение, и замок конечно не закроется, но если был закрыт, то откроется

 






Если по каким либо причинам между контактами считывателя короткое замыкание, то во второй строке об этом будет сообщение.




 

При быстром нажатии кнопки  “режим” произойдет переход в режим часов-календаря. Обратный переход аналогичен. 

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



А при длительном нажатии кнопки  “режим” попадем в режим ключей. Обратный переход аналогичен.  Память ключей рассчитана на 25 штук.

При этом показывается порядковый номер ключа, а также определяется прописан или нет  ключ по этому номеру. Выбор порядкового номера ключа осуществляется кнопками “увеличить(открыть замок)” или  “уменьшить (закрыть замок)”









Если считать ключ, то будет показано сообщение наличия или отсутствия ключа в памяти и звуковой сигнал 1 сек.,. При этом если он есть, то во второй строке будет указано, под каким порядковым номером он прописан.








Прописанный ключ можно стереть. Для этого нужно быстро  нажать  “выбор”. Появится надпись о готовности к стиранию. Если считать ключ, то появится сообщение на 1 сек., что ключ по выбранному порядковому номеру стерт и стал свободен,  прозвучит звуковой сигнал 1 сек.



  



Если нужно записать ключ, то выбирается свободный порядковый номер. Затем нужно быстро  нажать  “выбор”. Появится сообщение о готовности к записи. Если считать ключ, то появится сообщение на 1 сек. что ключ записан и стало занято, прозвучит звуковой сигнал 1 сек.



     Из режима ключей  осуществляется переход в режим настроек путем быстрого нажатия кнопки “режим”.(обратный переход аналогичен.)  При этом появится следующее сообщение длительностью 2 сек.

 





     Переход на нужный  параметр осуществляется кнопками “увеличить(открыть замок)” или  “уменьшить (закрыть замок)”.  

Первый настраиваемый параметр – значение таймера задержки перед закрытием замка при выходе.

Диапазон от 1 до 9 сек. Чтобы сделать значение таймера доступным для изменения, нужно вначале быстрое нажатие кнопки “выбор”, (повторное нажатие – выход из доступа для изменения) после чего оно будет мигать  1 раз в секунду. Кнопками “увеличить(открыть замок)” или  “уменьшить (закрыть замок)” устанавливаем необходимое значение. Если нужно сохранить его в EEPROM, то  нажимаем длительно кнопку “выбор” . Появится соответствующее сообщение и звуковой сигнал на 1 сек. Аналогично делается при настройке и сохранении  других параметров

Следующий  параметр - задержка на переход в ждущий режим при отсутствии манипуляций с приводом. Диапазон от 1 до 99 сек. Настройка аналогична.

 

 

 

Следующий  параметр – установка значения напряжения, при достижении которого в основном режиме появится сообщение о том, что нужна замена батареи.

Первая строка – текущее значение напряжения батареи. Вторая – напряжение порога срабатывания, доступно для изменения. При первом быстром нажатие кнопки “выбор” становятся доступными для изменения сотые доли вольта, при втором  десятые доли и единицы вольт, при третьем – выход из доступа для изменения. Установка значения и сохранение в памяти делается аналогично предыдущему параметру.

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

Установка значения и сохранение в памяти делается аналогично предыдущему параметру.



Следующий  параметр – установка значения тока,  с которым сравнивается ток потребления двигателя, и если он ниже, то будет сообщение об обрыве в цепи двигателя в основном режиме.  

Первая строка – ток потребления двигателя, который был зафиксирован при последнем открывании или закрывании замка. Вторая – ток порога срабатывания, доступен для изменения. При первом быстром нажатие кнопки “выбор” становятся доступным для изменения единицы мА, при втором  десятки и сотни мА, при третьем – выход из доступа для изменения. Установка значения и сохранение в памяти делается аналогично предыдущему параметру.

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

Установка значения и сохранение в памяти делается аналогично предыдущему параметру.



Следующий  параметр – установка времени (минут и секунд) 

При первом быстром нажатие кнопки “выбор” становятся доступными для изменения секунды, при втором  - минуты, при третьем – выход из доступа для изменения. Если выбраны секунды, то при нажатии “уменьшить (закрыть замок)” они сбрасываются в 00, а если нажать “увеличить(открыть замок)” , то помимо сброса секунд значение минут  увеличится на единицу. Минуты изменяются обычным инкрементом или декрементом.  Сохранение в памяти делается аналогично предыдущему параметру.

Следующий  параметр – установка часов и числа месяца

При первом быстром нажатие кнопки “выбор” становятся доступным для изменения значение часов, при втором  - числа, при третьем – выход из доступа для изменения. День недели определяется автоматически (зависит и от того, какой стоит месяц и год). Установка значения и сохранение в памяти делается аналогично предыдущему параметру.

  

Следующий  параметр – установка месяца и года

При первом быстром нажатие кнопки “выбор” становятся доступным для изменения месяц, при втором  - две правые цифры года, при третьем – выход из доступа для изменения. День недели определяется автоматически (зависит и от того, какое стоит число). Установка значения и сохранение в памяти делается аналогично предыдущему параметру.

  
Следующий  параметр – установка величины коррекции времени для более точного хода часов. (коррекция производится каждый час).  Диапазон от -9999ед. до +9999 ед. (1единица=3,90625 мсек.)  Чтобы определить величину коррекции необходимо выставить точное время и например через сутки или двое проверить отклонение показываемого времени. Затем пересчитать в условные единицы. Допустим часы убежали вперед за сутки на 12 сек., то величина коррекции = -12*1000/24/3,90625= -128ед. (время отнимается) Если часы отстали, то коррекция будет со знаком “+”(время добавляется). После этого для уточнения величины коррекции можно зафиксировать уход часов за неделю или за месяц, пересчитать и поправить значение коррекции. (в делителе уже будет количество часов за  контролируемый период времени, например неделя - это 168ч.)

При первом быстром нажатие кнопки “выбор” становятся доступным для изменения значения единиц и десятков (две правые цифры), при втором  - значения сотен и тысяч  (две левые), при третьем – выход из доступа для изменения. Вторая строка для справки. Установка значения и сохранение в памяти делается аналогично предыдущему параметру.


На этом функциональные возможности устройства исчерпаны.

    Программа написана на ассемблере в среде Vmlab 3.15. Также имеется проект для симуляции в протеусе. Прошивка flash  и EEPROM в архиве. 

Фьюз-биты устанавливаются так, как показано ниже

  Посмотреть видео работы привода можно здесь                                           


Файлы:
Схема, печатные платы в формате Sprint-Layout5 и JPG, исходники и прошивка, фьюзы.


Все вопросы в Форум.


ID: 1370

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

11