Схема и описание кодового замка

Вашему вниманию предлагается кодовый замок на основе контроллера Arduino и матричной клавиатуры 4x4. В качестве исполнительного механизма использован микросервопривод. Несмотря на то, что в Интернете много различных схем, не одна из найденных мне не подошла. Пришлось самому придумать.

Отличительные особенности

  • Возможность смены кода доступа с клавиатуры (без перепрошивки)
  • Возможность подстройки угла поворота сервопривода
  • Звуковое сопровождение нажатия клавишь и основных событий
  • Индикация открытия/закрытия
  • Индикация вводимых цифр
  • Индикация угла поворота сервопривода (в режиме подстройки)
  • Защита от отключение питания (код хранится в энергонезависимой памяти)
  • Звук отключается (настройка звука также хранится в энергонезависимой памяти)
  • Отключение сервопривода в режиме ожидания (для экономии энергии)
  • Краткое описание работы

    Исполнительный механизм может быть адаптирован под конкретную ситуацию. В случае сервопривода, вероятно придется настроить опытным путем угол поворота (смотри комментарии в коде). При первом включени автоматически создается код "0000". При желании количество символов в коде тоже можно поменять. Вначале проиграет небольшая мелодия и навремя загорятся оба светодиода. Наберите код и потом нажмите клавишу [#]. На паузы между нуборами цифр дается не более 5 секунд. При неправильном наборе выдаст звуковой сигнал. В случае правильного набора, состояние замка изменится (если было закрыто, то он откроется, а если открыто - закроется. При открытии, на пару секунд загорится зеленый светодиод. При закрытии - красный. Если звук при нажатии раздрожает - нажмите [*]. Если нужно сного включить звук - нажмите звездочку еще раз. Если нужно сменить код: после того как правильно наберете код и нажмете [#] сразу нажмите еще и [D]. После этого нужно набрать новый код (также завершить [#]), а потом еще раз также набрать новый код и опять [#]. В случае правильного повторение код изменится на новый (и запомнится в энергонезависимой памяти). Код можно наблюдать через "монитор порта" или через дисплей (его установка не обязательна). Если вывод в монитор порта не нужен - можете убрать из кода все строки с "series".

    Для подстройки угла поворота сервопривода в открытом положении, сразу после правильного ввода кода нужно нажать кнопку [C]. Затем для поворота по часовой стрелке нажимать [B], а против [A]. Чтобы сохранить новое положение нужно нажать [#]. При этом между нажатиями не должно быть промежутков более 5 секунд. Аналогично для подстройки угла сервопривода в закрытом положении замка необходимо нажать [C] сразу после закрытия замка.

    Используемые компоненты

  • Контроллер Arduino pro mini (или аналогичный)
  • Матричная клавиатура 4x4
  • Микросервопривод (FS90 или аналогичный)
  • Биполярный транзистро (BC337 или аналогичный)
  • Дисплей базе драйвера TM1637
  • Светодиоды (по желанию)
  • Пьезо-пищалка (HPA17A или аналогичная)
  • Несколько рзисторов (номиналы на схеме)
  • Файлы

  • Схема в формате DipTrace
  • Код программы
  • Стандартные библиотеки
  • Библиотека для TM1637
  • Полезные ссылкки

  • Программа DipTrace
  • Arduino IDE
  • Листинг программы

    Ссылки на некоторые другие кодовые замки в сети

  • Как сделать кодовый замок на Arduino
  • Кодовой замок на Ардуино: подключение

  • © 2017 Roman Kotelnikov