Много кнопок на 1 пин

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем grand, 30 апр 2015.

  1. grand

    grand Гик

    Тема не новая и уже ни один раз поднималась.
    Но я так для себя и не понял - возможно ли отслеживать именно нужные мне кнопки.

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

    И еще - возможно ли узнать какие кнопки зажаты одновременно, допустим их несколько разом держат!?
     
  2. Salk

    Salk Гик

    Полаю вот хорошая статья .
    Ответ: да возможно отслеживать нажатие нескольких кнопок на одном аналоговом пине Arduino. Резисторы разные.
    Собственно в статье указано только три кнопки, но можно добавить, увеличив сопротивление и, разумеется, не забыв дописать это в коде:
    Одновременное отслеживание нескольких нажатых кнопок по данной схеме не возможно, т.к. ток потечет через наименьшее сопротивление, а значит сработает только одна кнопка.
     
  3. ANV

    ANV Гуру

    Чтобы та схема начала отслеживать несколько нажатий, достаточно поставить резистор той кнопке, которая напрямую на питяние тянет
     
  4. Salk

    Salk Гик

    Не понял. Можно поставить счетчик, т.е. зажали одну кнопку и когда нажимаем вторую, то происходит какое-то другое действие. Но: при уже зажатой кнопке, отслеживание второй будет происходить только в том случае, если резистор этой кнопки будет меньше, если же он больше, то так и останется нажата только первая кнопка.
    Вот по схеме: если зажали третью кнопку (SA3 с резисторами R3, R4) и нажали любую другую кнопку, то мы ещё сможем об этом узнать. А вот если зажали сначала первую кнопку (SA1), а потом нажали вторую или третью, то узнать об этом мы не сможем.
    Зачем резистор?
     
  5. grand

    grand Гик

    Получается, что если Зажата кнопка с меньшим сопротивлением в контуре, то мы и не узнаем - нажато ли что-то еще в этот момент или нет... А мне именно нужно отследить, что бы из 10 кнопок была нажата моя нужная и никакие другие... если так, то делай то-то... А то можно все разом нажать и делай то-то..)
     
  6. ANV

    ANV Гуру

    По сути схема по ссылке - это R-2R ЦАП, а значит что любая комбинация кнопок имеет единственное соответствующее значение напряжения на выходе и возможно понять ЛЮБУЮ комбинацию нажатых кнопок.
    Но для этого в той схеме надо поставить резисторы во все кнопки
     
  7. grand

    grand Гик

    Но ведь если нажата SA1, то уже не важно что еще нажато ... будет определяться только SA1. Или не так?
     
  8. Salk

    Salk Гик

    Может ANV имел ввиду такую схему:
     

    Вложения:

  9. grand

    grand Гик

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

    Salk Гик

    Ой ой так тоже самое получается. Блин я не увидел резистор на земле.
     
  11. Salk

    Salk Гик

    Только поочередное нажатие...
    У меня больше нет идей :)
     
  12. grand

    grand Гик

    Ерунда какая-то(((( Неужели не понят что именно нажато?
     
  13. Salk

    Salk Гик

    Что нажато то можно, только поочередно. Сначала одну кнопку, отпустили, вторую кнопку, отпустили и т.д.
    А что Вам в итоге нужно делать, зачем Вам 10 кнопок? :)
     
  14. ANV

    ANV Гуру

    Да, такую.
    Люди, вы издеваетесь? У вас резистивный делитель. Сверху 500 Ом, снизу если нажата одна кнопка, 1, 2 или 3 килоома
    Если несколько кнопок, то:
    1-2 666 Ом
    2-3 1200 Ом
    1-3 750 Ом
    1-2-3 545 Ом
    КАЖДОЙ КОМБИНАЦИИ - СВОЕ СОПРОТИВЛЕНИЕ
    Поэтому можно понять какая кнопка или комбинация.
     
    Megakoteyka и grand нравится это.
  15. Salk

    Salk Гик

    Верно. И что меня смутило? Хм.
    С последующим нажатием, резисторы же включаются параллельно. Меняя тем самым выходное напряжение.
     
    grand нравится это.
  16. deftvk

    deftvk Нуб