Матричная клавиатура на N*M кнопок с управлением в 1 провод

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
vladlen-from-vrtp
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 01, 2014 07:28:15

Матричная клавиатура на N*M кнопок с управлением в 1 провод

Сообщение vladlen-from-vrtp »

На рисунке схема для 4*4, а здесь выложил проект в протеусе.

Я сделал для PICа, но понятное дело, что можно под любой камень использовать.
Вложения
key.gif
(51.06 КБ) 783 скачивания
Реклама
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение Gisteresis »

Только быстродействие опроса такой клавы минимальное. Тут вообще каждый выбирает компромисс между количеством задействованных ножек и скоростью опроса.
Вообще видел много реализаций клавиатуры, есть даже на АЦП, там вроде тоже проводов почти нет.
Реклама
vladlen-from-vrtp
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 01, 2014 07:28:15

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение vladlen-from-vrtp »

Время опроса до последней кнопки, при тактовой 4МГц на PIC12F675, что-то около 6мс.
А 6мс для клавиатуры - это же моргнул и уже сотни полторы символов напечатало.
И еще один хороший момент, по-моему, что можно не заморачиваться особо с антидребезгом в силу принципа работы.
И сам алгоритм опроса примитивный очень, так как по первому нулю на входе, получаем автоматом номер кнопки.

В случае с АЦП кроме кнопок еще получается столько же резисторов нужно.

А так, например, даже для 64 кнопок нужно 16 диодов, 10 резисторов, конденсатор и два регистра.
На контактов для пайки меньше.
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение Gisteresis »

Никто и не спорит. Хороший вариант. Но, все зависит от применения. На АЦП, хоть и требуется резистивная матрица, но метод быстрее. Или я ошибаюсь?
Для большинства применений, предложенный вами метод, конечно предпочтительней.
Изголяться придется когда время действительно критично, например устройство типа денди, с клавиатурой, дисплеем, звуком... Хотя при таком применении наверное уже имеет смысл отдельный контроллер клавиатуры поставить.
Реклама
Эиком - электронные компоненты и радиодетали
vladlen-from-vrtp
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 01, 2014 07:28:15

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение vladlen-from-vrtp »

Думаю если сравнивать с учетом обработки дребезга, то смысла в большей быстроте АЦП не так много остается.
Реклама
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение Gisteresis »

А почему у вас не нужно делать проверку дребезга?
А 6мс для клавиатуры - это же моргнул и уже сотни полторы символов напечатало.
Это одна буква введена.
Реклама
vladlen-from-vrtp
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 01, 2014 07:28:15

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение vladlen-from-vrtp »

Что-то не понял про одну букву.

С дребезгом, там ведь как, во время опроса закидываем элемент массива и смотрим, что на выходе.
А кнопка влияет на выход только когда загружен элемент соответствующий этой кнопке, в любой другой момент она не влияет ни как вообще.
Опрос мы запускаем с удобным для нас периодом, по переполнению от таймера например.
То есть кнопка сможет повлиять на выход как минимум только через 6мс (для моего случая с PIC12F675 на 4МГц), а это уже сравнимо с длительностью самого дребезга для хорошей кнопки.
Аватара пользователя
Gisteresis
Друг Кота
Сообщения: 4732
Зарегистрирован: Ср сен 18, 2013 10:08:26
Откуда: Санкт-Петербург

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение Gisteresis »

Вы сказали, что время полного опроса клавиатуры занимает 6мс. Это время ввода всего одного символа а не полторы сотни символов.
То есть кнопка сможет повлиять на выход как минимум только через 6мс (для моего случая с PIC12F675 на 4МГц), а это уже сравнимо с длительностью самого дребезга для хорошей кнопки.
А, вот что вы имели в виду.
Об этом я и сказал, что каждые 6мс может быть дребезг. Например первый опрос кнопка зажалась, второй отпустилась, третий опять зажалась.
Но это я просто обратил внимание на это, достаточно ли этого на практике я не знаю.
Аватара пользователя
Microtech
Поставщик валерьянки для Кота
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва
Контактная информация:

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение Microtech »

Здорово придумано. :) Но вот основной процессор должен всё время опрашивать кнопки, а RC цепочка на линии данных, вносит ограничения на тайминги. Выкрутиться можно, идея хорошая.
На подобную задачку я ставил мелкий AVR (AtTiny2313), он опрашивал кнопки классически, с бегущей единицей, с подавлением дребезга + автоповтор. Слал коды кнопок через UART. Бяка была в том, что при таком решении, основной контроллер и периферийные (клавиатура), должны синхронизироваться кварцами. Все попытки настроить калибровки на RC генераторе, давали 20% отказов. Когда попало, от температуры и просто так. :(
vladlen-from-vrtp
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Чт май 01, 2014 07:28:15

Re: Матричная клавиатура на N*M кнопок с управлением в 1 про

Сообщение vladlen-from-vrtp »

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

Думал вообще питание для регистра брать из линии данных, чтобы похоже было на 1-wire.
То есть плюс еще один диод с конденсатором и минус один провод.
Но не уверен.
Ответить

Вернуться в «Умные мысли»