Фиксация состояния на 4 выходах

mate20
Offline
Зарегистрирован: 20.05.2019

Нужно что-бы ардуина при любых обстоятельствах (в случае зависания, к примеру, во время перезагрузки) могла знать состояния 4-х кнопок.

К примеру сработала кнопка On, ардуина считывает это состояние и "выключает эту кнопку кнопкой Off", т.е. вместо одной кнопки будет пин ардуино. Как-то так.

Суть вопроса в том, что мне нужно контролировать 4 кнопки, а ставить четыре микросхемы 555 и обвязку к ним, много места. Как это организовать иначе? При этом сколько-бы раз кнопка On не срабатывала, состояние на выходе 3 не должно меняться.

И еще вопрос по этой схеме, ведь цепь из С2 и R2 должны сбросить состояние выхода 3 при включении на ноль, верно? Этого не происходит.

mate20
Offline
Зарегистрирован: 20.05.2019

или вот вариант на микросхеме 4013, есть вариант на 4 триггера? (зарубежный)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

это называется реле с самоблокировой, при обесточивании - отключается, а надо чтобы не отключалось чтоли?

mate20
Offline
Зарегистрирован: 20.05.2019

При нажатии кнопки On на пине ардуино будет 5 Вольт, до тех пор, пока не нажать кнопку Off. Соответственно если ардуина будет перезагружаться и в этот момент сработает кнопка On, то после перезагрузки она считает состояние с пина/

mate20
Offline
Зарегистрирован: 20.05.2019

ua6em пишет:

это называется реле с самоблокировой, при обесточивании - отключается, а надо чтобы не отключалось чтоли?

Соответственно что-бы не выключалось,пока ардуина не отключит.

mate20
Offline
Зарегистрирован: 20.05.2019

В принципе, схема на 4013 меня устраивает, места занимает не много.

Только на выходе я получаю 1 Вольт, мало для цифрового пина ардуино. Какой поставить транзистор?

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Записывайте значение пинов в EEPROM при изменении их состояния и при загрузке восстанавливайте оттуда же. И будет Вам счастье.

mate20
Offline
Зарегистрирован: 20.05.2019

mykaida пишет:

Запишите значение пинов в EEPROM и при загрузке восстанавливайте оттуда же. И будет Вам счастье.

И что э то даст? Записал что на пине 0. Перезагрузка. В момент перезагрузки была нажата и отпущена кнопка. При загрузке на пине 0.

 

mate20
Offline
Зарегистрирован: 20.05.2019

https://www.chipdip.ru/product/bss84-nxp

bss84 подойдёт?

 

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

mate20 пишет:

И что э то даст? Записал что на пине 0. Перезагрузка. В момент перезагрузки была нажата и отпущена кнопка. При загрузке на пине 0.

 

Вы не успеете выполнить этих действий. Но можно ускорьтся  с помощью STM32, например. Или сделать бесперебойное питание. Да вариантов - как грязи.

ТЗ хреновое просто.

mate20
Offline
Зарегистрирован: 20.05.2019

mykaida пишет:

mate20 пишет:

И что э то даст? Записал что на пине 0. Перезагрузка. В момент перезагрузки была нажата и отпущена кнопка. При загрузке на пине 0.

 

Вы не успеете выполнить этих действий. Но можно ускорьтся  с помощью STM32, например. Или сделать бесперебойное питание. Да вариантов - как грязи.

ТЗ хреновое просто.

Конкретно Atmega328, обязательная фиксация состояния до чтения и сброса.

sadman41
Offline
Зарегистрирован: 19.10.2016

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

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

mate20 пишет:

Конкретно Atmega328, обязательная фиксация состояния до ... сброса.

Т.е. Вы знаете, когда будет сброс? Бред. Не сбрасывайте.

mate20
Offline
Зарегистрирован: 20.05.2019

sadman41 пишет:

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

С механической фиксацией это само собой.

При отсутствии питания работать вся схема не будет, вопрос только в отслеживании состояния кнопки если контроллер зависнет, и пока он будет перезагружаться произойдёт нажатие кнопки.

Может я плохо объяснил суть.

При нажатии на 1 кнопку на входе ардуины будет 5 Вольт. Ардуина считала это состояние и "нажала кнопку 2", т.е. сбросила состояние на входе в ноль. Соответственно если МК зависнет и произойдёт сработка кнопки, при загрузке контроллер считает состояние 5 Вольт выполнит нужное действие и сбросит вход в ноль и т.д. может конечно и глупо...

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

mate20 пишет:

Соответственно если МК зависнет и произойдёт сработка кнопки, при загрузке контроллер считает состояние 5 Вольт выполнит нужное действие и сбросит вход в ноль и т.д. может конечно и глупо...

Зависание МК - это форсмажор и связан, обычно, на 99,9999% с кривыми руками программиста.

GVS
GVS аватар
Offline
Зарегистрирован: 26.04.2018

А вот я так и не понял, чего вы пытаетесь добится???? Отслеживания изменения состояния кнопки в момент когда вся система не работает??? Т.е. грубо говоря вы хотите, чтобы во время перегрузки компа можно было письмо бабушке на клавиатуре настучать и после загрузки это письмо у вас было готово к отправке???

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