Матричная клавиатура 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 раза.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

#21

Сообщение AlexCrane » 17.02.2022{, 22:08}

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

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

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

#22

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

AlexCrane писал(а):
17.02.2022{, 18:24}
Здесь используется не библиотека от RobTillaart
Да действительно. :) А я сразу полез искать и нашлась практически одноименная. Сори сэр.
GALEX писал(а):
17.02.2022{, 18:57}
Имею малый опыт и в IDE заметил, что выбраннаябиблиотека не подсвечивается как остальные:
Это не показатель. Просто в библиотеке нет одного файлика который отвечает исключительно за подсветку.
GALEX писал(а):
17.02.2022{, 18:57}
Подозреваю, что она может не поддерживаться. Кто что может подсказать?
Если скомпилировалось, значит все норм, поддерживается.

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

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

#23

Сообщение GALEX » 17.02.2022{, 23:17}

AlexCrane писал(а):
17.02.2022{, 22:08}
GALEX, Тут без схемы и проекта трудно что-либо сказать/подсказать....
Ну вот для чистоты эксперимента самый простой вариант проекта без излишеств - клава с I2C с попыткой включения светодиода на пине 13 UNO по нажатию клавиши 1. Ни фига не работает. Видать опыта не хватает, так как не программист, или чего-то другое танцору мешает. Подключение стандартное для I2C в параллель с платой расширения дисплея. Дисплей-то по I2C подключил и он работает. Сам проект:
Вложения
Kbd I2C Test project.flp
(383.52 КБ) 34 скачивания

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

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

#24

Сообщение Dryundel » 17.02.2022{, 23:47}

GALEX писал(а):
17.02.2022{, 18:57}
Кто что может подсказать?
Кажись нашел вашу проблему. Вы до нее почти дошли, но не ухватили.
GALEX писал(а):
17.02.2022{, 18:57}
Сразу обнаружил, что на контакты не выведен порт P3 (4-я строка).

P3 на этой плате задействован для подсветки дисплея и подключен к базе транзисторного ключа, а база подтянута к VCC (4.7k)
Предполагаю, что если выпаять этот резюк, то должно взлететь.
СхемаПоказать
UT83NIzXmNaXXagOFbXh.jpg

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

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

#25

Сообщение GALEX » 17.02.2022{, 23:52}

Сейчас попробую модуль расширения поменять, у меня их несколько. Кстати, ранее, когда читал про схему подключения клавы с этим модулем, то реально было предупреждение, что порт P3 не выведен на контакты модуля.
Просто не обратил на это внимание.
Подключался по схеме как в ссылке ниже. Там же и видео: Кстати у автора публикации - ошибка в схеме подключения. Порты P0-P3 - сдвинуты влево на один контакт. Проверял по распиновке.

PS:
1. Замена модуля ничего не дала. Проверял все по самой упрощенной схеме, приведенной выше. Адрес I2C на мониторе компорта отображается, но толку с этого нет. При отключеной строке 4 должны работать остальные кнопки, в частности кнопка 1. Но этого нет.
2. Ниже полная схема в хорошем качестве указанного модуля. Может быть кому пригодиться.
СпойлерПоказать
PCF8574_Layout.jpg
3. Попробовал отпаять резистор R7 и пробросил перемычку с точки подпаивания резистора R7 (выход P3) на контакт 7 выходного разъема для активации строки 4. Вроде бы ничего не коротил, но модуль перестал выдавать свой адрес на мониторе Com порта.
4. У кого работает простейший проект со светодиодом, о котором говорил выше? Похоже, что я зря убиваю время и тут что-то не так.

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

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

#26

Сообщение AlexCrane » 18.02.2022{, 07:28}

GALEX, Раньше все работало (на модуле из шапки), в железе смогу проверить только вечером
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

leaner
Сержант
Сообщения: 104
Зарегистрирован: 08.11.2017{, 13:13}
Репутация: 4

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

#27

Сообщение leaner » 18.02.2022{, 09:39}

rs триггер и таймер на отключение поставьте после кнопки и будет вам счастье. я тоже мучился не мог использовать сигнал на нажатую клавишу. потом после кнопки сигнал поставил переменную а в переменную записывал символ клавиши . и потом уже заработало.
Вложения
2022-02-18_09-35-45.png
реализация индикации нажатия кнопки со светодиодом
2022-02-18_09-35-45.png (10.24 КБ) 984 просмотра
2022-02-18_09-30-07.png
индикация нажатия на дисплее
2022-02-18_09-30-07.png (5.31 КБ) 984 просмотра
2022-02-18_09-30-51.png
клавиатура
2022-02-18_09-30-51.png (11.1 КБ) 984 просмотра

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

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

#28

Сообщение GALEX » 18.02.2022{, 12:54}

По-моему интуитивно въезжаю, проводя аналогию со стандартным блоком клавиатуры, в котором прописаны и строки и столбцы. В коде для компиляции, а также во всех библиотеках, на которые ссылается блок, нигде не прописаны ни пины, ни строки, ни столбцы, ни символы для кнопок. По идее так же не должно быть. Или я по неопытности ошибаюсь? Синтаксисом, чтобы добавить, к сожалению не владею.

Отправлено спустя 4 часа 58 минут 7 секунд:
leaner писал(а):
18.02.2022{, 09:39}
rs триггер и таймер на отключение поставьте после кнопки и будет вам счастье. я тоже мучился не мог использовать сигнал на нажатую клавишу. потом после кнопки сигнал поставил переменную а в переменную записывал символ клавиши . и потом уже заработало.
Спасибо за ответ. Что-то у меня с этими танцами с бубном тоже не выходит. По идее так же не должно быть.
PS:
Уважаемые господа.
Извините за причиненное беспокойство и напряг. Из четырех китаезных модулей PCF8574, купленных по дешевке, оказались исправными только два. По иронии судьбы первый из исправных установил на дисплей 1602 и дисплей работает, поэтому меня ничего не насторожило. Второй некоторое время отвечал по I2C, но не работал по назначению, затем затух насовсем. Третий уверенно отвечал и отвечает по I2C, но также уверенно не работает. Обо всех этих заменах писал выше. Сегодня достал четвертый, и мой простейший проект с одним светодиодом на 13 пине UNO заработал. Еще раз извиняюсь, буду разбираться дальше и подключу порт P3 для первой строки.

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

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

#29

Сообщение AlexCrane » 18.02.2022{, 19:34}

GALEX, Ну вот заставил меня проверять в железе и естественно все работает!
Вот тестовый проект
Тест клавиатуры i2c.flp
(680.66 КБ) 60 скачиваний
И видео работы https://cloud.mail.ru/public/o1tk/nhByeuSZj
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

#30

Сообщение GALEX » 18.02.2022{, 19:39}

AlexCrane писал(а):
18.02.2022{, 19:34}
GALEX, Ну вот заставил меня проверять в железе и естественно все работает!
Извиняюсь, немного опоздал. Не думал, что желтолицые такую подставу могут сделать. Все модули из упаковки.
Хотел еще спросить. Под какие цели можно использовать входы на Вашем блоке. Хотя бы в двух словах.

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

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

#31

Сообщение AlexCrane » 18.02.2022{, 20:41}

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

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

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

#32

Сообщение GALEX » 18.02.2022{, 21:07}

AlexCrane писал(а):
18.02.2022{, 20:41}
GALEX, Так входов в блоках нет, а выходы под любые цели, на что хватит фантазии
Так вроде есть, и появляются с разными типами, если включить блок на редактирование. Только пока не знаю куда их можно прикрутить:
СпойлерПоказать
Test Input.jpg
Понял. Это просто возможности редактора пользовательских блоков.
PS:
Прикрутил этот блок к стандартному блоку меню, но чего-то все мигает на дисплее.
СпойлерПоказать
KeyI2C and MenuBlock.png

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

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

#33

Сообщение AlexCrane » 18.02.2022{, 21:42}

GALEX, Вот у меня ваш скрин не моргает :smile427:
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

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

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

#34

Сообщение GALEX » 18.02.2022{, 22:05}

AlexCrane писал(а):
18.02.2022{, 21:42}
GALEX, Вот у меня ваш скрин не моргает
Да понял я, понял, что по скрину не определить. Попытаюсь сам разобраться в причине. При добавлении этого блока меню в Ваш проект с подменю в одну тестовую позицию ничего не моргает. Значит где-то уже накосячил в своем проекте.
Таки накосячил, пока игрался с неудачными вариантами из-за неисправных модулей. Проблема оказалась в одинаковых адресах для дисплея и клавиатуры.

AndreyR
Рядовой
Сообщения: 1
Зарегистрирован: 04.02.2022{, 20:05}
Репутация: 0
Имя: Андрей

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

#35

Сообщение AndreyR » 17.11.2023{, 16:53}

Под новой библиотекой этот блок работать не будет

Ответить

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