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

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

Добавлено: 17.07.2018{, 22:01}
AlexCrane
Блок для подключения матричной клавиатуры размерностью 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 КБ) 298 скачиваний
И тестовый проект вывода нажатой кнопки в UART
test_keyboard_i2c.flp
(131.78 КБ) 311 скачиваний
Upd 30.11.2018:
Добавил блок с выходом нажатия каждой кнопки

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

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

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

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

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

Добавлено: 29.11.2018{, 12:25}
AlexCrane
kot55, Попробуй, для меню сделал, не тестировал, отпишись как проверишь

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

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

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

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

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

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

Добавлено: 29.11.2018{, 20:17}
AlexCrane
kot55, Перекачай, исправил, отпишись как проверишь, в шапку перемещу

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

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

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

Добавлено: 29.11.2018{, 23:38}
CraCk
На esp8266 будет работать?

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

Добавлено: 30.11.2018{, 08:09}
AlexCrane
kot55, На key выдается код символа нажатой кнопки, можно сразу в стринг набирать.
CraCk, Не пробовал, по идее должно

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

Добавлено: 30.11.2018{, 19:48}
kot55
AlexCrane, Спасибо большое. Что откликнулись и дописали блок. Буду пользоваться.

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 17.02.2022{, 15:41}
AlexCrane
GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...

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

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

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

Добавлено: 17.02.2022{, 16:25}
Dryundel
AlexCrane, Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.

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

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

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

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

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

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