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

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 12:54}
Ruskat
Как подключить данную клавиатуру в FlProg и как назначать действия на нажатие соответствующей кнопки?
В моей задумке сейчас стоит матричная клава 4*4.  Но она занимает 8 пинов на ардуине, а их не хватает...


FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 13:20}
garikb
А поиском воспользоваться религия не позволяет?

http://flprog.ru/publ....-1-0-19

http://flprog.ru/load....2-1-0-8

http://forum.flprogwiki.ru/viewtopic.php?f=20&t=88

это первые что выпали по поиску и не последние.

Принцип такой же как и у вашей клавиатуры.

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 15:16}
Слимпер
Вот еще статья, там схемы можно посмотреть, но не все для матричной клавиатуры от туда можно использовать в FLProg
Как подключить к микроконтроллеру кнопки

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 15:28}
Ruskat
Сделал так.....

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 15:31}
slavas
Ruskat, молодец идею понял, только нужно бы с гистерезисом сделать.

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 16:42}
Ruskat
slavas, тоесть перед выходом на кнопки еще Rtrig поставить?

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 18:52}
OlegAn1962
Расширить каждый диапазон срабатывания, например при нажатии на первую кнопку у вас будет не 1023, а 1012, и что тогда?

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 21:14}
Ruskat
OlegAn1962, расширить каким образом?  Условиями? типа,
если значение от 931 до 1032, то это клавиша 1
так, я понимаю надо?

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 22:23}
OlegAn1962
Ruskat писал(а):если значение от 931 до 1032, то это клавиша 1
В точку! Только лучше от 930+(1024-930)/2=977. От 977 до 1024- кл.1

FlProg + 3 pin клавитура на резисторах.

Добавлено: 13.01.2017{, 22:39}
Ruskat
Я вот такое накатал.... тоесть, если кнопка 1, то менее или равно 1023 и более или равно 931.
Кнопка 2 -  менее или равно 930 и более или равно 851
Кнопка 3 -  менее или равно 850 и более или равно 791 и т д....

FlProg + 3 pin клавитура на резисторах.

Добавлено: 14.01.2017{, 00:04}
OlegAn1962
На плате же написаны приблизительные значения, а вы ими границы обозначаете

FlProg + 3 pin клавитура на резисторах.

Добавлено: 14.01.2017{, 01:06}
Ruskat
OlegAn1962, Разве границы? Я думал что выставляю диапазон, в котором будет срабатывать та или иная кнопка. Прошу поправить код для правильности.

FlProg + 3 pin клавитура на резисторах.

Добавлено: 14.01.2017{, 01:25}
OlegAn1962
Ruskat писал(а):Я вот такое накатал.... тоесть, если кнопка 1, то менее или равно 1023 и более или равно 931.Кнопка 2 -  менее или равно 930 и более или равно 851
Кнопка 3 -  менее или равно 850 и более или равно 791 и т д....
 если кнопка 1, то менее или равно 1024 и более или равно 977.
Кнопка 2 -  менее или равно 976 и более или равно 910
Кнопка 3 -  менее или равно 909 и более или равно 820 и т д....

Как то так, я же написал пример.

FlProg + 3 pin клавитура на резисторах.

Добавлено: 14.01.2017{, 02:17}
Boroda
Попробуйте использовать блок линейного масштабирования scale 0-1023 -> 0-16, а после него битовый дешифратор. Места на плате меньше займет, чем 32 блока сравнения.

Добавлено (14.01.2017, 02:08)
---------------------------------------------
Входной диапазон только подобрать надо. Ну с выводом параметров в ком-порт должно быть полегче.

Добавлено (14.01.2017, 02:17)
---------------------------------------------
Мде.... с такой нелинейностью надо нелинейное масштабирование ставить, тока оно процессорного времени много отнимает.


FlProg + 3 pin клавитура на резисторах.

Добавлено: 14.01.2017{, 07:12}
Слимпер
А я себе разные блоки делал, а последний вот такой получился
СпойлерПоказать
Единственно, сперва надо считать значения АЦП при нажатии клавиш, и прописать их в параметрах блока.
Зато можно просто добавить столько блоков, сколько есть клавиш, и не надо каждый раз редактировать блок.