Например TDA7294

Форум РадиоКот :: Просмотр темы - Вопрос по 4*4 клавиатуре
Форум РадиоКот
https://radiokot.ru/forum/

Вопрос по 4*4 клавиатуре
https://radiokot.ru/forum/viewtopic.php?f=58&t=142337
Страница 1 из 1

Автор:  anten89 [ Ср фев 22, 2017 21:11:49 ]
Заголовок сообщения:  Вопрос по 4*4 клавиатуре

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

Автор:  spongebob [ Ср фев 22, 2017 22:27:40 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Диодов не хватает каждой кнопке.
И читай динамический опрос.

Автор:  Аlex [ Ср фев 22, 2017 22:28:16 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

https://yandex.ru/search/?lr=5&msid=148 ... 1%80%D1%8B
Зачем тут переписывать то, чего и так навалом в интернете ?

Конкретно, что не понятно ?

Автор:  LastHopeMan [ Чт фев 23, 2017 05:14:18 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Сам принцип таков. Есть "строки", есть "столбцы".

Цикл y от 1 до 4 по строкам
--подаем питание на y
--ждем чуток, пока пин отреагирует и включит питание
--Цикл x от 1 до 4 по столбцам
----если на x 1, то нажата кнопка (x,y)
--конец цикла по столбцам
--убираем питание с y
конец цикла по строкам

то есть суть в том, что по очереди на одну координату подаем питание, а по другой проверяем: появилось ли оно. И если появилось, то нажата кнопка на их пересечении. Далее убираем питание и переходим дальше. Проблемой будет, когда у вас будут нажаты несколько кнопок одновременно. Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь (кто кого перетянет). Поэтому, на одну из координат по диоду шоттки воткните, а со стороны другой координаты подтяните к земле (если отсутствием сигнала будет считаться земля). Также не забудьте про дребезг контактов, который в вашем случае можно устранить программно.

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

Автор:  pyzhman [ Чт фев 23, 2017 07:16:29 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

spongebob писал(а):
Диодов не хватает каждой кнопке...

дабы не было кз при
LastHopeMan писал(а):
одновременно нажатые кнопки

Только не каждой кнопке, а каждому столбцу или строке, в зависимости от того, куда вы подаете опрашивающий сигнал.

Добавлено after 7 minutes:
LastHopeMan писал(а):
...
--Цикл x от 1 до 4 по столбцам
....

Интереснее считать сразу порт и по маске определить нажатую кнопку.

Автор:  spongebob [ Чт фев 23, 2017 09:57:16 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

На каждой кнопке.
Иначе при одновременном нажатии 3х и более кнопок будут ложные срабатывания.
Представьте что вы нажали кнопки с адресами 1.1, 3.1, 3.3
При опросе первой строки окажутся на выходе "нажатыми" 1.1 и 1.3 (хотя 1.3 и не нажата).
П.с. это если есть вероятность одновременного нажатия 3-х и более. Если 2 и более, то на строки(столбцы). Если 1, то ничего не надо.

Автор:  LastHopeMan [ Чт фев 23, 2017 10:43:55 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

pyzhman писал(а):
Только не каждой кнопке, а каждому столбцу или строке, в зависимости от того, куда вы подаете опрашивающий сигнал.

Вы меня некачественно прочитали :))) Не говорил я такого.

Автор:  pyzhman [ Чт фев 23, 2017 11:01:00 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Прочтите качественно моё предыдущее сообщение.

Автор:  Zhuk72 [ Чт фев 23, 2017 11:37:11 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

AN529

Автор:  LastHopeMan [ Чт фев 23, 2017 12:13:58 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

pyzhman писал(а):
Прочтите качественно моё предыдущее сообщение.

Хорошо, тыкну лапой.

pyzhman писал(а):
LastHopeMan писал(а):
одновременно нажатые кнопки

Только не каждой кнопке, а каждому столбцу или строке, в зависимости от того, куда вы подаете опрашивающий сигнал.

LastHopeMan писал(а):
Поэтому, на одну из координат по диоду шоттки воткните, а со стороны другой координаты подтяните к земле (если отсутствием сигнала будет считаться земля)


Так что ваш косяк :music:

Автор:  pyzhman [ Чт фев 23, 2017 17:32:32 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Вы, очевидно, некачественно прочли моё сообщение. Ещё раз -
дабы не было кз при "одновременно нажатые кнопки". Это означает, что для того, чтобы не было короткого замыкания при одновременно нажатых нескольких кнопках, линии нужно развязать диодами. Что является подтверждением ваших слов -
Цитата:
Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь

Автор:  Родэрик [ Чт фев 23, 2017 17:59:36 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Думаю, качественнее всего было бы наверное использовать ацп для такого количества кнопок. А одновременные нажатия не использовать, тем более судя по всему такая клавиатура скорей всего для ввода пароля понадобится, либо такие нажатия, если они присутствуют в задумке, программно заменить на какой-нибудь иной алгоритм. Тогда и программа проще станет и ног меньше под это дело уйдёт.

Автор:  Albert_V [ Чт фев 23, 2017 18:10:42 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Если нет желания ставить на кнопки диоды - сделайте так, что бы в любой момент времени выходом был только один из 8-ми выводов (остальные 7 - входы).
Программа немного усложнится, но деталей на плате будет меньше (особенно, если использовать встроенную "подтяжку" к Vdd /PULL-UP/).

Автор:  LastHopeMan [ Чт фев 23, 2017 19:11:22 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

pyzhman писал(а):
Вы, очевидно, некачественно прочли моё сообщение. Ещё раз -
дабы не было кз при "одновременно нажатые кнопки". Это означает, что для того, чтобы не было короткого замыкания при одновременно нажатых нескольких кнопках, линии нужно развязать диодами. Что является подтверждением ваших слов -
Цитата:
Сигналы при этом будут контактировать друг с другом и на выходе у вас будет дичь

Я как раз сразу во всем разобрался, в отличие от вас. Вы когда отвечали предыдущему оратору, то вместо его сообщения выдрали цитату из моего. Причем совершенно из другого контекста.
Неужели так сложно просто взять и прочитать с самого начала?

Автор:  pyzhman [ Пт фев 24, 2017 05:32:17 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

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

Автор:  Ariadna-on-Line [ Пт фев 24, 2017 10:51:46 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Если применить выходы с открытым коллектором, то не надо диодов. Но входы должны быть с подтяжками в плюс.
Чтоб не заставлять проц постоянно опрашивать клаву, - наверно можно сделать обработку по прерыванию.

Автор:  LastHopeMan [ Пт фев 24, 2017 11:10:23 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Или применить ТТЛ микросхемы включая счетчик, но по размеру проигрываем.
Например, так https://www.youtube.com/watch?v=5H5WsxCqO9A

Автор:  pyzhman [ Пт фев 24, 2017 15:55:22 ]
Заголовок сообщения:  Re: Вопрос по 4*4 клавиатуре

Однако вопрос ТС состоит
anten89 писал(а):
...со стороны программы...

, а не со стороны железа.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/