| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Клавиатура (18кнопок) |
| Автор: DonPager 30.12.2005, 10:37 |
| Может кто подскажет схему, чтобы можно было подключить эту байду на ОДИН порт ? |
| Автор: scapig 30.12.2005, 14:52 |
| Это значит матрица 4х5 (20кн) Береш 5 линий порта - с них считываешь.. остаются 3 линии (а надо 4) => вешаешь дешифратор какой нить на две динии (на выходе получ. 4) и сканируешь себе на здоровье... И остается один пин еще свободным... |
| Автор: ManiaK 30.12.2005, 17:58 |
| При желании это всё можно повесить вообще на один вывод - прицепив к нему две микросхеммки ds2408 (расширители io на восемь выводов). |
| Автор: PILOT 30.12.2005, 18:46 |
| но дешевле 4х5 СУВ. |
| Автор: DonPager 28.1.2006, 11:03 |
| scapig если честнно, то нифига не понял про дешифратор - можно картинку ? |
| Автор: PILOT 29.1.2006, 00:57 |
| http://www.gaw.ru/html.cgi/txt/app/micros/avr/AVR243.htm СУВ. |
| Автор: PILOT 29.1.2006, 12:06 | ||||
Ошибаешься, потому что методы сканирования матричной клавиатуры бывают разными и почти все из них могут анализировать нажатие нескольких клавиш одновременно. СУВ. |
| Автор: cardinal 29.1.2006, 15:28 |
| Да, но если делать как у них, то разницы (три кнопки или четыре нажаты) помоему как не сканируй не найдешь... |
| Автор: DonPager 29.1.2006, 18:19 |
| PILOT спасибо конечно, но как обычную матрицу вставить я знаю... я не понимаю как сделать так чтобы для 18 кнопок использовать всего 8 проводов для сканирования (пока что использую матрицу 6х3 = 9 проводов, а хотелось 8) |
| Автор: PILOT 29.1.2006, 22:17 |
| Если есть деньги на несколько дополнительных элементов: 1) сажаешь все 18 ног кнопок таким образом, чтобы они коммутировали свой делитель напряжения на вход АЦП контроллера, тогда у тебя будет 19 интервалов по 13 единиц и по тому какое значение у тебя получилось при оцифровке ты судишь о нажатой клавише (но только одной!). Но на контроллере нужна одна нога и 36 чип-резисторов разных номиналов... 2) ставишь 3 последовательно соединенных регистра с парралельным входом и последовательным выходом (есть 16-ти разрядные, т.е. можно один 16-ти разрядный + 8-ми разрядный), объединяешь одни концы всех кнопок и сажаешь объединенный выввод на +5Вольт, а другие 18 выводов через резисторы на входы регистра. Считываешь состояние регистров и состояние всех кнопок, даже если нажато несколько. 3) можно сделать так: есть емкость, она заряжена (примерно +5Вольт), есть 18 кнопок коммутируя которые разряжаем емкость но за разные промежутки времени (в зав-ти от выбранного резистора для конкретной кнопки), в схеме будет транзистор, который будет перезаряжать емкость и несколько диодов... СУВ. |
| Автор: DonPager 30.1.2006, 13:19 |
| В общем спасибо... Хотелось сделать чисто на логике с избытком положений - но ума не хватило.... а требования у меня не высокие - при одновременном нажатии 2х и более - игнорировать. если есть какие идеи как объеденить 2 линии, использовав при этом минимум эл-тов (резисторы, транзисторы, диоды) то поделитесь |
| Автор: PILOT 30.1.2006, 20:13 |
| используй пункт 2, самый дешевый вариант. всего 3 ноги у контроллера используется... и не парься... СУВ. |