Страница 6 из 6

Re: Подключить много кнопок на мало выводов.

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

Re: Подключить много кнопок на мало выводов.

Добавлено: Вс июл 12, 2026 15:37:21
BOB51
Разве что одновременное нажатие группы кнопок не будет фиксироваться - но при полной клавиатуре это и не требуется.
Одиночные четко отслеживаются.
Но все же это не классика с диодом в цепи каждой из кнопок - может потому и восприятие не явное (учитывая "кто к чему привык" :wink: ).
Да и АВРка не 51я, придется чуток изврата с регистрами портов делать.
8)

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заодно кое-кто поучится, как делать без диодов в цепи каждой из кнопок.
:facepalm:
Starichok51 писал(а): Вс июл 12, 2026 17:51:09Мудрость приходит вместе с импотенцией...
Но иногда последняя приходит в одиночестве... :dont_know:

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
Зависит от того, какая схема и какой алгоритм будет применен.
Предоставьте схемку - тогда и обцарапаем.
:wink:
Starichok51
В Вашем варианте легко ставится программная защита от некорректной комбинации.
Но это все таки заметно более сложная программа обработки, нежели для обычной схемки с диодами в цепи каждой кнопки и "бегущим 0".
:beer:

Re: Подключить много кнопок на мало выводов.

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

PS: Уже на 10-й круг пошли... сколько можно???

Re: Подключить много кнопок на мало выводов.

Добавлено: Пн июл 13, 2026 10:49:27
BOB51
Зато ошибку в виде одновременного нажатия нескольких кнопок весьма легко можно выявить и соответственно исключить.
8)

Re: Подключить много кнопок на мало выводов.

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