Для открытия этого замка нужно повернуть ручку энкодера на определенное количество шагов по часовой стрелке, потом на определенное количество шагов против часовой стрелки и еще раз повернуть по часовой стрелке, реле включится и будет во включенном состоянии пока не будет повернут энкодер по часовой или против часовой стрелки. Устройство собрано на микроконтроллере ATtiny2313 фирмы Atmel, который тактируется от внутреннего генератора частотой 128кГц, система слежения за питанием отключена. Количество шагов отображается на двухразрядном семисегментном индикаторе с общим анодом. В режиме ожидания индикатор не светится, а загорается как только будет повернут энкодер. Энкодер используется любой без кнопки.

Кодовый замок с энкодером на ATtiny2313 - схема

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

Программирование нового кода

Код состоит из трех частей по два разряда, формата ХХ-ХХ-ХХ. Чтобы запрограммировать код, который будет хранится в энергонезависимой памяти, нужно:

1. Повернуть ручку энкодера по часовой стрелке и выставить первую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 1 раз;
2. Повернуть ручку энкодера против часовой стрелки и выставить вторую комбинацию кода, нажать на кнопку SB1, индикатор мигнет 2 раза;
3. Повернуть ручку энкодера по часовой стрелке и выставить третью комбинацию кода, нажать на кнопку SB1, индикатор мигнет 3 раза;
4. Устройство готово к работе с новым кодом.

Источник: журнал Elektor


Архив для статьи " Кодовый замок с энкодером на Attiny2313"
Описание: Файл прошивки микроконтроллера
Размер файла: 1.82 KB Количество загрузок: 4 826 Скачать

Комментарии  

-1 #61 Kirill 12.05.2018 02:16
Обновите архив для скачивания
Сообщить модератору
0 #62 AntonChip 12.05.2018 20:30
Цитирую Kirill:
Обновите архив для скачивания

сейчас скачивал папка серво в архиве
Сообщить модератору
0 #63 Kirill 13.05.2018 07:50
сейчас скачивал папка серво в архиве ОТСУТСТВУЕТ! В чём может быть причина?
Сообщить модератору
0 #64 AntonChip 13.05.2018 16:16
Цитирую Kirill:
сейчас скачивал папка серво в архиве ОТСУТСТВУЕТ! В чём может быть причина?

Очистите кеш браузера, скачайте заново, могу скинуть вам на почту файлы
Сообщить модератору
0 #65 Kirill 15.05.2018 02:37
Доброго времени суток. Собрал в железе с SG90. Поведение следующее: после введения правильного кода привод отрабатывает нормально, после закрытия серво отрабатывает и у МК "уплывают мозги" пока не сбросишь питание. На энкодер не реагирует. И ещё, когда подключен сервопривод к 15 ноге МК кнопка запоминания кода не срабатывает, МК тупо зависает пока не снимешь питание.
Сообщить модератору
0 #66 Kirill 15.05.2018 11:43
Проблема с зависанием решилась включением внешнего кварца на 4МГц и установкой фьюз
HB=DF, LB=E6
Сообщить модератору
-1 #67 Phoenix 31.05.2018 12:16
Подскажите пожалуйста, каким образом можно изменить код, чтобы данное устройство работало от 1 МГц
Сообщить модератору
0 #68 AntonChip 31.05.2018 12:35
Цитирую Phoenix:
Подскажите пожалуйста, каким образом можно изменить код, чтобы данное устройство работало от 1 МГц

можно просто скомпилировать проект по частоту 1Мгц, схема должна работать без изменений в коде
Сообщить модератору
0 #69 Phoenix 01.06.2018 00:02
Спасибо AntonChip! Подскажите еще пожалуйста каким образом дребезг контактов устраняется в коде? Ведь нет никаких delay-ев в обработчиках кнопки и энкодера :o кроме вот этой страшной строчки Код:EIFR = 1<<PCIF; // clear any pending pin change interrupts (contact debouce)
Сообщить модератору
0 #70 AntonChip 01.06.2018 09:55
Цитирую Phoenix:
Спасибо AntonChip! Подскажите еще пожалуйста каким образом дребезг контактов устраняется в коде? Ведь нет никаких delay-ев в обработчиках кнопки и энкодера :o кроме вот этой страшной строчки Код:EIFR = 1<<PCIF; // clear any pending pin change interrupts (contact debouce)

Обработка нажатия кнопки происходит по внешнему прерыванию, флаг PCIF указывает на то что прерывание выполняется, этой строчкой принудительно сбрасываем этот флаг тем самым говоря контроллеру что обработка кода прошла и выходим из обработчика прерываний, это можно назвать защитой от дребезга
Сообщить модератору
0 #71 алей 20.03.2019 15:46
подскажите пожалуйста кто уже сделал этот кодовый замок на тини но с дудкой. Может схему меняли или прошивку, отпишите почту или ссылку ВК инсту, у меня нечего не выходит что бы я не делал, я все коменты учел но все равно не выходит. Хелп, очень нада
Сообщить модератору
0 #72 serz1985 23.03.2019 08:29
Здравствуйте решил собрать кодовый замок можно спросить скинуть печатную плату в формате lay заранее спасибо
Сообщить модератору
0 #73 AntonChip 23.03.2019 21:50
Цитирую serz1985:
Здравствуйте решил собрать кодовый замок можно спросить скинуть печатную плату в формате lay заранее спасибо

В архиве печатка в PDF формате
Сообщить модератору
0 #74 vicfamily 13.04.2019 17:18
Здравствуйте.
Вопрос к Автору.
Не стабильно работает прошивка "импульс ОА" , при программировани и кода с переходом через ноль , почти всегда не открывает, еще бы скидывать показания на ноль , что бы не показывать последний код.
Сообщить модератору
+1 #75 highly_intelligent 02.12.2020 01:34
Добрый вечер, а не могли бы подсказать размер платы?
Сообщить модератору
0 #76 Vitos 30.04.2021 22:42
Автор если тема жива проверь импульсный режим после компиляции в  AVRStudio4 на задержку включения к примеру 1 сек или другое значения. При правильно введённом  пароли на PD6 появляется 1 по истечению времени состояния PD6 не меняется, когда  повернёшь ручку энкодера PD6=0, почему так? 
Сообщить модератору
0 #77 AntonChip 01.05.2021 19:21
Проверил данный момент, все работает, что 1 сек. что и 10 сек.
Сообщить модератору
0 #78 Vitos 01.05.2021 23:05
Спасибо буду разбираться что не так
Сообщить модератору
0 #79 Vitos 07.05.2021 00:16
Связка AvrStudio4+tool chain решил мой вопрос почему-то с WinAVR компилирует без ошибок но в железе не работает как надо, поставил 0.5 сек на открытие замка работает замечательно, спасибо автор за труды.
Сообщить модератору