Страница 1 из 1
Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 12:05:32
Timofiy_K
Здравствуйте коты.
Есть такая проблема. У меня в наличие небольшая клавиатура с 12ю кнопками. От каждой кнопки отходит контакт. Как в таких случаях подключают клавиатуру к 8-битному порту микроконтроллера AVR?
Т.к. есть микросхемки дешифраторы, которые преобразуют двоичный код в сигнал определенного вывода, то я думал есть микросхемы и обратного назначения, но таких не нашел.
Допустим, можно клавиатуру подключить к двум портам, но это не рационально, а если на клавиатуре 100 кнопок?
Подскажите пожалуйста, какие вообще существуют методы решения подобной проблемы?
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 12:38:16
shinji2009
смотря как эта клавиатура будет использоваться... если больше одной кнопки за раз нажимать не предполагается - можно на каждую свой резистор повесить, и вся клавиатура будет считываться одним контактом - ацп. по уровню напряжения.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 12:46:48
pyzhman
Еще вариант - через сдвиговый регистр.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 12:56:35
Timofiy_K
Спасибо за ответ. О варианте с ацп знаю, но там еще больше трудностей возникает. Там у кнопочек контакт такой... как бы сказать, Чем сильнее ее прижимаешь, тем меньше сопротивление между землей и выводом. Слабо прижал - 100 ом, сильно прижал - 10 Ом. АЦП каждый раз разный код будет выдавать.
Я как временный вариант использую только 8 клавиш, воткнул каждую в вывод порта, а с дребезгом программно борюсь.
А нужно мне каждую нажатую кнопку превратить в двоичное число, желательно четырехразрядное.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 12:57:21
Timofiy_K
А через сдвиговый регистр это как. Можно логику работы коротко?
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 13:19:42
ChipKiller
Timofiy_K писал(а):Можно логику работы коротко?
..если коротко - гуглите 74HC165. При наличии у МК аппаратного SPI, все вообще замечательно.
ps. каждый регистр 74HC165 имеет 8 входов, а если нужно больше - легко выполнить каскадное подключение.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 13:50:58
shinji2009
там обычно ставят килоомы, а не омы, но не для того чтобы сопротивление кнопок не влияло, а потому что если вы будете грузить цепь питания такими низкими сопротивлениями, то контакты у кнопок искрить будут и источник питания сильно подсаживаться :в но хозяин канеш барин...
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:03:44
Timofiy_K
По поводу сдвигового регистра
Это ж сколько тактов МК будет опрашивать клавиатуру, он еще и с другими задачами справляться должен. А с дребезгом контактов как в таком случае бороться?
По поводу АЦП.
Если честно, я о них только в теории читал, так что потребуется много времени, чтобы как следует разобраться. Хотя возможно придется использовать их.
А каким образом опрос клавиатур обычно в технике осуществляется, мировая, так сказать, практика?
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:07:20
shinji2009
обычно те кнопки которые не подразумевается нажимать вместе включают в матрицу, а те которые подразумевается - отдельно. например так
http://solidstate.karelia.ru/~yura/pyld ... matrix.png
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:14:29
pyzhman
Timofiy_K писал(а):Это ж сколько тактов МК будет опрашивать клавиатуру, он еще и с другими задачами справляться должен.
А вы не предполагайте. Вы делайте.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:16:59
shinji2009
с дребезгом контактов всегда борются программно, это совсем несложно.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:20:44
Morroc
Timofiy_K писал(а):
А каким образом опрос клавиатур обычно в технике осуществляется, мировая, так сказать, практика?
Да как то так и осуществляется

Если прям уж так чудовищно критична производительность (самонаведение ракеты ?), что через регистр клаву не опросить - можно поставить отдельный мк или взять побыстрее.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:31:41
Timofiy_K
Ладно, пищу для размышлений дали. Куда копать дальше примерно понятно. Всем отозвавшимся спасибо.

Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Пн июн 01, 2015 14:36:41
Morroc
Надо просто отделить опрос клавиатуры и реакцию на него от действительно критически важных действий. Обычно все это управление может и подождать, а что подождать не может - обрабатывать в прерывании по таймеру или событию внешнему какому то. (можно и наоборот, но в прерывании только фиксировать факт нажатия кнопки - это недолго, реакцию прописать можно в основном цикле когда мк уже реально больше нечего делать)
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Вт июн 02, 2015 10:49:48
BOB51
Самое простое - К155ИД3 + линия возврата на любое внешнее прерывание.

Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Ср июн 03, 2015 11:22:27
m.ix
я пока что знаю два типа
1 матричный
2 резистивный
Первый имеет много выводов
Второй вроде мало но чуть сложнее устроен.
В автомагнитолах часто резистивный используется способ.
Всего два вывода
Остальное задаётся резисторами.
В таком случае как мне кто то ответил МК должен иметь на борту ЦАП или АЦП
Что бы своего рода понять что и какой контакт замкнут.
Своего рода это делитель напряжение с определённым шагом и допуском, что бы после было можно отличить работу самой дальней кнопки с максимальным сопротивлением.
Самая близкая и первая подсоединяется без резисторов, в автомагнитолах выполняют такие кнопки включения и выдвижение диска.
СО временем кнопки хереют и увеличивается ихнее сопротивление, что ведёт к не правильной выполняемой команде.
Я в автомагнитоле пробовал (побаловаться и при ремонте) так подсоединить переменный резистор и крутя его выискивая кнопки.
=================
Тут под руководством опытного программера собрал бегущую строку, он использовал клавиатуру от компьютера, что весьма удобно при вводе текста.
Комповая клава имеет матричное устройство.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Ср июн 03, 2015 12:15:26
Timofiy_K
Спасибо за развернутый ответ, m.ix.
Я почитал разной информации, и решил делать через АЦП
С ними все равно нужно разбираться, вникать в работу, а тут и шанс предоставляется на практике ознакомиться.
Re: Подключение клавиатуры к микроконтроллеру
Добавлено: Ср июн 03, 2015 13:06:13
Morroc
Есть еще вот такие недорогие сенсорные клавиатурки, подключаются по i2c
http://www.ebay.com/itm/121336563235?_t ... EBIDX%3AIT
http://www.ebay.com/itm/221559210817?_t ... EBIDX%3AIT
это чтобы не париться с нехваткой ног мк, дребезгом и т.п.