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

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

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

Сообщение 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:
Добавил блок с выходом нажатия каждой кнопки
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexCrane 30 ноя 2018, 17:07, всего редактировалось 2 раза.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14 сен 2016, 12:37
Откуда: Мариуполь

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

Сообщение kot55 »

Добрый день. Пришли детали попробовал ваш блок и тестовый пример. Очень классный. Но я не сильно в программировании можно вас попросить помощи. Как привязать ваш блок к управлению меню или выводу на дисплей 1602. Если вас не затруднит.
..
Аватара пользователя
RedSky
Лейтенант
Сообщения: 576
Зарегистрирован: 19 дек 2016, 20:07
Откуда: Днепропетровск
Имя: Алексей
Поблагодарили: 1 раз

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

Сообщение RedSky »

Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

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

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

блок переместил в шапку
Последний раз редактировалось AlexCrane 30 ноя 2018, 17:08, всего редактировалось 2 раза.
kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14 сен 2016, 12:37
Откуда: Мариуполь

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

Сообщение kot55 »

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

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

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

Сообщение AlexCrane »

[ref]kot55[/ref], Перекачай, исправил, отпишись как проверишь, в шапку перемещу
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14 сен 2016, 12:37
Откуда: Мариуполь

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

Сообщение kot55 »

Спасибо. Все работает отлично спасибо. Буду пробовать в проекте. А как или для чего можно использовать вывод "key".
CraCk
Лейтенант
Сообщения: 674
Зарегистрирован: 10 сен 2015, 21:51
Благодарил (а): 1 раз
Поблагодарили: 1 раз

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

Сообщение CraCk »

На esp8266 будет работать?
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]kot55[/ref], На key выдается код символа нажатой кнопки, можно сразу в стринг набирать.
[ref]CraCk[/ref], Не пробовал, по идее должно
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
kot55
Рядовой
Сообщения: 15
Зарегистрирован: 14 сен 2016, 12:37
Откуда: Мариуполь

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

Сообщение kot55 »

[ref]AlexCrane[/ref], Спасибо большое. Что откликнулись и дописали блок. Буду пользоваться.
GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07 ноя 2021, 02:28
Откуда: СССР
Имя: Алексей

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

Сообщение GALEX »

Господа. Не бейте больно, я еще не волшебник, хоть уже и древний мамонт. Занялся FLProg 1 месяц назад. Никак не могу допереть сам. Готовлю меню. Со стандартными блоками клавиатуры и меню все понятно и работает. Но как "прикрутить" пользовательский модуль Keyboard I2C к блоку меню, чтобы работало все как со стандартным блоком клавиатуры, не догоняю. Помогите, пожалуйста. Фрагмент проекта, на котором я "подвис":
[spoiler]
I2C Keypad Menu.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение Dryundel »

[ref]GALEX[/ref], клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMS.
GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07 ноя 2021, 02:28
Откуда: СССР
Имя: Алексей

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

Сообщение GALEX »

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

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

Сообщение Dryundel »

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

Отправлено спустя 3 минуты 9 секунд:
Откройте справку по дешифратору. Там все просто и доступно.
GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07 ноя 2021, 02:28
Откуда: СССР
Имя: Алексей

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

Сообщение GALEX »

Dryundel писал(а): 17 фев 2022, 15:15 Не за компом я. Найдите в штатных блоках дешифратор и все сразу поймёте. Настройте его на 12 выходов, ну или сколько у вас кнопок...
Уже на этом пути. Допираю помаленьку.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]GALEX[/ref], Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07 ноя 2021, 02:28
Откуда: СССР
Имя: Алексей

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

Сообщение GALEX »

AlexCrane писал(а): 17 фев 2022, 15:41 GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Ткните, пожалуйста, носом. Видно я пока эти блоки не нашел.
Если этот, то мне с ним тоже еще придется разбираться, чтобы прийти к тому, что нужно:
[spoiler]
I2C Keypad Menu2.png
[/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2406
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Поблагодарили: 15 раз

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

Сообщение 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% от возможностей либы.
Аватара пользователя
AlexCrane
Капитан
Сообщения: 903
Зарегистрирован: 20 окт 2017, 13:22
Откуда: Ульяновск
Имя: Александр
Поблагодарили: 12 раз

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

Сообщение AlexCrane »

[ref]GALEX[/ref], Вот этот блок
keyb.png
keyb.flp
Dryundel писал(а): 17 фев 2022, 18:23 Ну или AlexCrane, сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
Здесь используется не библиотека от RobTillaart
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
GALEX
Рядовой
Сообщения: 15
Зарегистрирован: 07 ноя 2021, 02:28
Откуда: СССР
Имя: Алексей

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

Сообщение 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]
Подозреваю, что она может не поддерживаться. Кто что может подсказать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя