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

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 июл 2018, 22:01
AlexCrane
Блок для подключения матричной клавиатуры размерностью 4х4 или 4х3 через PCF8574T

[spoiler=Хорошо цепляется к этому модулю]
PCF8574.jpg
IMG_20180717_183700.jpg
[/spoiler]

[spoiler=Адреса PCF8574T]
A0=0, A1=0, A2=0 0x20 hex - 32 dec
A0=1, A1=0, A2=0 0x21 hex - 33 dec
A0=0, A1=1, A2=0 0x22 hex - 34 dec
A0=1, A1=1, A2=0 0x23 hex - 35 dec
A0=0, A1=0, A2=1 0x24 hex - 36 dec
A0=1, A1=0, A2=1 0x25 hex - 37 dec
A0=0, A1=1, A2=1 0x26 hex - 38 dec
A0=1, A1=1, A2=1 0x27 hex - 39 dec
[/spoiler]

[spoiler=Подключение матричной клавиатуры]
Scheme_keyboard_i2c.png
Строка 0 на P0 PCF8574, обычно на пине 0 разъема 4x4 keypads
Строка 1 на P1 PCF8574, обычно на пине 1 разъема 4x4 keypads
Строка 2 на P2 PCF8574, обычно на пине 2 разъема 4x4 keypads
Строка 3 на P3 PCF8574, обычно на пине 3 разъема 4x4 keypads
Столбец 0 на P4 PCF8574, обычно на пине 4 разъема 4x4 keypads
Столбец 1 на P5 PCF8574, обычно на пине 5 разъема 4x4 keypads
Столбец 2 на P6 PCF8574, обычно на пине 6 разъема 4x4 keypads
Столбец 3 на P7 PCF8574, обычно на пине 7 разъема 4x4 keypads, на клавиатуре 4х3 отсутствует
[/spoiler]

[spoiler=Парметры пользователя]
ROWS - Задаем количество строк, обычно 4
COLS - Задаем количество столбцов, 4 или 3
i2caddress - Задаем адрес
[/spoiler]

Ну и сами блоки
Keyboard_I2C.ubl
И тестовый проект вывода нажатой кнопки в UART
test_keyboard_i2c.flp
Upd 30.11.2018:
Добавил блок с выходом нажатия каждой кнопки

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 28 ноя 2018, 21:45
kot55
Добрый день. Пришли детали попробовал ваш блок и тестовый пример. Очень классный. Но я не сильно в программировании можно вас попросить помощи. Как привязать ваш блок к управлению меню или выводу на дисплей 1602. Если вас не затруднит.
..

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 08:55
RedSky
Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 12:25
AlexCrane
[ref]kot55[/ref], Попробуй, для меню сделал, не тестировал, отпишись как проверишь

Upd: пофиксил проблему с нулем

блок переместил в шапку

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 20:01
kot55
Добрый день. Спасибо за то что откликнулись. Быстренько сделал меню все кнопки работают ,не набирается только 0. Нулевая кнопка не набирается. Если можно поправить то прикручу ваш блок к своему проекту в место лентяйки.

Отправлено спустя 7 минут 19 секунд:
RedSky писал(а): 29 ноя 2018, 08:55Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.
Спасибо за совет. Но в маём проекте идет борьба за освобождение портов. На UNO их не так много.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 20:17
AlexCrane
[ref]kot55[/ref], Перекачай, исправил, отпишись как проверишь, в шапку перемещу

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 22:57
kot55
Спасибо. Все работает отлично спасибо. Буду пробовать в проекте. А как или для чего можно использовать вывод "key".

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 29 ноя 2018, 23:38
CraCk
На esp8266 будет работать?

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 30 ноя 2018, 08:09
AlexCrane
[ref]kot55[/ref], На key выдается код символа нажатой кнопки, можно сразу в стринг набирать.
[ref]CraCk[/ref], Не пробовал, по идее должно

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 30 ноя 2018, 19:48
kot55
[ref]AlexCrane[/ref], Спасибо большое. Что откликнулись и дописали блок. Буду пользоваться.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 14:50
GALEX
Господа. Не бейте больно, я еще не волшебник, хоть уже и древний мамонт. Занялся FLProg 1 месяц назад. Никак не могу допереть сам. Готовлю меню. Со стандартными блоками клавиатуры и меню все понятно и работает. Но как "прикрутить" пользовательский модуль Keyboard I2C к блоку меню, чтобы работало все как со стандартным блоком клавиатуры, не догоняю. Помогите, пожалуйста. Фрагмент проекта, на котором я "подвис":
[spoiler]
I2C Keypad Menu.png
[/spoiler]

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:01
Dryundel
[ref]GALEX[/ref], клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMS.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:08
GALEX
Dryundel писал(а): 17 фев 2022, 15:01 GALEX, клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMX.
Спасибо за быстрый ответ. Закипел уже. Хоть какую-нибудь картинку бы для понимания. Мозг уже не тот.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:15
Dryundel
GALEX писал(а): 17 фев 2022, 15:08 Хоть какую-нибудь картинку бы для понимания.
Не за компом я. Найдите в штатных блоках дешифратор и все сразу поймёте. Настройте его на 12 выходов, ну или сколько у вас кнопок...

Отправлено спустя 3 минуты 9 секунд:
Откройте справку по дешифратору. Там все просто и доступно.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:39
GALEX
Dryundel писал(а): 17 фев 2022, 15:15 Не за компом я. Найдите в штатных блоках дешифратор и все сразу поймёте. Настройте его на 12 выходов, ну или сколько у вас кнопок...
Уже на этом пути. Допираю помаленьку.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:41
AlexCrane
[ref]GALEX[/ref], Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 15:54
GALEX
AlexCrane писал(а): 17 фев 2022, 15:41 GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Ткните, пожалуйста, носом. Видно я пока эти блоки не нашел.
Если этот, то мне с ним тоже еще придется разбираться, чтобы прийти к тому, что нужно:
[spoiler]
I2C Keypad Menu2.png
[/spoiler]

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 18:23
Dryundel
[ref=#ff8000]AlexCrane[/ref], Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.

Отправлено спустя 1 минуту 2 секунды:
[ref]GALEX[/ref], тормозните пока.

Отправлено спустя 1 час 56 минут 58 секунд:
Dryundel писал(а): 17 фев 2022, 16:26 AlexCrane, Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.
Добрался до компа, глянул. Действительно char. Зачем? Функция выдает uint8_t , почему на int нельзя было повесить?
Ладно, чуть позже переделаю блок.
Ну или [ref=#ff8000]AlexCrane[/ref], сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 18:24
AlexCrane
[ref]GALEX[/ref], Вот этот блок
keyb.png
keyb.flp
Dryundel писал(а): 17 фев 2022, 18:23 Ну или AlexCrane, сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
Здесь используется не библиотека от RobTillaart

Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T

Добавлено: 17 фев 2022, 18:57
GALEX
AlexCrane писал(а): 17 фев 2022, 18:24 GALEX, Вот этот блок
Вау!!!! Так это же меняет дело. Сейчас займусь и попробую. Перерыл весь форум по поиску. Этот блок не нашел. А где он вообще лежит?
При запуске заругалось на то, что проект сделан в старой версии FLProg.
PS:
Рано обрадовался. Подключил вот такой расширитель, как на дисплее1602:
[spoiler]
pcf8574_01-500x500.jpg
[/spoiler]
Сразу обнаружил, что на контакты не выведен порт P3 (4-я строка). Я этого не знал:
[spoiler]
pcf8574_SMD_Pinouts.jpg
[/spoiler]
Поставил перемычки с установкой адреса (0х20) 32. FLProg по шине I2С определяет плату расширения дисплея как 0х27 и плату расширения клавы как 0х20. Успешно залил проект, но клава не работает. Имею малый опыт и в IDE заметил, что выбраннаябиблиотека не подсвечивается как остальные:
[spoiler]
IDE.jpg
[/spoiler]
Подозреваю, что она может не поддерживаться. Кто что может подсказать?