Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
24.06.2007, 02:41
|
|
Частый гость
Регистрация: 21.06.2005
Сообщений: 46
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Собрать 64 сигнала в кучу
Нужно отслеживать нажатие 64-х кнопок. Кнопки нажимаются не чаще 1 раза в 2 секунды. Ничего кроме этой схемы в голову не приходит. У кого-нибудь есть соображения на эту тему?
-- Прилагается рисунок: --
|
|
|
|
24.06.2007, 10:24
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Собрать 64 сигнала в кучу
Сообщение от andreiesafov
|
Нужно отслеживать нажатие 64-х кнопок. Кнопки нажимаются не чаще 1 раза в 2 секунды. Ничего кроме этой схемы в голову не приходит. У кого-нибудь есть соображения на эту тему?
|
Собери клавиатуру матрицей.Тогда тебе понадобится 8 линий на передачу сигнала сканирования, и 8 линий на прием сигнала сканирования.
-- Прилагается рисунок: --
|
|
|
|
24.06.2007, 12:54
|
|
Частый гость
Регистрация: 21.06.2005
Сообщений: 46
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Клавиатуру матрицей не соединить. Это внешнее устройство и оно имеет свою схему соединения, тем более кнопки не стоят все рядом.
А как быть с дребезгом контактов? Может кто использовал подобную схему?
|
|
|
|
24.06.2007, 18:04
|
|
Прописка
Регистрация: 19.10.2006
Сообщений: 112
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Сообщение от andreiesafov
|
А как быть с дребезгом контактов?
|
Я программно убирал дребезг контактов (в МК-е) с помощью задержек после нажатия клавиши. Можно конечно устранить физически дребезг контактов, скажем, с помощью RS-триггера .
|
|
|
|
25.06.2007, 08:15
|
|
Прохожий
Регистрация: 21.06.2007
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
делается на AVR:
8х8 решетка с кнопками в узлах. Вертикаль в порт Б, горизонталь в порт А.
Исходное состояние:
Порт А вход с подвеской (можно внешней 5к)
Порт Б выход все 1
Шаг 1:
роняем 0-й бит Б в 0 и сканим порт А на предмет появление на пинах нуля
Шаг 2:
поднимаем в 1 0-й бит Б и роняем 1-й. сканим порт А на предмет появление на пинах нуля
... и так далее.
Если где-то нашли 0 - получаем код кнопки:
Nk=Na+8*Nb , где Na - номер (не значение) пина А, на котором найден 0, Nb - номер ноги Б, на которой уронили 0
|
|
|
|
25.06.2007, 08:42
|
|
Прописка
Регистрация: 21.10.2005
Сообщений: 251
Сказал спасибо: 11
Сказали Спасибо 22 раз(а) в 17 сообщении(ях)
|
На мой взгляд твоя схема наиболее оптимальна .А какие сигналы присутствуют на кнопках ? Эта схема прохляет только если кнопки коммутируют статичный уровень 1 или 0 .С дребезгом в этом случае можешь побороться с помощью кондера параллельно контактам кнопки ,а + или - на кнопку завести через резистор .
Есле-же у тебя на кнопках динамическое сканирование ,то надо контролировать всю матрицу в параллельном режиме ,т.е. понадобится многоногий контроллер.
|
|
|
|
25.06.2007, 10:32
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
|
Ну, если матрицу не организовать, можно и так....
Похоже на Вашу, только в паралельном коде.
-- Прилагается рисунок: --
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:56.
|
|