Например TDA7294

Форум РадиоКот • Просмотр темы - Матричная клваитаура - я похоже параноик
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 26, 2025 18:03:48

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 14 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 14:23:07 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
Захотелось чего-то большего, чем 3 кнопки, начал смотреть на различные варианты, сразу простой показалась матричная клавиатура, к тому же очень много разных готовых вариантов которые красиво будут смотреться на лицевой панели.

Например такую:
СпойлерИзображение

Но так как я очень придирчив, то возник вопрос из-за которого мой интерес сильно подостыл, и я начал больше посматривать на интерфейсные варианты подключения(но с большим числом клавиш на Али пока не могу найти). Или вариант индивидуально подключённых к шифратору кнопок(тоже не нашел готовых клавиатур, не нашел именно с индивидуальной разводкой, а не с шифратором, с шифратором я даже и не надеялся найти).

Короче суть в следующем: если сканирование по рядам, а опрос по столбцам, то через другую нажатую кнопку столбца сигнал может передаться на любой другой столбец:

Изображение

Вариантов устранить нашел только один вставить диод после каждой кнопки ряда вот так:

Изображение

Нажатие нормально отрабатывается, с небольшой проблемой из-за падения напряжения на диодах, но так как при такой схеме диоды должны стоять ПОСЛЕ КАЖДОЙ кнопки, то защитные диоды на входе не нужны:
СпойлерИзображение

Изображение

Но так как хочется готовую клаву, то не очень много шансов нормально впаять диоды, даже в SMD исполнении, да и не хочется этим заниматься.

Но ведь, судя по предложениям матричные клавиатуры широко распространены. В чем же дело?
Подключать матричные резисторы(для этого не нужно лезть внутрь клавы) - тоже сомнительный вариант, если положить ладошку на клаву, на выходе может быть всё что угодно, ножки то экономятся, но комбинаций замыкания неимоверное количество.

Но правда и тут есть варианты. Оставить сканирование как есть, но если сигнал идёт более чем с одного столбца, но вообще не учитывать нажатие, так как могут быть неоднозначности.

По мне так лучше ничего не делать, чем выполнить ошибочную команду.

С другой стороны, если всё же оставаться на матричной клаве, то лучше инвертировать входы и выходы. Заодно и 6 тактов за цикл опроса на AVR(сейчас планирую делать проект на нем, а так только начинаю изучать STM) сэкономится.
В этом случае тоже могут быть неоднозначности(не обращайте на плавающие выходы, для подсветки уровней перевёл резисторы в цифровой режим элуляции):

Изображение

Но зато если однозначно читается ряд или однозначно читается столбец, то можно безопасно обрабатывать одновременное нажатие. (Пока я и эти клавиши не знаю куда девать, но всё же).

У кого какие мысли по этому поводу? Ведь раз других готовых вариантов нет, то значит обычного исполнения матричных клавиатур всем хватает. Может это просто я такой замороченный.


Вложения:
def_diode_w2.png [38.74 KiB]
Скачиваний: 307
def_diode_w.png [37.91 KiB]
Скачиваний: 303
revert_err.png [45.6 KiB]
Скачиваний: 302
def_err.png [47.49 KiB]
Скачиваний: 318
def_diode.png [51.8 KiB]
Скачиваний: 305
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 18:11:47 
Друг Кота
Аватар пользователя

Карма: 40
Рейтинг сообщений: 615
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4718
Откуда: Омск
Рейтинг сообщения: 0
При использовании обычной матричной клавиатуры не подразумевается нажатие одновременно нескольких кнопок. Если такая ситуация возникнет (пальцы кривые, или что упало на клавиатуру), то обрабатываетя нажатие первой, которая найдется при сканировании. Остальные просто игнорируются. Никто и не парится на эту тему.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 18:19:32 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
Остальные просто игнорируются. Никто и не парится на эту тему.


Значит, как и предполагал, это только мои заморочки :beer:

А я бы вообще бы лучше ничего не нажал бы, чем выполнить не ту команду, но в общем понятно - успокоили.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 18:22:46 
Друг Кота
Аватар пользователя

Карма: 40
Рейтинг сообщений: 615
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4718
Откуда: Омск
Рейтинг сообщения: 0
Вообще то я не встречал, что бы матричную клавиатуру использовали для управления. Всегда попадалась только для набора. А уж после набора и проверки исполнение.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 18:26:11 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
Если же предусматривается возможность нажатие нескольких кнопок одновременно, то нужно использовать другие схемотехнические решения, которые позволят корректно считывать состояние каждой необходимой кнопки. Столь "округлая" фраза потому, что нужно смотреть каждый конкретный случай.


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

Добавлено after 55 seconds:
инвертировать входы и выходы. Заодно и 6 тактов за цикл опроса на AVR сэкономится


Добавлено after 1 minute 15 seconds:
Вообще то я не встречал, что бы матричную клавиатуру использовали для управления. Всегда попадалась только для набора. А уж после набора и проверки исполнение.

Не понял. А банальное меню верх-вниз, выбрать?

Добавлено after 34 seconds:
Надо получается несколько клавиатур - наборная и командная?

Добавлено after 31 second:
Точнее дополнительно 1-2 кнопки, но зачем, когда тут валом...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 22:19:06 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
а зачем так сложно... резисторы диоды...
:roll:
можно же просто напрямую подключить к МК клавиатуру 4 х 4 = 16 кнопок.

Изображение

при этом достаточно одного порта... т.е. 8 пинов...

но сделаем хитро))
-первые 4 пина подключим через подтягивающие резисторы...
-вторые 4 пина тупо притянем к массе...

далее... опрос кнопок в два этапа)).
-когда нажимаем на любую кнопку срабатывает прерывание... т.к. на одном из первых 4 пинах упало напряжение.
и мы сразу знаем на каком столбце была нажата кнопка.
-осталось определить строку... для этого поочереди отключаем вторые 4 пина от массы.
когда напряжение опять поднимется до прежнего уровня это и будет искомая строка.

во как я придумал))
:tea:


Вложения:
Screenshot_1.jpg [20.17 KiB]
Скачиваний: 231
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 23:17:33 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
для этого поочереди отключаем вторые 4 пина от массы.
:tea:

Для опроса по прерыванию пина или, по прерыванию таймера мне больше нравится следующий алгоритм:

прочитать полубайт порта ввода,
инвертировать DDR
прочитать другой полубайт порта ввода,
вернуть DDR как было

Нажатые клавиши определяются 0 в полубайтах.

Если не нужно обрабатывать одновременное нажате клавиш, то сразу получаем команду - через switch case где ключи байт из полубайтов или, если нужен символ, из двумерного массива, где ключи полубайты
Если нужно одновременное нажатие, наш switch case дополняем соответствующими кесами.

Добавлено after 2 minutes 24 seconds:
Но надо помнить, что если сразу в обоих полубайтх больше одного нуля, то состояние неоределенное, лучше такое проигнорировать. Достаточно просто не делать такие кейсы в switch


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Пн дек 15, 2025 23:52:53 
Друг Кота

Карма: -1
Рейтинг сообщений: 86
Зарегистрирован: Вт мар 13, 2012 12:16:13
Сообщений: 8887
Откуда: .ru
Рейтинг сообщения: 0
можно по всякому...
:roll:
только надо осторожней с инвертированием DDR... а то получим короткое замыкание))
:tea:
при отключении массы короткого короткого замыкания не будет при любом раскладе...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Вт дек 16, 2025 00:03:10 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
можно по всякому...
:roll:
только надо осторожней с инвертированием DDR... а то получим короткое замыкание))

Не будет, всё учтено. К тому же резисторы спасут.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: мтpaчияна клваитаура - я пожoxe понораик
СообщениеДобавлено: Вт дек 16, 2025 01:00:59 
Друг Кота

Карма: 46
Рейтинг сообщений: -13
Зарегистрирован: Вт фев 21, 2012 13:51:55
Сообщений: 5208
Откуда: Начинающий
Рейтинг сообщения: 0
Цитата:
клваитаура - я похоже параноик


Пока ecть критичекое мышление - не всё потеряно !
( даже "клваитаура" )

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

_________________
< виртуальная "кнопочка" >--( WWW ) <- Убедительная просьба интересующимся старыми компьютерами типа РК86 - не пишите в теме в барахолке, пишите Ваши вопросы в ( лс ) пожалуйста


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: мтpaчияна клваитаура - я пожoxe понораик
СообщениеДобавлено: Вт дек 16, 2025 06:41:25 
Родился

Зарегистрирован: Пн дек 15, 2025 13:29:04
Сообщений: 14
Рейтинг сообщения: 0
Цитата:
клваитаура - я похоже параноик

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


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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Вс дек 21, 2025 00:56:20 
Грызет канифоль

Зарегистрирован: Ср дек 30, 2009 09:55:39
Сообщений: 283
Рейтинг сообщения: 0
....
далее... опрос кнопок в два этапа)).
-когда нажимаем на любую кнопку срабатывает прерывание... т.к. на одном из первых 4 пинах упало напряжение.
и мы сразу знаем на каком столбце была нажата кнопка.
-осталось определить строку... для этого поочереди отключаем вторые 4 пина от массы.
когда напряжение опять поднимется до прежнего уровня это и будет искомая строка....



тупой вопрос:
А Вы задумывались почему на PC-шных клавах сканирование идёт нулём? Навожу мысль - искать надо в помехозащищённости.

Удачи Вам
(круглый)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Ср дек 24, 2025 07:45:00 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 234
Откуда: Россия, Омск
Рейтинг сообщения: 0
Параноик проектирует клавиатуру вот так:
Спойлер
Вложение:
Screenshot_20251224_104042.png [75.13 KiB]
Скачиваний: 27

Каждую кнопку можно нажать независимо от остальных. Шифт+5? Легко. Альт-Пробел-F3? Легко. 8 штук разом крестиком? Пальцев хватит?

И, да, эта дичь работает %)

По алгоритму:
Выбираем строку, читаем столбец на порту МК. Запоминаем. Выбираем следующий столбец, читаем, повторяем до конца. Применяем антидребезг, результат записываем в буфер отправки. Мастер заберёт данные по SPI когда потребуется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Матричная клваитаура - я похоже параноик
СообщениеДобавлено: Ср дек 24, 2025 12:52:24 
Друг Кота
Аватар пользователя

Карма: 40
Рейтинг сообщений: 615
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4718
Откуда: Омск
Рейтинг сообщения: 0
Как человек, работавший в психиатрии, это не паранойя. Это скорее обсессивно-компульсивное расстройство. Вредв окружающим минимум, себе - максимум.
Диагноз по МКБ-10 F42.0-F42.9. Уточнение по месту.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y