Страница 1 из 2
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Добавлено: 17.07.2018{, 22:01}
AlexCrane
Блок для подключения матричной клавиатуры размерностью 4х4 или 4х3 через 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
Строка 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 - Задаем адрес
Ну и сами блоки
И тестовый проект вывода нажатой кнопки в UART
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 к блоку меню, чтобы работало все как со стандартным блоком клавиатуры, не догоняю. Помогите, пожалуйста. Фрагмент проекта, на котором я "подвис":
Матричная клавиатура 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 (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, Вот этот блок
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 (40.91 КБ) 1078 просмотров
Сразу обнаружил, что на контакты не выведен порт P3 (4-я строка). Я этого не знал:
- pcf8574_SMD_Pinouts.jpg (19.84 КБ) 1078 просмотров
Поставил перемычки с установкой адреса (0х20) 32. FLProg по шине I2С определяет плату расширения дисплея как 0х27 и плату расширения клавы как 0х20. Успешно залил проект, но клава не работает. Имею малый опыт и в IDE заметил, что выбраннаябиблиотека не подсвечивается как остальные:
- IDE.jpg (25 КБ) 1078 просмотров
Подозреваю, что она может не поддерживаться. Кто что может подсказать?