Проект из серии "Максимум от Тини" - attiny45

8-битные микроконтроллеры AVR (AT90, ATtiny, ATmega) от Atmel (в настоящий момент принадлежит Microchip)

Moderator: Shaos

kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

Доброго времени суток.
Данный проект начал 2013, а завершил в феврале 2019.
Желание проверить идеи, навешать функционал на тини по максимуму и добиться работоспособности от "таракана".

Как вариант - 3 Канальная тревожная сигнализация ATtiny45.

Реализованный функционал.

Постановка/снятие тревожной сигнализации - электронный ключ DS1990A.
Программирование через перемычки JP1,JP2,JP3 и кнопки "SET".

CMD1 - JP1 + Key "SET" - Добавление новых ключей (max 10).
CMD2 - JP2 + Key "SET" - Время включения РЕЛЕ оповещения, приращение по 1 сек.
CMD3 - JP3 + Key "SET" - Время задержки РЕЛЕ оповещения Вход/Выход LINE1, приращение по 1 сек.
CMD4 - JP1 + JP2 + Key "SET" - Режим работы РЕЛЕ оповещения - Одновибраторб на время включения.
CMD5 - JP2 + JP3 + Key "SET" - Режим работы РЕЛЕ оповещения - Меандр, на время включения.
CMD6 - JP1 + JP3 + Key "SET" - Резерв.
CMD7 - JP1 + Jp2 + JP3 + Key "SET" - Стирание всех ключей, время включения РЕЛЕ=5сек.задержка Вход/выход 15 сек.

Перемычки Jp1,Jp2,Jp3 - логика работы входных линий
JP4 - "Открыт" - (LINE1 NO) нормально разомкнут, "Закрыт" - (LINE1 NC) нормально замкнут.
JP5 - "Открыт" - (LINE2 NO) нормально разомкнут, "Закрыт" - (LINE2 NC) нормально замкнут.
JP6 - "Открыт" - (LINE3 NO) нормально разомкнут, "Закрыт" - (LINE3 NC) нормально замкнут.
;
Светодиоды R, G, Y - отражают состояние тревожной сигнализации.
Число-импульсным мигание (одно две и три вспышки)
R - тревога по линиям 1,2,3
G - готовность по линиям 1,2,3
Y - неисправность по линиям 1,2,3
Звуковое "Пьезо"
Реле оповещения.


Исходники, схема и прошивка.
You do not have the required permissions to view the files attached to this post.
Last edited by kuber on 14 Mar 2019 01:50, edited 2 times in total.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

Есть что усовершенствовать в вашей схеме, если это интересно конечно. :wink:

Шунтирование аналоговых входов светодиодом - МСМ не правильно, скорее всего будут искажения замеров. Rвх > 10 Мом.

В принципе, количество занятых ног можно еще сократить, на 2 как минимум.

Также не понятно как происходит индикация программирования. То есть перемычки поставил, кнопку нажал, а как увидеть что именно воспринял контроллер ?
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

Доброго времени суток.

Значения с АЦП я усредняю, потом каждому режиму применяю диапазон значений АЦП.

Резисторный делитель на входах АЦП с стабилизатором в 3.3 вольта ограничивает напряжение в ~1.7 вольт, для светодиода это маловато чтобы он открылся.

По поводу программирования "перемычки поставил, кнопку нажал" по вспышкам соответствующих режиму программирования светодиодов и бипером.
Временные параметры "Время работы Реле и задержка на Вход/Выход" при программировании начинает отсчёт значений с 1, при удерживании кнопки идёт приращение (отслеживается свето/звуковыми сигналами) при отпускании кнопки в памяти фиксируется соответсвующее значение.
При занесении ключей в память - один звуковой сигнал, ключ записан, два ключ уже в памяти.
Интересно было бы посмотреть как можно сократить данную схему на 2 ножки ,с сохранением функционала.
В исходниках есть скудные коменты.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

= удалено =
Last edited by Konstantin18 on 13 Mar 2019 08:42, edited 1 time in total.
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

Konstantin18 Что то мне не очень понятно с Вашей идеей.
В моей схеме порт PB5 используется для управления считыванием перемычек и переключателей программирования, если PB5 = 1 то считывается тремя входами АЦП значение соответсвующее значением перемычек(No/Nc), если PB5 = 0 считывается тремя входами АЦП значение соответсвующее значением переключателей программирования, при PB5 = Z состояния использую для оцифровки входных линий и управлений светодиодами RGY.

Если можно рисунок блок-схемку.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

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

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

ПС. По экономии ног навскидку:
Можно вообще исключить JP4 - JP6 чисто программным решением.
Режим JP1 + JP3 + KEY - резерв использовать для настройки шлейфов NO / NC. То есть входы устанавливаются в НЕтревожное состояние, а затем выбирается этот режим. Данные состояния входов запоминаются как НОРМАЛЬНЫЕ.
Если после этого кнопку KEY подключить к PB0, то PB5 - освобождается. :wink:
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

В принципе переключатели и кнопку "SET" можно посадить на землю, в первой версии так и было.
Получается что в режиме "охрана" переключатели программирования при нажатии кнопки "SET" нарушают работу системы.
Для этого я с помощью PB5 в режиме "охрана" переводу порт PB5 в Z состояние, тем самым отключаю переключатели и перемычки от схемы.
Если исключить коллизии то без PB5 можно использовать .

Использовать для управления PB0 вместо PB5 не получится, у меня на PB0 кроме РЕЛЕ подключен Пьезик . Частоту формирую таймером "OC0A".
Длительность звучания Пьезика выверена что бы реле не успевало срабатывать.
Логику входных линий поменять используя резервный режим JP1 + JP3 + KEY можно.
Например: Раз нажал включил инверсию ВСЕХ входных линий, ещо раз нажал поменял на противоположную опять же всех. Теряется гибкость.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

Да не теряется гибкость.
Сначала на линиях выставляем ноли или единицы.
Можно даже вашими джамперами.
На каждой линии НУЖНОЕ состояние, которое соответствует отсутствию ТРЕВОГИ.
Потом по нажатию кнопки запоминается состояние всех трех линий как нормальное
и изменение этих состояний будет вызывать тревогу.
То есть версий для трех линий будет ровно восемь. :ebiggrin:

" Для этого я с помощью PB5 в режиме "охрана" переводу порт PB5 в Z состояние, тем самым отключаю переключатели и перемычки от схемы. "

PB4 - JP2 - диод - КНОПКА - диод - JP4 - PB2
если U PB4 > 0,4V + U PB2 - то по цепи течет ток ....

переключатели и перемычки от схемы НЕ ОТКЛЮЧАЮТСЯ.

ВОПРОС: не могу понять зачем в эмиттере ВС846 резисторы и конденсатор на плюс ???
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

Считывание в режиме программирования всех логических уровней невозможно из за того что переключатели (JP1, JP3) шунтируют два входа ADC1, ADC3.

Про резисторы и конденсатор в эмитере транзистора ВС846.
Конденсатор накапливает энергию с рабочим напряжением срабатывания реле - 12вольт, а резисторы ограничивают ток , достаточный для удержания РЕЛЕ (если паспортные РЕЛЕ неизвестны, подобрать ограничивающие резисторы.
Такой метод сильно экономит энергопотребление системой.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

конденсатор подключенный к ЭМИТТЕРУ и плюсу питания .
Как он может влиять на срабатывание реле ?
Когда транзистор закрыт, конденсатор полностью заряжен.
А что с ним происходит когда транзистор открывается ?

я про емкость С 107.
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Re: Проект из серии "Максимум от Тини" - attiny45

Post by jdigreze »

Konstantin18 wrote: Потом по нажатию кнопки запоминается состояние всех трех линий как нормальное
и изменение этих состояний будет вызывать тревогу.
На мой скромный взгляд - очень спорное решение. В момент программирования шлейф может находиться в "тревоге", а потом будешь бегать и искать, почему не ставится на охрану. А если ещё и извещатель какой-нибудь глючит - вообще труба, хрен найдёшь причину нестабильной работы. :twisted:
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

В режиме Включения РЕЛЕ (транзистор открыт) накопленная энергия напряжением 12 вольт подаётся на реле,
а когда накопленная энергия в конденсаторе кончится, то ток реле будут ограничивать резисторы.
Емкость конденсатора у меня 100мкф 25 вольт, вполне хватает на срабатывание реле.
Резисторы подбирают по чуть больше чем минимальный ток удержания реле.

Джамперы JP4,JP5,JP6 определяющие логику входных линий можно убрать из схемы,
В дополнение к написанному выше Konstantin18 нужно добавить, что программировать логику только при отключённых от шлейфов линиях,(Снято с охраны) с установленными резисторами, исходя из того что все линии NO. Результат заносится в EEprom тини, и используется уже от туда.
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

Все таки я считаю, что рациональнее было бы убрать и резисторы и конденсатор, а
изменения в питании реле реализовать параметрами ШИМа.
Вначале больше +Duty ( 100 миллисекунд), потом поменьше...

Ну и РВ5 освободить также можно.
Сделать прерывание по таймеру и в нем реализовать и ШИМ и опрос кнопки.

ПС. Я не цепляюсь. Вы же сами назвали тему "МАКСИМУМ от Тини" :ebiggrin:
Konstantin18
Maniac
Posts: 325
Joined: 15 Jan 2019 15:48
Location: Украина, Луганская обл.

Re: Проект из серии "Максимум от Тини" - attiny45

Post by Konstantin18 »

jdigreze wrote:На мой скромный взгляд - очень спорное решение. В момент программирования шлейф может находиться в "тревоге", а потом будешь бегать и искать, почему не ставится на охрану. А если ещё и извещатель какой-нибудь глючит - вообще труба, хрен найдёшь причину нестабильной работы. :twisted:
На момент программирования шлейфы гарантировано выставляются в не тревожное состояние, например перемычками.
kuber
Fanat
Posts: 85
Joined: 20 Sep 2015 02:50

Re: Проект из серии "Максимум от Тини" - attiny45

Post by kuber »

Шим для реле хорошая идея, Но как быть с Бипером, так мы его теряем.

В первых версия у меня переключатели и кнопка "SET" сидела на земле и не было JP4,JP5,JP6 определяющие логику входных линий. PB5 я использовал как тестовый вывод UART для отладки.
Всё прекрасно работало.
Не нравилось только то что если система находится на охране нажимая на "SET" если переключатели не "OFF", вызывалась тревога по не исправности шлейфа.