Тема не новая и уже ни один раз поднималась. Но я так для себя и не понял - возможно ли отслеживать именно нужные мне кнопки. Суть вопроса - есть, скажем, 10 кнопок. Сейчас говорим о подключении их к аналоговому входу. Необходимо точно понять, что нажата какая-то из кнопок (именно одна), а не несколько. Для каждой кнопки нужны свои (разные) резисторы или номинал у всех может быть одинаковый (а при суммарном сопротивлении уже определим кнопку). И какие должны быть номиналы? И еще - возможно ли узнать какие кнопки зажаты одновременно, допустим их несколько разом держат!?
Полаю вот хорошая статья . Ответ: да возможно отслеживать нажатие нескольких кнопок на одном аналоговом пине Arduino. Резисторы разные. Собственно в статье указано только три кнопки, но можно добавить, увеличив сопротивление и, разумеется, не забыв дописать это в коде: Одновременное отслеживание нескольких нажатых кнопок по данной схеме не возможно, т.к. ток потечет через наименьшее сопротивление, а значит сработает только одна кнопка.
Чтобы та схема начала отслеживать несколько нажатий, достаточно поставить резистор той кнопке, которая напрямую на питяние тянет
Не понял. Можно поставить счетчик, т.е. зажали одну кнопку и когда нажимаем вторую, то происходит какое-то другое действие. Но: при уже зажатой кнопке, отслеживание второй будет происходить только в том случае, если резистор этой кнопки будет меньше, если же он больше, то так и останется нажата только первая кнопка. Вот по схеме: если зажали третью кнопку (SA3 с резисторами R3, R4) и нажали любую другую кнопку, то мы ещё сможем об этом узнать. А вот если зажали сначала первую кнопку (SA1), а потом нажали вторую или третью, то узнать об этом мы не сможем. Зачем резистор?
Получается, что если Зажата кнопка с меньшим сопротивлением в контуре, то мы и не узнаем - нажато ли что-то еще в этот момент или нет... А мне именно нужно отследить, что бы из 10 кнопок была нажата моя нужная и никакие другие... если так, то делай то-то... А то можно все разом нажать и делай то-то..)
По сути схема по ссылке - это R-2R ЦАП, а значит что любая комбинация кнопок имеет единственное соответствующее значение напряжения на выходе и возможно понять ЛЮБУЮ комбинацию нажатых кнопок. Но для этого в той схеме надо поставить резисторы во все кнопки
Но ведь если нажата SA1, то уже не важно что еще нажато ... будет определяться только SA1. Или не так?
А в этой схеме, разве, если S1 зажата, то не все ли равно на остальные кнопки? Опять же будет определяться лишь S1.
Что нажато то можно, только поочередно. Сначала одну кнопку, отпустили, вторую кнопку, отпустили и т.д. А что Вам в итоге нужно делать, зачем Вам 10 кнопок?
Да, такую. Люди, вы издеваетесь? У вас резистивный делитель. Сверху 500 Ом, снизу если нажата одна кнопка, 1, 2 или 3 килоома Если несколько кнопок, то: 1-2 666 Ом 2-3 1200 Ом 1-3 750 Ом 1-2-3 545 Ом КАЖДОЙ КОМБИНАЦИИ - СВОЕ СОПРОТИВЛЕНИЕ Поэтому можно понять какая кнопка или комбинация.
Верно. И что меня смутило? Хм. С последующим нажатием, резисторы же включаются параллельно. Меняя тем самым выходное напряжение.
Вот в этой статье все подробно написано - http://codius.ru/articles/221 - как, что, к чему подключать, какую схему использовать, как подбирать номиналы и т.д.