Кот в поисках идей

Обсуждаем цифровые устройства...
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

Yak писал(а):У микрочипа есть апноут. На 1 ножке МК до 99 кажись кнопок. Смысл в том, что на каждую кнопку вешается резистор с возрастающим номиналом, к примеру 100 ом, 120 ом, 140 и т.д. Все эти хрени (кнопка и резюк) соединяются параллельно, точка соединения резисторов - на порт АЦП (c подтяжкой на землю) точка соединения кнопок - на VCC. И опрашиваем ацп, получившийся результат +-2 будет код нужной кнопки. можно нажимать вместе...

Замечательная идея! Если ещё ссылкой на сабж поделитесь, коты будут благодарны! :)
А то самому сопротивления подбирать так, чтоб нажатие нескольких клавишь не вызвало пересечений с другими комбинациями сложновато....
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

Yak писал(а):
16 клавиш, матрица 4х4. Если нажата одна клавиша, всё понятно. А как читать клавиатуру, чтоб опредилить все нажатые клавиши в данный момент?


У микрочипа есть апноут. На 1 ножке МК до 99 кажись кнопок. Смысл в том, что на каждую кнопку вешается резистор с возрастающим номиналом, к примеру 100 ом, 120 ом, 140 и т.д.


Вы просто так пишите или на вопрос человека отвечаете ?

Если отвечаете то прочитайте всеже ВОПРОС ! что ему нужно.
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

coder писал(а):
Yak писал(а):У микрочипа есть апноут. На 1 ножке МК до 99 кажись кнопок..


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


ПАФФФТАРЯЮ !

нельзя так определить нажатие произвольного числа кнопок.
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

Abakt писал(а):нельзя так определить нажатие произвольного числа кнопок.

Можно :)
Например, не так как у Yak, но смысл тот же.
если нажаты все клавиши сопротивление 0,
если S2, S3, S4, то 1Ом
если S1, S3, S4, то 2Oм
... и т.д.
если ни одной, то 15Ом.
всё это дело подключаем к АЦП!
Вложения
keybd.GIF
Клавиатура.
(2.23 КБ) 533 скачивания
Аватара пользователя
Neekeetos
Держит паяльник хвостом
Сообщения: 993
Зарегистрирован: Пн сен 18, 2006 11:16:05
Откуда: Тула
Контактная информация:

Сообщение Neekeetos »

Согласен, обычно делается так:

Код: Выделить всё

_+5В      1К
+------[[[[]]]]---/ ------+
|          2К             |
+------[[[[]]]]---/ ------+
|          4К             |
+------[[[[]]]]---/ ------+----------> к АЦП
                          |        Rx
                          +----[[[[]]]]-------+
                                              |
                                             GND


Rx рассчитывается в зависимости от входного диапазона АЦП.
Схема работает следующим образом - при нажатии какой либо кнопки
подключается сопротивление изменяя ток протекающий через Rx(и соотв. напряжение на выходе меняется). Rx= 1К(это минимальное сопротивление на кнопке)*(Диапазон АЦП)/5В(питание кнопок)+ДОП. При этом старший бит отсчетов АЦП будет соответствовать состоянию верхней кнопки, следующие биты - соотв. каждой следующей кнопки.
Кнопки можно добавлять и максимальное количество равно разрядности АЦП. Каждое последующее сопротивление должно быть в 2 раза больше предыдущего по номиналу. ДОП надо подбирать - зависит от АЦП

coder писал(а):
Abakt писал(а):нельзя так определить нажатие произвольного числа кнопок.

Можно :)
Например, не так как у Yak, но смысл тот же.
если нажаты все клавиши сопротивление 0,
если S2, S3, S4, то 1Ом
если S1, S3, S4, то 2Oм
... и т.д.
если ни одной, то 15Ом.
всё это дело подключаем к АЦП!
Последний раз редактировалось Neekeetos Вт фев 20, 2007 11:16:40, всего редактировалось 1 раз.
Информация по RLC mini находится >тут<
Yak
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Пн ноя 13, 2006 16:42:35
Откуда: подмосковье

Сообщение Yak »

Можно
Например, не так как у Yak, но смысл тот же.
Те же яйца только в профиль.

блин хотел выложить апноут целиком, так ругается форум на большой размер((((((

выложил здесь _http://kuznechkovo-city.narod.ru/52603.zip
Вложения
11111111.gif
схема
(16.41 КБ) 481 скачивание
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

На 1 ножке МК до 99 кажись кнопок.... кнопки можно нажимать вместе.

Небольшая проблема с этим методом. Раз АЦП у нас 10 битный, то и кнопок максимум 10 на одном АЦП... Это если не учитывать погрешности, а так ещё меньше. :(
Оne

Сообщение Оne »

При 10-ти битном разрешении, теоретическая распозноваемость 1023 кнопки, на практике реально меньше.
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

Оne писал(а):При 10-ти битном разрешении, теоретическая распозноваемость 1023 кнопки, на практике реально меньше.

Это если каждую кнопку в отдельности... а у меня задача, распознать все нажатые кнопки одновременно! :idea:
Оne

Сообщение Оne »

Это в комповых клавиатурах организовано, если нажата какая либо клавиша, то клавиатура выдаёт команду - нажата клавиша, если отпущенна, значит - отпущенна такая-то клавиша. Поэтому теоретически можно зажимать хоть все клавиши. С аналогом действительно по количеству бит, будет выписывать количесво клавиш. :(
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

coder писал(а):Можно на какой-нить логике контроллер клавы собрать (16 входов, 2 выхода) последовательный!

Подскажите, плиз, на чём такое можно собрать (на 8, 16, 32... входов)?
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

есть микруха на 22 кнопки у freescell.com есть расширители IO на i2c у филипс (nxp.com) маркировка на PFC наверно можно регистры использовать "параллельные данные в последовательный" - выбор на Ti.com - "шифт регистр"
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

Порылся в интернете. Вот что у меня получилось на микросхеме К555ИР10(74LS166)
Вложения
shift.gif
(2.86 КБ) 541 скачивание
Аватара пользователя
Abakt
Вечно гонимый
Сообщения: 568
Зарегистрирован: Ср янв 10, 2007 19:15:51

Сообщение Abakt »

Гут.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Сообщение ARV »

Ребята, ну что вы как маленькие?!
Какое там еще 99 или тем более 1024 кнопок на аналоговый вход АЦП?! Да больше десяти реально работать не будут! Ну, могу ошибиться в 2 раза :)... Вы ж подумайте сами, что будет с вашей клавой, если резисторы поплывут от температуры? а сопротивление контактов со временм изменится? а пыль-грязь на плату между дорожками сядет? а питание вдруг понизится-повысится? а наладка? Оно вам надо?!
Ну есть же правильное решение, 100 лет как применяемое: матрица кнопок. Опрашиваем поочередно, а потом выдаем состояние всех кнопок сразу - чем не нравится?! Определили одну кнопочку - установили битик, определили вторую - второй битик и т.д., а затем байты результата выдаем - получаем СРАЗУ СОСТОЯНИЕ ВСЕХ КНОПОК, чего вы так желаете.
Если уж совсем плохо дело - возьмите сдвиговый регистр (или хоть 100 последовательно соединенных) типа 74HC597: это позводит вам одновременно защелкнуть состояние 8-и кнопок на регистр (у всех регистров сразу, если их не один), а потом последовательно ввести эти числа в МК - и анализируйте сколько влезент...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
coder
Открыл глаза
Сообщения: 57
Зарегистрирован: Вт фев 06, 2007 14:09:10
Откуда: Россия.Пермь
Контактная информация:

Сообщение coder »

ARV писал(а):Ну есть же правильное решение, 100 лет как применяемое: матрица кнопок. Опрашиваем поочередно, а потом выдаем состояние всех кнопок сразу - чем не нравится?! Определили одну кнопочку - установили битик, определили вторую - второй битик и т.д., а затем байты результата выдаем - получаем СРАЗУ СОСТОЯНИЕ ВСЕХ КНОПОК

В том то и дело, если в матрице нажаты три кнопки из четырех (в 2х рядах и 2х столбцах), то четвертая будет читаться, как нажатая автоматически... Чтоб такого непроисходило... к каждой кнопке необходимо по диоду примастачивать....
Yak
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Пн ноя 13, 2006 16:42:35
Откуда: подмосковье

Сообщение Yak »

есть микра советская К155ИД3. вот на двух оных микрах, на 9 МК пинов можно повесить 32 полностью автономные кнопки. а если применить I2C расширитель портов, то вообще три пина заюзаются. меньше уже некуда)))))

и что самое главное в этой схеме - возможность заставить каждую кнопку вызывать прерывание, если на соотв пин МК ее повесить.

К155ИД3 даташит ))))
_http://www.chipinfo.ru/dsheets/ic/155/id3.html
Аватара пользователя
J0kER
Открыл глаза
Сообщения: 41
Зарегистрирован: Ср фев 14, 2007 10:21:05
Откуда: Красноярск
Контактная информация:

Сообщение J0kER »

Господа, а что плохого в том, что на каждую кнопку надо ставить диод? Этоне проблема. Это давно обкатаная технология.
от, на Меге16 есть вариант USB контроллера джойстика. 8 осей по 1024 отсчета и аж 102(!) кнопки. И замечательно все пашет.
(Если заинтересовало - искать MJoy16)
Аватара пользователя
Мышонок
Друг Кота
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке
Контактная информация:

Сообщение Мышонок »

Ну вы и флудеры! Сколько раз про одно и тоже? Здесь: http://www.radiokot.ru/forum/viewtopic.php?t=2929 было, ещё где-то тоже есть... :evil:
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Ответить

Вернуться в «Цифровая техника»