Страница 6 из 6
Re: Подключить много кнопок на мало выводов.
Добавлено: Сб июл 11, 2026 21:16:20
u37
jcxz писал(а): Сб июл 11, 2026 05:20:17
Или почитать буквари для начинающих. Или хотя-бы погуглить на тему "зачем нужны последовательные диоды в матрице кнопок?"
Вроде как это такая общеизвестная вещь, что странно не знать...
Поправка - только это не "общеизвестная вещь", а стандартное схемное решение. И спорить с ССР это как спорить с таблицей умножения.
Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 15:37:21
BOB51
Разве что одновременное нажатие группы кнопок не будет фиксироваться - но при полной клавиатуре это и не требуется.
Одиночные четко отслеживаются.
Но все же это не классика с диодом в цепи каждой из кнопок - может потому и восприятие не явное (учитывая "кто к чему привык"

).
Да и АВРка не 51я, придется чуток изврата с регистрами портов делать.

Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 17:00:58
Starichok51
у меня моя схема прекрасно работает без диодов в цепи каждой из кнопок - я всю работу подробно описал.
и более того, я проверил в Протеусе.
ранее я написал:
Starichok51 писал(а): Сб июл 11, 2026 20:50:49не нравятся входы с подтяжкой, тогда пусть будут просто входы без подтяжки.
тут я был не прав - если на колонках делать входы без подтяжки, то работать не будет. будет именно так, как говорил jcxz, в его примере не только фиолетовая кнопка якобы замкнута, а все 8 кнопок в обеих верхних строках (даже не нажатые). а с подтяжкой прекрасно работает.
подтяжка нужна, чтобы 1 от подтяжки попадала через замкнутую кнопку на вход строк.
кому будет интересно, даю проект в Протеусе.
заодно кое-кто поучится, как делать без диодов в цепи каждой из кнопок.
Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 17:51:09
Starichok51
дополню: там в проекте согласно схеме первая строка - нижняя. соответственно, верхняя строка - четвертая.
Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 20:07:52
jcxz
BOB51 писал(а): Вс июл 12, 2026 15:37:21Разве что одновременное нажатие группы кнопок не будет фиксироваться - но при полной клавиатуре это и не требуется.
Читаем внимательно условие из 1-го поста:
Призрачный Суслик писал(а): Пн июн 29, 2026 23:51:07Может быть одновременно нажато любое количество "кнопок".
Starichok51 писал(а): Вс июл 12, 2026 17:00:58заодно кое-кто поучится, как делать без диодов в цепи каждой из кнопок.
Starichok51 писал(а): Вс июл 12, 2026 17:51:09Мудрость приходит вместе с импотенцией...
Но иногда последняя приходит в одиночестве...

Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 21:45:06
Starichok51
все-таки, я должен признать, что я был не прав.
не любая комбинация кнопок у меня дешифрируется правильно.
jcxz, а вот хамство к некоторым приходит даже без импотенции.
Re: Подключить много кнопок на мало выводов.
Добавлено: Вс июл 12, 2026 21:47:48
jcxz
Starichok51 писал(а): Вс июл 12, 2026 21:45:06jcxz, а вот хамство к некоторым приходит даже без импотенции.
Это надо понимать как самокритику? Видимо за:
Starichok51 писал(а): Пт июл 10, 2026 21:39:58включи голову и сам подумай
?
Re: Подключить много кнопок на мало выводов.
Добавлено: Пн июл 13, 2026 08:37:41
akl
BOB51 писал(а): Вс июл 12, 2026 15:37:21...Да и АВРка не 51я, придется чуток изврата с регистрами портов делать.
Интересно, а как будет выглядеть опрос 8*2 кнопок на 51 семействе. Для сравнения. Пример из действующего на mega64A с тактовой 16MHz <5us
Спойлер
Код: Выделить всё
SER R20 ;DDRG
LDI R21,1<<PG1|1<<PG0 ;PORTG
CBR R21,1<<PG1
STS PORTG,R21
CBR R20,1<<PG0
STS DDRG,R20 ;возбуждение линий зон - и OFF
RCALL PAUSE_RET
IN R12,PINC ; чтение линий зон - и OFF
CBR R20,1<<PG1
STS DDRG,R20
SBR R21,1<<PG1
STS PORTG,R21 ; сброс возбуждения линий зон - и OFF
CBR R21,1<<PG0
STS PORTG,R21
SBR R20,1<<PG0
STS DDRG,R20 ;возбуждение линий зон + и ON
RCALL PAUSE_RET
IN R13,PINC ; чтение линий зон + и ON
CBR R20,1<<PG0
STS DDRG,R20
SBR R21,1<<PG0
STS PORTG,R21
COM R12
COM R13
PAUSE_RET:
RET
Re: Подключить много кнопок на мало выводов.
Добавлено: Пн июл 13, 2026 09:28:25
BOB51
Зависит от того, какая схема и какой алгоритм будет применен.
Предоставьте схемку - тогда и обцарапаем.
Starichok51
В Вашем варианте легко ставится программная защита от некорректной комбинации.
Но это все таки заметно более сложная программа обработки, нежели для обычной схемки с диодами в цепи каждой кнопки и "бегущим 0".

Re: Подключить много кнопок на мало выводов.
Добавлено: Пн июл 13, 2026 10:37:25
jcxz
BOB51 писал(а): Пн июл 13, 2026 09:28:25В Вашем варианте легко ставится программная защита от некорректной комбинации.
Какая именно "защита"?
Произвольную комбинацию из 3-х и более нажатых кнопок с той схемой без диодов В ПРИНЦИПЕ невозможно никак прочитать. Отдельные определённые комбинации - возможно,
произвольную - нет.
PS: Уже на 10-й круг пошли... сколько можно???
Re: Подключить много кнопок на мало выводов.
Добавлено: Пн июл 13, 2026 10:49:27
BOB51
Зато ошибку в виде одновременного нажатия нескольких кнопок весьма легко можно выявить и соответственно исключить.

Re: Подключить много кнопок на мало выводов.
Добавлено: Пн июл 13, 2026 11:12:21
Starichok51
jcxz писал(а): Пн июл 13, 2026 10:37:25Отдельные определённые комбинации - возможно, произвольную - нет.
да, какое-то количество комбинаций будет определяться правильно, и на некоторых простых комбинациях я при проверке в Протеусе уверился в своей правоте.
но когда сделал комбинацию наподобие твоей с фиолетовой кнопкой, увидел, что и не нажатые кнопки якобы нажата.
поэтому я выше признал свою ошибку.
ну, "заклинило" меня на том, что такая схема будет работать.
сейчас провел эксперимент в Протеусе с диодами в каждой кнопке.
плюс еще диоды развязки на вход прерывания, и схема перестала работать.
через 2 диода вход прерывания не воспринимает ноль через замкнутую кнопку, пин прерывания читается, как единица.
возможно, если везде поставить диоды Шоттки, то схема начнет работать. а с "простыми" диодами не работает.