Свежие обсуждения
Микроконтроллеры

Подключить кнопки к МК

1 2 3

Отличная идея. На глаза никогда не попадалась.
Можете патентовать

 

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

 

Кнопки кнопкам рознь.
Более серъёзный недостаток - неоднозначность определения одновременного нажатия более одной кнопки.

 

Это всё экономия в ущерб надежности.

 

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

Однако очень интересно! Клавиатура на 16княпок - двухполюсник

Предполагаю необходимость периодической перекалибровки МК под реальное состояние контактов.

 

Да, про утечку я забыл, бывает и такое, тогда работа устройства выглядит, вроде в нем завелся барабашка, что-то самопроизвольно включается, переключается, пользоваться невозможно.

 

Не так всё плохо...

Исходную схему я даже не обсуждаю - не нравится большая нелинейность, особенно при использовании полной матрицы.
Возьмём предоженный вариант с источником тока.

При указанных номиналах и токе 0,3мА получаем шаг 0,3В. Кнопка может иметь либо нулевое сопротивление (в идеале), либо повышенное.
По этому примем допустимое увеличение напряжения при увеличении сопротивления кнопки, например, половину шкалы - 0...+0,15В. На это же значение настраивается и логика отработки нажатий в программе.
То есть, кнопка считается нажатой, если соответствующее ей напряжение лежит в диапазоне 0,3...0,45В.
От 0,45В до следующей кнопки, с напряжением на 0,3В больше, оставляем защитный промежуток. Следующая кнопка бужет отрабатываться только при напряжении 0,6...0,75В и т.д.

При токе 0,3мА получается, что сопротивление кнопки не должно превышать 0,15В/0,3мА=0,5КОм.
То есть, схема будет работоспособна при повышенном до 500Ом сопротивлении кнопки.

Не ужели мало?

По личному опыту ремонта ноутбуков и мониторов, нажатия плохо отрабатываются уже при сопротивлении кнопок в десятки Ом. При сопротивлении сотню-другу - кнопка вообще не отрабатывается. Её приходится либо чистить, либо менять.

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

Например, при увеличении сопротивления резисторов в 10 раз (4КОм > 40КОм, 1КОм > 10КОм) и уменьшении тока в 10 раз (0,3мА > 0,03мА) получаем такой же диапазон выходных напряжений 0,3В...4,8В при прежнем шаге 0,3В, но с допустимым увеличением сопротивления копок до 5КОм. То есть, тоже в 10 раз.

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

P.S.
Кстати, при таком приличном допуске, похоже, нет необходимости даже в применении прецизионных резисторов в схеме. Допуска 5% вполне хватит. Это уменьшит допустимый порог сопротивления кнопки с 500Ом до 450Ом...

 

Tadas: Более серъёзный недостаток - неоднозначность определения одновременного нажатия более одной кнопки.

Все подобные варианты страдают этим.

Достоинства же варианта - применение стандартной матрицы кнопок и всего лишь одного аналогового порта МК - с лихвой перекрывают указанный недостаток при применении в любительских условиях.

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

 

Cheeeper: Предполагаю необходимость периодической перекалибровки МК под реальное состояние контактов.

Кстати вариант! Нужно подумать...

 

-