|
Мультиплексирование линий МК (кнопки) |
|
|
|
Nov 10 2008, 19:47
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(DMD @ Nov 11 2008, 01:15)  Мне надо на 4 входные линии повесить 8 кнопок... Как это можно сделать? Никто не поделится схемой? Вариант 1: незаморачиваться. на имеющиеся ноги микроконтроллера навесить регистр 74xxx165 или 166 (параллельная загрузка-последовательный сдвиг). Вариант 2: для любителей поизвращаться. На все четыре ноги навешиваем резисторы, соединенные с землей, номиналом 300-500 кОм. Они будут осуществлять поддтяжку к земле. (Потом поймете для чего это надо. А пока читайте далее) Затем разделяем наши четыре ноги на две группы (2 + 2). Одна группа сначала будет выходами, вторая группа -- входами. Входы-выходы образуют традиционную матрицу из четырех позиций (2 * 2), в каждой позиции которой установлена кнопочка с диодом (последовательно). Это как обычно. Отличие от обыной заключается в том, что параллельно этоим кнопкам с диодом устанавливаются еще четыре кнопки, но с диодом в обратную сторону. Процесс сканирования клавы происходит в две фазы. Сначала сканируем нулем как обычно, входы поддтягиваем к питанию с помощью штатной подтяжки портов (PDIR = 1, PORT = 1). Во второй фазе поддтяжка будет осуществляться указанными выше резисторами, а сканирование будет идти единицей. Сразу скажу, я до такого изврата доходил чисто теоретически. Практически, гы-гы, -- Бог миловал!
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Nov 10 2008, 20:00
|
Знающий
   
Группа: Свой
Сообщений: 820
Регистрация: 12-05-08
Из: Israel
Пользователь №: 37 440

|
Цитата(DMD @ Nov 10 2008, 23:15)  Мне надо на 4 входные линии повесить 8 кнопок... Как это можно сделать? Никто не поделится схемой? Вы должны подавать по 3-м линиям адрес в двоичном коде, а с провода 'TO CONTROLLER' считывать данные. Всего получаются 4 линии.
Эскизы прикрепленных изображений
|
|
|
|
|
Nov 10 2008, 20:24
|

Частый гость
 
Группа: Свой
Сообщений: 120
Регистрация: 19-02-08
Пользователь №: 35 166

|
 С подвариантами?? - это жесть! А попроще нету ничего? Нет, особых требований нет, кроме того, что все кнопки могут быть нажаты одновременно (они с фиксацией). С регистром - красиво, я подумаю... А ещё вопрос можно? В даташитах видел, что к каждой кнопке в параллель нужно ставить кондер в 100 нанофарад и подтягивать вход к 5В через резистор 4.7К. Ну про кондер понятно - для устранения дребезга. А вот внешняя подтяжка нужна, если я ставлю внутреннюю? Я смотрю, что в схемах, которые лежат в сети подтяжки нет в основном. И ещё, сразу уж задам: если я использую стабилизатор напряжения (КРЕН), то нужно ставить катушки и 2 кондера (так в даташите) на вход питания МК? Или КРЕН и так неплохо работает? Кондеры у кренки есть, все как положено. Спасибо. Цитата(zhevak @ Nov 10 2008, 22:47)  Вариант 1: незаморачиваться. на имеющиеся ноги микроконтроллера навесить регистр 74xxx165 или 166 (параллельная загрузка-последовательный сдвиг). А есть русские аналоги? Или хоть, пожалуйста, напишите полное название... Я поищу информацию (никогда не работал с такими). Спасибо.
--------------------
Все будет хорошо! Я проверял!
|
|
|
|
|
Nov 10 2008, 20:32
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(DMD @ Nov 10 2008, 23:17)  Нет, особых требований нет, кроме того, что все кнопки могут быть нажаты одновременно (они с фиксацией). Тогда, если делать матрицей, потребуются развязывающие диоды. В этом случае с регистром получится проще. А можно поставить аналоговый мультиплексер 4051, четырех линий (три на адрес, одна на ввод) хватит. Цитата В даташитах видел, что к каждой кнопке в параллель нужно ставить кондер в 100 нанофарад и подтягивать вход к 5В через резистор 4.7К. Ну про кондер понятно - для устранения дребезга. 100 nF - многовато, если кнопка с малым сопротивлением контактов, то, сильно подозреваю, ресурс уменьшится из-за обгорания. И вообще, бороться с дребезгом внешими "довесками" - это неправильно, если уж используется микроконтроллер. Хотя конденсатор повесить все равно полезно - хотя бы для борьбы с внешними ВЧ-наводками. Я типично ставлю 1 nF. Цитата А вот внешняя подтяжка нужна, если я ставлю внутреннюю? Но надо помнить, что внутренняя довольно высокоомная. И, кстати, к микротокам многие кнопки тоже относятся не очень хорошо - нет "самоочистки" контактов (это тоже повод использовать конденсатор параллельно). Цитата Или КРЕН и так неплохо работает? Кондеры у кренки есть, все как положено. Дроссель нужен для фильтрации помех. Определяется условиями эксплуатации устройства и требованиям к уровню помех на шинах питания. Собственно стабилизаторам 78xx дроссель не нужен...
|
|
|
|
|
Nov 10 2008, 21:27
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(DMD @ Nov 11 2008, 00:06)  А российский аналог 74HC4051 не подскажете? 1526КП2? 561КП2, есть, наверное, и в других сериях (давно не пользовался отечественной продукцией). Цитата А есть с однополярным питанием? Для данного применения их прекрасно можно использовать в однополярном включении, заземлив линию отрицательного питания.
|
|
|
|
|
Nov 11 2008, 03:23
|

Частый гость
 
Группа: Свой
Сообщений: 197
Регистрация: 6-08-05
Пользователь №: 7 409

|
Цитата(DpInRock @ Nov 11 2008, 03:35)  Я на один вход ацп вешаю 8 кнопок. у каждой кнопки свой резюк. Худо-бедно, но 4 одновременных нажатия распознаю. Правда, кнопки, которые могут одновременно жаться - заранее заданы. Тоже в последнее время делаю на АЦП, думаю это для меня самый удобный способ, задействуется только одна лапа контроллера.
|
|
|
|
|
Nov 11 2008, 13:39
|

Пользователь забанен
    
Группа: Свой
Сообщений: 1 138
Регистрация: 9-08-05
Пользователь №: 7 492

|
Цитата(DMD @ Nov 11 2008, 03:15)  Мне надо на 4 входные линии повесить 8 кнопок... ..В этой конкретной ситуации, как уже отмечалось, самое прямое и простое решение – мультиплексор 8 – 1. Но, это – дополнительный корпус. ..Далее, если на борту есть АЦП – тоже отмечалось, достаточно и одной «ноги». ..Наконец, если на борту есть модуль компараторов – объединяете кнопки, по две на вход. Добавляете резисторов – чтобы каждое из 4-х возможных состояний пары кнопок соответствовало отдельному напряжению. Каждый вход тестируете компаратором, изменяя внутреннее опорное напряжение..
--------------------
It's me
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|