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

Блок для подключения матричной клавиатуры размерностью 4х4 или 4х3 через PCF8574T

Пользовательские блоки для вывода информации на дисплеи и индикаторы, управления тачскрином, различными клавиатурами, добавления русских шрифтов для вывода на дисплеи типа HD44780
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#1

Сообщение AlexCrane » 17.07.2018{, 22:01}

Блок для подключения матричной клавиатуры размерностью 4х4 или 4х3 через PCF8574T
Хорошо цепляется к этому модулюПоказать
PCF8574.jpg
IMG_20180717_183700.jpg
Адреса 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
Подключение матричной клавиатурыПоказать
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 отсутствует
Парметры пользователяПоказать
ROWS - Задаем количество строк, обычно 4
COLS - Задаем количество столбцов, 4 или 3
i2caddress - Задаем адрес
Ну и сами блоки
Keyboard_I2C.ubl
(236.9 КБ) 292 скачивания
И тестовый проект вывода нажатой кнопки в UART
test_keyboard_i2c.flp
(131.78 КБ) 307 скачиваний
Upd 30.11.2018:
Добавил блок с выходом нажатия каждой кнопки
Последний раз редактировалось AlexCrane 30.11.2018{, 17:07}, всего редактировалось 2 раза.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14.09.2016{, 12:37}
Репутация: 0
Откуда: Мариуполь

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

#2

Сообщение kot55 » 28.11.2018{, 21:45}

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

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

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

#3

Сообщение RedSky » 29.11.2018{, 08:55}

Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#4

Сообщение AlexCrane » 29.11.2018{, 12:25}

kot55, Попробуй, для меню сделал, не тестировал, отпишись как проверишь

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

блок переместил в шапку
Последний раз редактировалось AlexCrane 30.11.2018{, 17:08}, всего редактировалось 2 раза.

kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14.09.2016{, 12:37}
Репутация: 0
Откуда: Мариуполь

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

#5

Сообщение kot55 » 29.11.2018{, 19:53}

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

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#6

Сообщение AlexCrane » 29.11.2018{, 20:17}

kot55, Перекачай, исправил, отпишись как проверишь, в шапку перемещу
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14.09.2016{, 12:37}
Репутация: 0
Откуда: Мариуполь

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

#7

Сообщение kot55 » 29.11.2018{, 22:57}

Спасибо. Все работает отлично спасибо. Буду пробовать в проекте. А как или для чего можно использовать вывод "key".

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

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

#8

Сообщение CraCk » 29.11.2018{, 23:38}

На esp8266 будет работать?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#9

Сообщение AlexCrane » 30.11.2018{, 08:09}

kot55, На key выдается код символа нажатой кнопки, можно сразу в стринг набирать.
CraCk, Не пробовал, по идее должно
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14.09.2016{, 12:37}
Репутация: 0
Откуда: Мариуполь

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

#10

Сообщение kot55 » 30.11.2018{, 19:48}

AlexCrane, Спасибо большое. Что откликнулись и дописали блок. Буду пользоваться.

GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07.11.2021{, 02:28}
Репутация: 0
Откуда: СССР
Имя: Алексей

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

#11

Сообщение GALEX » 17.02.2022{, 14:50}

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

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#12

Сообщение Dryundel » 17.02.2022{, 15:01}

GALEX, клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMS.

GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07.11.2021{, 02:28}
Репутация: 0
Откуда: СССР
Имя: Алексей

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

#13

Сообщение GALEX » 17.02.2022{, 15:08}

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

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#14

Сообщение Dryundel » 17.02.2022{, 15:12}

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

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

GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07.11.2021{, 02:28}
Репутация: 0
Откуда: СССР
Имя: Алексей

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

#15

Сообщение GALEX » 17.02.2022{, 15:39}

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#16

Сообщение AlexCrane » 17.02.2022{, 15:41}

GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07.11.2021{, 02:28}
Репутация: 0
Откуда: СССР
Имя: Алексей

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

#17

Сообщение GALEX » 17.02.2022{, 15:54}

AlexCrane писал(а):
17.02.2022{, 15:41}
GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Ткните, пожалуйста, носом. Видно я пока эти блоки не нашел.
Если этот, то мне с ним тоже еще придется разбираться, чтобы прийти к тому, что нужно:
СпойлерПоказать
I2C Keypad Menu2.png
I2C Keypad Menu2.png (5.03 КБ) 1019 просмотров

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

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

#18

Сообщение Dryundel » 17.02.2022{, 16:25}

AlexCrane, Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.

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

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

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

#19

Сообщение AlexCrane » 17.02.2022{, 18:24}

GALEX, Вот этот блок
keyb.png
keyb.flp
(358.56 КБ) 56 скачиваний
Dryundel писал(а):
17.02.2022{, 18:23}
Ну или AlexCrane, сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
Здесь используется не библиотека от RobTillaart
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07.11.2021{, 02:28}
Репутация: 0
Откуда: СССР
Имя: Алексей

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

#20

Сообщение GALEX » 17.02.2022{, 18:57}

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

Ответить

Вернуться в «Дисплеи, индикаторы и клавиатуры»