Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Блок для подключения матричной клавиатуры размерностью 4х4 или 4х3 через PCF8574T
[spoiler=Хорошо цепляется к этому модулю] [/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=Подключение матричной клавиатуры] Строка 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]
Ну и сами блоки И тестовый проект вывода нажатой кнопки в UART Upd 30.11.2018:
Добавил блок с выходом нажатия каждой кнопки
[spoiler=Хорошо цепляется к этому модулю] [/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=Подключение матричной клавиатуры] Строка 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]
Ну и сами блоки И тестовый проект вывода нажатой кнопки в UART Upd 30.11.2018:
Добавил блок с выходом нажатия каждой кнопки
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось AlexCrane 30 ноя 2018, 17:07, всего редактировалось 2 раза.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Добрый день. Пришли детали попробовал ваш блок и тестовый пример. Очень классный. Но я не сильно в программировании можно вас попросить помощи. Как привязать ваш блок к управлению меню или выводу на дисплей 1602. Если вас не затруднит.
..
..
- RedSky
- Лейтенант
- Сообщения: 576
- Зарегистрирован: 19 дек 2016, 20:07
- Откуда: Днепропетровск
- Имя: Алексей
- Поблагодарили: 1 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]kot55[/ref], Попробуй, для меню сделал, не тестировал, отпишись как проверишь
Upd: пофиксил проблему с нулем
блок переместил в шапку
Upd: пофиксил проблему с нулем
блок переместил в шапку
Последний раз редактировалось AlexCrane 30 ноя 2018, 17:08, всего редактировалось 2 раза.
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Добрый день. Спасибо за то что откликнулись. Быстренько сделал меню все кнопки работают ,не набирается только 0. Нулевая кнопка не набирается. Если можно поправить то прикручу ваш блок к своему проекту в место лентяйки.
Отправлено спустя 7 минут 19 секунд:
Отправлено спустя 7 минут 19 секунд:
Спасибо за совет. Но в маём проекте идет борьба за освобождение портов. На UNO их не так много.RedSky писал(а): 29 ноя 2018, 08:55Поищите урок по меню от автора FlProg. Там рассказывается как сделать ввод значений в меню через такую клавиатуру. Правда клава там подключена напрямую, но принцип понятен.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]kot55[/ref], Перекачай, исправил, отпишись как проверишь, в шапку перемещу
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Спасибо. Все работает отлично спасибо. Буду пробовать в проекте. А как или для чего можно использовать вывод "key".
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]kot55[/ref], На key выдается код символа нажатой кнопки, можно сразу в стринг набирать.
[ref]CraCk[/ref], Не пробовал, по идее должно
[ref]CraCk[/ref], Не пробовал, по идее должно
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]AlexCrane[/ref], Спасибо большое. Что откликнулись и дописали блок. Буду пользоваться.
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Господа. Не бейте больно, я еще не волшебник, хоть уже и древний мамонт. Занялся FLProg 1 месяц назад. Никак не могу допереть сам. Готовлю меню. Со стандартными блоками клавиатуры и меню все понятно и работает. Но как "прикрутить" пользовательский модуль Keyboard I2C к блоку меню, чтобы работало все как со стандартным блоком клавиатуры, не догоняю. Помогите, пожалуйста. Фрагмент проекта, на котором я "подвис":
[spoiler] [/spoiler]
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]GALEX[/ref], клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMS.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMS.
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Спасибо за быстрый ответ. Закипел уже. Хоть какую-нибудь картинку бы для понимания. Мозг уже не тот.Dryundel писал(а): 17 фев 2022, 15:01 GALEX, клавиатуру целяете через модуль PCF8574T который подключает к I2c.
На выходе key номер кнопки. Воспользуйтесь к примеру дешифратором из штатных блоков или компараторами или DMX.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Не за компом я. Найдите в штатных блоках дешифратор и все сразу поймёте. Настройте его на 12 выходов, ну или сколько у вас кнопок...
Отправлено спустя 3 минуты 9 секунд:
Откройте справку по дешифратору. Там все просто и доступно.
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Уже на этом пути. Допираю помаленьку.Dryundel писал(а): 17 фев 2022, 15:15 Не за компом я. Найдите в штатных блоках дешифратор и все сразу поймёте. Настройте его на 12 выходов, ну или сколько у вас кнопок...
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]GALEX[/ref], Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Ткните, пожалуйста, носом. Видно я пока эти блоки не нашел.AlexCrane писал(а): 17 фев 2022, 15:41 GALEX, Установите пользовательский блок, а не берите из примера. Там два блока. И один из них имеет выход нажатия каждой кнопки...
Если этот, то мне с ним тоже еще придется разбираться, чтобы прийти к тому, что нужно:
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Dryundel
- Полковник
- Сообщения: 2406
- Зарегистрирован: 22 май 2017, 23:15
- Откуда: Ярославль
- Имя: Андрей
- Поблагодарили: 15 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref=#ff8000]AlexCrane[/ref], Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.
Отправлено спустя 1 минуту 2 секунды:
[ref]GALEX[/ref], тормозните пока.
Отправлено спустя 1 час 56 минут 58 секунд:
Ладно, чуть позже переделаю блок.
Ну или [ref=#ff8000]AlexCrane[/ref], сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
Отправлено спустя 1 минуту 2 секунды:
[ref]GALEX[/ref], тормозните пока.
Отправлено спустя 1 час 56 минут 58 секунд:
Добрался до компа, глянул. Действительно char. Зачем? Функция выдает uint8_t , почему на int нельзя было повесить?Dryundel писал(а): 17 фев 2022, 16:26 AlexCrane, Ха! А у тебя на выходе char что ли? А зачем? Не понял идеи. Я то думал byte.
Ладно, чуть позже переделаю блок.
Ну или [ref=#ff8000]AlexCrane[/ref], сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
[ref]GALEX[/ref], Вот этот блок
Здесь используется не библиотека от RobTillaartDryundel писал(а): 17 фев 2022, 18:23 Ну или AlexCrane, сам переделывай. Библиотека (версия) уже не актуальна. Функций много появилось. Только номер кнопки это 10% от возможностей либы.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Матричная клавиатура 4х4 или 4х3 по I2C через PCF8574T
Вау!!!! Так это же меняет дело. Сейчас займусь и попробую. Перерыл весь форум по поиску. Этот блок не нашел. А где он вообще лежит?
При запуске заругалось на то, что проект сделан в старой версии FLProg.
PS:
Рано обрадовался. Подключил вот такой расширитель, как на дисплее1602:
[spoiler] [/spoiler]
Сразу обнаружил, что на контакты не выведен порт P3 (4-я строка). Я этого не знал:
[spoiler] [/spoiler]
Поставил перемычки с установкой адреса (0х20) 32. FLProg по шине I2С определяет плату расширения дисплея как 0х27 и плату расширения клавы как 0х20. Успешно залил проект, но клава не работает. Имею малый опыт и в IDE заметил, что выбраннаябиблиотека не подсвечивается как остальные:
[spoiler] [/spoiler]
Подозреваю, что она может не поддерживаться. Кто что может подсказать?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя